在我的
Xcode项目中,我有4个不同的方案(prod,dev,staging,staging2),它将安装到手机上的应用程序的bundle标识符更改.这样我可以将所有4个版本并排安装,类似于
this technique.
现在我正在为iOS 8构建一个Today Extension.它是一个新的Target,需要自己的bundle标识符.
扩展程序包标识符必须以父应用程序的Bundle标识符作为前缀,否则会引发警告:
error: Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier. Embedded Binary Bundle Identifier: com.company.app.TodayExtension Parent App Bundle Identifier: com.company.app.staging
在这种情况下,嵌入式二进制包标识符必须是com.company.app.staging.TodayExtension.
有没有办法通过首先查看父目标的捆绑标识符来配置我的Today Extension目标来设置它的捆绑标识符?也许通过自定义运行脚本构建阶段?
解决方法
目标的构建设置不适用于其他目标.但是PROJECT的构建设置是可用的.
因此,您可以在项目中添加用户定义的构建设置,并将其称为PARENT_APP_BUNDLE_IDENTIFIER,并为所有方案设置正确的包ID.
然后在应用程式扩充功能目标的资讯标签中设定分组编号
$(PARENT_APP_BUNDLE_IDENTIFIER).$(PRODUCT_NAME:rfc1034identifier)
它对我来说完全正常