一般来说,大厂的 App 有两个证书进行签名打包,除了 App Store 上架用的,还有个用于内部测试,用的是企业证书。为了和正式包加以区分,与之相对应就会有两种不同的 App IDs 。通常来说,可能直接点的手法就是在打包之前手动更新 Info.plist
文件里的 Bundle Identifier
。
这样的做法可行,但是由于需要在打包的 Job 中进行更改,会有很多修改语句,如果 app 是一个有很多 target 的庞大工程,那么在打包脚本中就会出现这样的现象:
如果想改动,那就会是一件非常蛋疼的事情……
利用 Build Configuration 做统一配置
在 Xcode 的 Build Settings -> Packing
中,有个 Product Bundle Identifier
的设置项,展开后有一些以 Build Configuration
为 key 的子项:
将我们不同 Configuration 下的 Bundle ID 设置好,不过还需要在 Info.plist
里面 CFBundleIdentifier
(Bundle Identifier
) 改成用这个参数:
这样在 xcodebuild
时,会根据 -configuration
这个参数选择对应的 ID。
如果有别的 ID 也需要变动呢?这一个参数恐怕就不够用了,那就用 User-Defined Setting
吧。
在 Build Settings
上,点 +
号,Add User-Defined Setting
:
然后就会在下方的 User-Defined
多出一个空的设置项,展开后和 Product Bundle Identifier
一样,有一堆以 Build Configuration
为 key 的子项,剩下的事情参考上面的步骤,就是把你想设置上的 ID 设置好,更新到你想要的用到的地方。
不一定是 Bundle ID,其他的一些打包配置也可以通过这个进行设置。