为不同版本的应用程序使用不同的目标提供了更大的灵活性,并且一旦您为每个目标指定了不同的 plist 文件,您就可以轻松地更改捆绑标识符和图标等。但是,这些配置与 Xcode 集成得更深,您可以build setting
根据配置进行任何调整。
经过更多研究后,我想出了如何通过一个目标获得两全其美的效果:
好处
- 由于这三个 App 都有自己的标识符,因此在 Xcode 中测试当前 App 时,您不会覆盖最新的预览版本。
- 很好地集成到 Xcode 中并提供了高度的灵活性
现在可以根据配置单独更改所有构建设置
- 通过克隆 Xcode 中的现有配置,可以轻松添加新配置
- 不需要额外的目标
恕我直言,对于完全不同的工件,如库或具有不同代码库的测试目标,目标是更好的。
- 如果需要,可以在代码中使用这些配置。
- 不同的服务 URL 等可以用于不同的环境。请参阅这篇很棒的帖子(感谢 Jonah!),它展示了如何使用特殊
plist
文件执行此操作。
- 不使用任何难以维护的hacky脚本
缺点
使用目标可以从一种应用程序中排除一些框架。因此,例如,您可以从debug
您的应用程序版本中排除一些分析库。
更新:您不能使用com.company.${PRODUCT_NAME:rfc1034identifier}
用户定义的构建设置之类的替换。因此,在这种情况下,您必须写出整个捆绑包标识符。
更新:一些应该“配置感知”的设置移动到构建设置的用户定义部分,这对一些开发人员来说可能感觉不寻常。
结果
结果 http://i.minus.com/jbwPgEiBra39dL.png