我在一个项目中使用了CocoaPods。作为CocoaPods设置的一部分,Xcode的“构建阶段”会得到两个Cocoapods脚本:
[CP] Embed Pods Frameworks
[CP] Copy Pods Resources
在同一个项目中,我使用了一个在[CP] Embed Pods Frameworks
之后运行的脚本。我可以手动设置它,它可以使用
[CP] Embed Pods Frameworks
My Script
[CP] Copy Pods Resources
问题是运行pod deintegrate
重新安装pod后,脚本顺序重置为:
My Script
[CP] Embed Pods Frameworks
[CP] Copy Pods Resources
由于这个项目的团队工作量很大,脚本顺序可能会被错误地重置,从而导致CI中断。
在Podfile中是否有办法控制脚本的顺序?
2条答案
按热度按时间gk7wooem1#
CocoaPods使用了一颗Ruby:https://github.com/CocoaPods/Xcodeproj来处理Xcode项目文件。因此,在它的帮助下,可以操纵项目中构建阶段的顺序。我做了一个快速测试,下面的脚本应该可以满足您的需要:
如果您希望确保脚本在pod安装后始终位于正确的位置,则需要将其添加到您的pod文件中:
有一些延迟,因为它没有立即工作后安装,可能是由于Cocoapods更新项目本身在那一刻。
zaqlnxep2#
我还没有找到一种方法来决定一个特定的顺序。但是可以使用一个Cocoapods特性,允许在
Podfile
中指定用户脚本。如果您在
Podfile
中使用script_phase
,例如您将得到要插入到所有其他
[CP]
脚本之后的My Script
,如下所示:[CP] Embed Pods Frameworks
[CP] Copy Pods Resources
[CP-User] My Script
这解决了我的问题,即使不允许您声明特定的排序。