使用Cocoapods分发已编译的.framework文件

4
我正在与团队一起开发iOS应用程序,希望将一部分代码移动到预编译框架中以减少编译时间。我使用源文件创建了一个框架,将其上传到git仓库并通过cocoapods分发给我的团队。
但是,我得到的不是只有头文件的.framework文件夹,而是.h和.m文件。以下是在包含项目中找到的我的pod层次结构。

enter image description here

我浏览了我应用中使用的其他模块,并发现有一些具有我正在寻找的层次结构:

enter image description here

在.podspec文件中是否有更改选项以分发框架的编译版本?

这是我的.podspec文件快照:

Pod::Spec.new do |s|

  s.platform     = :ios, "9.0"
  s.source       = { :git => "URL" }

  s.source_files  = "MessengerPaintCode", "MessengerPainCode/**/*.{h}"

end

我的问题是:

  • 第二张图片中展示的pod是否为预编译的pod?
  • 如何分发已编译版本的框架,以避免每次编译包含它的应用程序时都需要重新编译它?

你的问题有点难以理解...如果你想使用编译后的框架与pod一起使用,只需将其包含在文件夹中并使用 vendored_framework 即可。 - Tj3n
1
@Tj3n,这就是我在这个链接上看到的,但我不知道如何自动获取.framework文件夹路径,因为每次构建时它都会改变,由于在DerivedData中构建的文件夹名称的更改。 - chabro_a
你需要添加一些构建脚本,将文件从DerivedData移动到其他文件夹。 - Tj3n
你找到答案了吗?我也在尝试做同样的事情。我想只分发我的 CocoaPods 框架。例如,https://github.com/Instabug/Instabug-iOS 只分发框架。 - user3869369
使用 spec.source = { :http => 'http://dev.wechatapp.com/download/sdk/WeChat_SDK_iOS_en.zip' } 下载源码包。 https://guides.cocoapods.org/syntax/podspec.html#source - Tim
1个回答

1
你可以使用 vendored_frameworks 来实现这个功能:
s.subspec 'MyLib' do |mylib|
  mylib.source_files = 'MyLib/Classes/**/*'
  mylib.vendored_frameworks = 'MyLib/Frameworks/closed-source.framework'
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接