ios – 从不同的目标获取捆绑ID

在我的 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)

它对我来说完全正常

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...