我目前有一个项目,同一个应用程序的3个不同版本(不同的品牌等),这是正常工作.此后,我已经添加了3个新的Apple Watch目标(每个应用程序“版本”1个)),其中2个引用“主”Apple Watch目标中的文件.
只要我记得更改每个故事板视图的模块参考,一切都可以正常工作,以便映射到相应的watchkit扩展目标中的正确的接口控制器.
但是,记住每次需要运行/构建应用程序版本/目标时都需要切换,这是一个痛苦而不是一个长期的解决方案.
我创建了以下命令,我想在正确的时间运行,以便它在编译之前更改storyboard引用.
perl -pi.bak -e 's/customModule=\"(.*?)\">/customModule=\"watchMyTarget_Extension\">/g' ${SRCROOT}/watch/Base.lproj/Interface.storyboard
我还得出结论,我可能想在应用程序编译后重置更改,因为我不想对git进行文件更改.这就是上述脚本创建一个.bak文件的原因.所以编译完成并打包/运行在设备上或任何,我想运行
mv ${SRCROOT}/watch/Base.lproj/Interface.storyboard.bak ${SRCROOT}/watch/Base.lproj/Interface.storyboard
我已经尝试将脚本放在目标(watchTarget,而不是appTarget)构建方案中,Build-> Pre / Post Actions似乎没有任何效果.而且我试着把它放在Run-> Pre / Post Actions中,在某种程度上起作用,但是似乎在将应用程序推送到模拟器之前,后面的动作被踢了,从而使应用程序崩溃(“无法运行看到设备日志“ 或类似的东西).
那么在地球上我需要把这些脚本放在正确的时间运行在构建过程中呢?