美文网首页Objective-C、Swift
Xcode 本地pods修改不生效的问题

Xcode 本地pods修改不生效的问题

作者: 我叫没名字啊 | 来源:发表于2019-12-30 16:39 被阅读0次

Q:

手里的项目是走了 Pods 组件化的,在主项目里调试组件库里的东西,pod 路径走本地。
但是每次修改库里的代码,运行并不会生效,得 cmd+l 清理一下,然后 cmd+r 运行才生效。

但是我发现,创建 Pods 时,系统默认创建的 Example 项目,针对库里的修改,是及时生效的。于是考虑,可能是编译配置的原因,通过比对两个项目的编译配置,得出解决方案1。
然后又跟组里大佬讨论下,大佬教了解决方案2。
建议大家根据自己的实际场景,自行选择。

A:

方案1:

你实际的项目 target -> Build Phase -> Embed Pods Frameworks,在 Input Files 里,添加你需要每次都重新编译的库:${BUILT_PRODUCTS_DIR}/YourPodsSDK/YourPodsSDK.framework

修改项目编译配置.png

方案2:

大家确认下项目的 Podfile ,是否有 use_frameworks! 参数,这个参数指的是,把库当成静态库来处理,所以造成了本地修改后并不会及时更新。因此可以把 use_frameworks! 参数删掉就可以了;

👆方案2订正:

use_frameworks! 参数确实可以解决最开始的问题,但上面这段话的解释错了。use_frameworks! 指的是把库当成动态库(.framework)来处理,如果注释的掉,表示把库当成静态库(.a)来处理。他会影响 Xcode 编译你引用的库的时机。链接指路👉:stackoverflow

Cocoa Touch Frameworks:当你clear项目的时候,会重新编译;
Cocoa Touch Static Libraries:如果podfile指定了本地路径,那么当本地的文件改变了,那么就会重新生成.a。你可以在‘Products文件夹’下,找到对应的.a,然后show in Finder,看这个.a文件的生成时间,就可以看出来。


PS:

方案1:上线前删除,开发时添加,用起来会有点麻烦;但不影响其他库的编译策略;
方案2:方便简单,随时注释随时用;但有些库,为了编译速度,或者库本身的限制,可能会需要 use_frameworks! 参数;大家可以根据场景,自行选择;

相关文章

网友评论

    本文标题:Xcode 本地pods修改不生效的问题

    本文链接:https://www.haomeiwen.com/subject/svemoctx.html