将通配符包标识符转换为单个ID

时间:2009-12-16 07:00:10

标签: iphone cocoa-touch xcode itunesconnect

我在应用商店中有一个使用通配符包标识符的应用。我想实现应用内购买,这需要非通配符ID。如何将现有应用的通配符ID转换为静态ID以进行应用内购买和推送通知?

3 个答案:

答案 0 :(得分:14)

应用的捆绑标识符在更新之间必须始终保持相同,但AppID实际上可能不同。所以你需要做的就是创建一个新的AppID,它使用与原始应用程序相同的包标识符而不是通配符。

使用通配符的应用仍需要普通的捆绑包标识符。通配符AppID允许您使用任何您喜欢的包标识符,但它仍然需要一个。

http://developer.apple.com/library/ios/#qa/qa1713/_index.html https://developer.apple.com/library/ios/#technotes/tn2259/_index.html

答案 1 :(得分:3)

您实际上不需要更改应用的ID,只需要为已经发送的特定ID制作新的配置文件,然后使用新的代码签名证书对应用的升级版本进行签名

也就是说,如果旧应用程序的软件包ID是com.yourcompany.myapp,并使用com.yourcompany。*证书签名,那么您只需创建一个新的com.yourcompany.myapp证书,但是保留应用程序的软件包标识符和以前一样。

答案 2 :(得分:3)

简而言之,您可以将已使用通配符包ID的已提交应用转换为唯一的应用ID。但是,如果你这样做,你将会遇到一些问题,或者从用户的角度来看是否存在问题。

Apple使用捆绑ID来识别应用商店中的应用(因此术语App ID: - )。

您面临的问题是您的应用已经在App Store上运行,可能会有用户下载。现在,当您使用新的唯一App ID更新应用程序时,已下载应用程序的用户(使用旧的App ID)将无法获得更新(使用新的唯一App ID)。

发生这种情况的原因是您现在在应用程序中有一个新的包ID。没有连接到旧的App ID。由于应用只能有一个App ID引用。在整个生产版本和应用程序更新中保持App ID相同通常是个好主意。

如果您为应用创建了唯一的ID(您可以)。下载新更新的应用程序的用户一切都会很好,但是对于在更新之前下载了您的应用程序的用户。嗯......您现在已经正式为这些用户创建了一个应用程序孤儿,这些用户永远不会获得该更新,因为它与应用程序ID不匹配。

至于解决这个问题的方法。我不确定是否有。我只能建议您始终为您未来的生产发布应用程序创建唯一的App ID。


为了创建一个允许您使用 Apple推送通知 服务的应用程序,以及Apple的 In App Purchase 。您需要创建一个唯一的App ID App ID。 我总是建议您为应用程序使用唯一ID。它将在以后的路上为您节省大量的麻烦。

为澄清起见,以下是唯一ID

  • com.companyname.appname(唯一应用ID的首选命名约定)
  • appname.companyname