从不同的目标获取捆绑ID
在我的Xcode项目中,我有4个不同的scheme(prod,dev,staging,staging2),它改变了安装到手机上的应用程序的包标识符。 这样,我可以并排安装所有4个版本,类似于这种技术 。
现在我正在为iOS 8构build一个Today Extension。这是一个新的Target,它需要自己的包标识符。
扩展的绑定标识符必须以父应用的绑定标识符作为前缀,否则会引发警告:
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
在这种情况下,embedded式二进制软件包标识符必须是com.company.app.staging.TodayExtension
。
有没有一种方法可以configuration我的Today Extension目标,通过首先查看父目标的包标识符来设置它的包标识符? 也许通过自定义运行脚本构build阶段?
目标的构build设置不适用于其他目标。 但是PROJECT的构build设置是可用的。
您可以在您的项目中添加一个用户定义的构build设置,并将其命名为PARENT_APP_BUNDLE_IDENTIFIER,并为您的所有scheme设置正确的包ID。
然后,在应用扩展程序目标的info选项卡中,将bundle id设置为
$(PARENT_APP_BUNDLE_IDENTIFIER).$(PRODUCT_NAME:rfc1034identifier)
它对我来说工作得很好。
- AVCaptureTorchModeAuto不会持续更新火炬模式
- 在iOS 7中使用相机时,应用程序因内存压力而终止
- 在iOS中自定义“可resize的图像”
- 自定义“按下”UIBarButtonItem背景
- EXC_BAD_ACCESS使用在8.3设备上运行的gmaps sdk 1.9.0,Xcode 6.4
- iPhone的iPhone应用程序仍然运行时,iPhone被locking?
- 任何方式来改变UITcrollView的zoomToRect的持续时间?
- 如何获取NSString中的特定字符的所有NSRange?
- 用iOS 6 SDK和Xcode 4.5构buildarmv6架构(目标iOS 3.1.3)?