ios – Apple Watch预构建操作来更改故事板customModule引用

我目前有一个项目,同一个应用程序的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中,在某种程度上起作用,但是似乎在将应用程序推送到模拟器之前,后面的动作被踢了,从而使应用程序崩溃(“无法运行看到设备日志“ 或类似的东西).

那么在地球上我需要把这些脚本放在正确的时间运行在构建过程中呢?

解决方法

您应该在目标的构建阶段中使用添加新的运行脚本阶段,将其放在编译源之前

步骤:(从Apple)

>在项目编辑器中,选择要添加到的目标运行脚本构建阶段.>单击项目编辑器顶部的构建阶段.>选择编辑器>添加构建阶段>添加运行脚本构建阶段.>在项目编辑器中打开运行脚本部分.>在“运行脚本”模板中配置脚本.

相关文章

在有效期内的苹果开发者账号(类型为个人或者公司账号)。还...
Appuploader官网--IOS ipa上传发布工具,证书制作工具跨平台...
苹果在9月13号凌晨(北京时间)发布 iOS 16,该系统的设备可...
计算机图形学--OpenGL递归实现光线追踪
Xcode 14打出来的包在低版本系统运行时会崩溃,报错信息是Li...