如何在CocoaPods中制作含有ARC和MRC工程的SPEC

发布于 2022-09-01 13:07:15 字数 109 浏览 14 评论 0

  • 目前工程中引用了一些三方库是MRC的,并且是以COPY源码的方式
  • 70%的源码是MRC的

希望有一种方式能够在SPEC中配置混编ARC,MRC

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你是暖光i 2022-09-08 13:07:15

使用subspec(子模块配置),每个子模块中可以各自设置,决定是否使用ARC
详细说明看一下官方文档Podspec Syntax Reference
下面是一个例子,做的是百度地图2.8的API,其中我扩展了一些方法。
例子中,其中BaiduMapAPI/Core不支持ARCBaiduMapAPI/Extend支持ARC,默认加载AllAll中依赖BaiduMapAPI/CoreBaiduMapAPI/Extend这样就可以在默认情况下将完整的库引入项目:

Pod::Spec.new do |s|
  s.name     = 'BaiduMapAPI'
  s.version  = '2.8.0'
  s.license  = { :type => 'Copyright', :text => 'LICENSE  ©2013 Baidu, Inc. All rights reserved.' }
  s.summary  = 'Baidu Map API For iOS.'
  s.homepage = 'http://developer.baidu.com/map/index.php?title=iossdk'
  s.authors  = { 'Steven' => 'qzs21@qq.com' }
  s.source   = { :git => 'https://github.com/qzs21/BaiduMapAPI.git', :tag => s.version }
  s.ios.deployment_target = '5.0'

  s.default_subspec = 'All'
  s.subspec 'All' do |spec|
    spec.ios.dependency 'BaiduMapAPI/Core'
    spec.ios.dependency 'BaiduMapAPI/Extend'
  end

  s.subspec 'Core' do |spec|
    spec.requires_arc            = false
    spec.compiler_flags          = '-ObjC'
    spec.resources               = 'Framework/Resources/mapapi.bundle'
    spec.ios.vendored_frameworks = 'Framework/BaiduMapAPI.framework'
    spec.public_header_files = [
      'Framework/BaiduMapAPI.framework/Headers/*.h'
    ]
    spec.frameworks = [
      'UIKit',
      'CoreLocation',
      'QuartzCore',
      'OpenGLES',
      'SystemConfiguration',
      'CoreGraphics',
      'Security'
    ]
    spec.libraries = [
      "stdc++",
      "stdc++.6"
    ]
  end

  s.subspec 'Extend' do |spec|
    spec.requires_arc        = true
    spec.public_header_files = [
      'Framework/Extend/*.h'
    ]
    spec.source_files = [
        'Framework/Extend/*.{h,mm,m}'
    ]
    spec.ios.dependency 'BaiduMapAPI/Core'
  end
end
千秋岁 2022-09-08 13:07:15

spec.ios.vendored_frameworks 我在提交时,告诉我,我的路径找不到该文件,但是,路径是正确的。

幸福还没到 2022-09-08 13:07:15

我在spec文件里 指定vendored_frameworks 路径也没有就问题 但是编译工程的时候提示 file not found 请问怎么解决才好

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文