获得批准后,我可以在我的应用中更改捆绑标识符吗?
Posted
技术标签:
【中文标题】获得批准后,我可以在我的应用中更改捆绑标识符吗?【英文标题】:Can I change the Bundle Identifier in my app after it's been approved? 【发布时间】:2011-02-04 06:08:43 【问题描述】:我的应用程序不久前获得批准并使用了 * 配置文件,因此我创建了如下内容:
com.mydomain.MyApp
但现在我有必要添加推送通知,但我无法使用 * 配置文件,它需要有自己的应用 ID 和配置文件。
我应该如何进行才能在不破坏任何内容的情况下实现应用更新
【问题讨论】:
【参考方案1】:应用程序的包标识符在更新之间必须始终保持不变,但 AppID 实际上可以不同。因此,您需要做的就是创建一个新的 AppID,该 AppID 使用与原始应用相同的包标识符而不是通配符。
使用通配符的应用仍然需要一个普通的捆绑标识符。通配符 AppID 允许您使用任何您喜欢的包标识符,但它仍然需要一个。
曾经有一个Apple article关于这个:
但是现在已经不能在线使用了但是an archive可以使用了。
【讨论】:
该链接指向技术问答 QA1680,“从通配符 App ID 更新到显式 App ID”,但是 Apple 网站有问题,或者他们现在故意删除了该文章。 这个答案应该被批准 web.archive.org/web/20111006112505/http://developer.apple.com/…【参考方案2】:如果要发布更新,则不能更改已发布应用的 CFBundleIdentifier,App Store 会在您上传时自动拒绝。所以...
我需要在以前使用通配符应用 ID 开发的应用上启用 iAd。这是我所做的:
我的应用当前使用的通配符应用 ID 为 <AlphaNumeric>.*
,而我的应用的 CFBundleIdentifier
为 com.companyname.mygame
。
创建了一个新的应用 ID <AlphaNumeric>.com.companyname.mygame
。
创建了包含新应用 ID 的新开发和分发配置文件。
将新的配置文件下载到 Xcode 和我的设备。
然后我能够使用新的非通配符分发配置文件编译应用程序,这意味着在上传时我可以启用 iAd(或为你推送)。 CFBundleIdentifier 未更改,因此新编译显示为对现有应用的更新。
我可以确认这个过程没有问题。
【讨论】:
所以,换句话说,您不能更改应用程序的捆绑标识符,但您可以在新的 AppID 和使用该新 AppID 的配置文件下发布更新? 只要新的 AppID 包含与原始通配符 ID 相同的字母数字命名空间。因此,如果一家公司(“BenCollins”)在通配符 App ID 1234abcd.* 中创建了一个应用程序(“TheApp”),您需要创建一个新的 App ID 1234abcd.com.BenCollins.TheApp 并使用它。 因此您基本上创建了新的配置文件并使用它们,并且您不会更改捆绑 ID。没有其他变化。那么......应用程序在什么时候切换到尊重新的应用程序 ID?我的问题是我想将应用内购买添加到具有非唯一应用 ID 的应用中。感谢您的任何见解!【参考方案3】:在标题为“技术说明 TN2259”的文档中的常见问题下,即“将应用内购买添加到您的 ios 和 Mac 应用程序”中,有这一点
问题:我的 iOS 应用程序当前使用 Provisioning Profile 进行签名 使用通配符 App ID。如何启用我的 App ID 以支持 在应用程序内购买?
答案:阅读创建和配置应用程序 ID 部分 iOS 团队管理指南了解如何启用您的应用程序 支持应用内购买的 ID。
链接指向here,并且有一个部分称为“更新您的应用以包括 APNS、iCloud、应用内购买或游戏中心需要一个显式应用 ID”
也就是说,我(目前)不知道应用在什么时候使用新的应用 ID。是在您上传以供审核时,在此之前,还是在已批准时?我现在正在解决这个问题,所以我可能很快就能添加到这个答案中。
编辑: 显式应用程序 ID 只会影响您正在测试的软件,本质上与 iTunes Connect 没有任何关系。这意味着,如果您正在测试应用内购买,则正在运行的软件(您的应用)必须具有基于特定于应用的证书的配置文件。 iTunes Connect 中发生的事情完全无关紧要。
【讨论】:
以上是关于获得批准后,我可以在我的应用中更改捆绑标识符吗?的主要内容,如果未能解决你的问题,请参考以下文章