LeT*_*T0C 5 frameworks private static-libraries ios cocoapods
我正在为iOS开发团队(在私人仓库)开发pods开发.我的低级C/Obj-C核心pod包含一个带有一些头的静态库,并在其他pod中用作依赖(推送--use-libraries).
现在iOS团队想要集成Swift pod,他们不得不use_framework!在他们项目的Podfile中添加选项.当然,他们在以下期间获得了以下错误pod install :
'XXX'目标具有包含静态二进制文件的传递依赖项
我花了半天的时间在网上寻找一种让我的pod与该use_framework!选项兼容的方法,徒劳无功.这非常令人沮丧,因为Google Services pod证明可以以干净的方式绕过这个问题(不是verify_no_static_framework_transitive_dependencies诀窍):主pod和几乎所有的依赖包含静态库,一切都与Swift pod完美配合.使用Google/SignIn,这取决于Google/Core(vendored_libraries:Libraries/libGGLCore.a)和GoogleSignIn(vendored_libraries:Libraries/libSignIn.a).
知道我能做些什么来让我的pod与use_framework!选项兼容?
谢谢你们,
干杯,
汤姆
我想我找到了解决我问题的方法。这很奇怪,但我想说它足够干净,可以在生产中使用它;)
我在这里找到的。这个想法只是在 podspec 内的 source_files 列表中包含一个源文件(甚至是空文件)。
基本上,我的 podspec 的源代码部分如下所示:
s.source_files = "myLib/Empty.m", "myLib/Headers/*.h"
s.vendored_libraries = "myLib/myLib.a"
Run Code Online (Sandbox Code Playgroud)
我所做的唯一修改是在源文件中添加“myLib/Empty.m”(Empty.m 严格来说是空的)。如果没有它,当我pod install时,我会系统地出现传递依赖项错误。有了它,pod install就可以正常工作了。它对我来说适用于 Cocoapods 0.0.39 和 1.0.0.beta.4。
好吧,看起来这不是一个那么脏的解决方案,但我不确定它在所有情况下都有效。对于 Cocoapods 的清洁度来说,这可不是什么好消息……
正如我之前在评论中提到的,谷歌似乎找到了一个更干净的解决方案。因此,如果有人知道真正的清洁解决方案,请分享!
干杯,
汤姆
PS:我想我会将文件命名为DirtyCocoapodHack.m而不是Empty.m,当然开发团队中的人会喜欢它;)
| 归档时间: |
|
| 查看次数: |
1462 次 |
| 最近记录: |