在构建具有多个目标的应用程序时,我应该如何确保使用正确的info.plist

时间:2014-08-21 01:03:13

标签: ios push-notification provisioning-profile

我有一个公共代码库,我想从中构建多个应用程序。目前我已经建立了测试应用程序,我可以成功测试推送通知。

确认初始推送通知有效后,我复制了目标。在新的(重复)目标的信息标签中,我修改了捆绑包标识符,并且在副本的info.plist文件中,我已将捆绑包标识符更新为第二个我已授权推送通知的应用。

在重复的构建设置下,在打包部分下,我可以看到Info.plist值设置为重复的文件名。但是当我尝试构建第二个目标时,我得到以下Xcode错误:

Code Sign error: Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings (“iOS Team Provisioning Profile: app.mine.PushNotificationTest”) has an AppID of “app.mine.PushNotificationTest” which does not match your bundle identifier “app.mine.PushNotificationTest2”.

有没有一种方法可以确保在构建应用程序时使用正确的应用名称和info.plist文件?

1 个答案:

答案 0 :(得分:1)

问题不在于它没有正确地为第二个目标拉动Info-plist - 问题在于它正在拉动新的info.plist。在第二个目标info.plist中,您已更改了包标识符。但是,您的配置文件绑定到特定的软件包ID,在本例中为“app.mine.PushNotificationTest”。但是,对于目标2,您尝试使用仅设置为“app.mine.PushNotificationTest”的配置配置文件使用捆绑ID“app.mine.PushNotificationTest2”进行构建。这就是你得到错误的原因。

您需要做的是进入开发人员中心并为第二个包ID创建新的配置文件。然后,在Xcode的第二个目标设置中,更改目标2以使用已设置为捆绑ID app.mine.PushNotificationTest2构建的新配置配置文件。

请注意,当您使用特殊权利(例如推送通知或iCloud)时,您无法在配置配置文件中使用通配符(例如app.mine。*)。这就是为什么您需要为计划与推送通知一起使用的每个捆绑ID使用不同的配置文件。