9

我最近接手了一个 iPhone 项目,之前从未使用过 Objective-c。

我必须让应用程序使用推送通知,但第一个 appId 已经存在并使用通配符(因此没有推送通知)。

我创建了另一个带有标识符的 appId 并让推送通知正常工作。但是,我的工作场所希望我收到通知,以便为通配符应用程序工作(因为我们已经有很多客户在使用该应用程序)。

那么如何在不创建新 appId(即使具有相同的 bundleId)的情况下更新通配符应用程序并使用唯一标识符。

我对这一切都很陌生,因此非常感谢一步一步的过程(ELI5)。

作为参考,我使用钥匙串来获取私有 .p12 文件,并在运行控制台应用程序的 Windows 服务器上使用该文件,该应用程序生成推送通知(发送到 Apple 的 apns 服务器)。

编辑:我已经完成了以下步骤,有人可以告诉我我缺少什么吗?

1)创建新的bundleId(使用相同的AppId)。

2) 将该 AppId 配置为使用推送通知。

3) 在钥匙串中创建 CSR。

4)将其上传到门户并创建生产证书。

5)下载该证书并导出私钥。

6) 使用与 1 相同的 bundleId 创建配置文件(例如 au.com.website)。

7) 下载该配置文件,将其放入 x-code 和我的 iPhone 设备上。

8) 在 x-code 的构建设置中,使用捆绑 ID 并使用我在步骤 6 中创建的配置文件。

9) 归档应用程序,临时部署,将文件保存到桌面。

10)将该文件放入TestFlight,从我的iPhone上的testFlight下载应用程序。

11)将私钥放在我的 Windows 服务器上并发送推送通知(它们发送错误)。

我没有收到推送通知(iPhone 设置为恢复它们)。

这再次与其他人制作的另一个 appId 一起使用,所以我知道代码有效。

4

3 回答 3

11

不要混淆应用标识符和捆绑标识符。捆绑标识符类似于:com.company.appname,由应用程序的 info.plist 定义

应用标识符有一个额外的前缀(通常是团队前缀)并且可以包含通配符。应用标识符用于将捆绑标识符与配置文件匹配。配置文件仅对匹配的应用程序有效(不包括前缀)

现在你想要的是保持包标识符相同,因为如果你改变它,它就会变成一个新的应用程序。但是您可以在每次更新时更改配置文件和应用标识符。

不久前,当我发布了一个带有通配符应用程序 ID 的应用程序并添加了一个 IAP 时,我也遇到了类似的情况。

  • 您只需创建一个与捆绑包 ID 匹配的新(非通配符)应用 ID。
  • 您在应用程序 ID 上启用所需的 Apple 服务(IAP、GC、APNS)。
  • 您创建新的配置文件以满足您的需求(App Store、Ad Hoc、开发)

然后,您可以使用新配置文件但未更改捆绑 ID 为您的应用提交更新。

于 2012-12-17T06:58:33.047 回答
0

对于推送通知,appId 是必须的。一步一步的过程使用raywenderlich的两部分教程。希望这会帮助你。

于 2012-12-17T06:49:59.410 回答