我最近接手了一个iPhone项目,之前从来没有用过objective-c。
我必须让应用程序使用推送通知,但第一个 appId 已经生效并使用通配符(因此没有推送通知)。
我创建了另一个带有标识符的 appId 并获得了推送通知。 但是,我的工作场所希望我收到有关通配符应用程序工作的通知(因为我们已经有很多客户在使用该应用程序)。
那么我如何使通配符应用更新并使用唯一标识符而不创建新的 appId(即使使用相同的 bundleId)。
我对所有这一切都很陌生,所以非常感谢一步一步的过程 (ELI5)。
作为引用,我使用钥匙串(keychain)获取私有(private) .p12 文件,并在运行控制台应用程序的 Windows 服务器上使用该文件生成推送通知(发送到 Apple 的 apns 服务器)。
编辑:我已经完成了以下步骤,有人可以告诉我我缺少什么吗?
1) 创建新的 bundleId(使用相同的 AppId)。
2) 配置该 AppId 以使用推送通知。
3) 在钥匙串(keychain)中创建 CSR。
4) 将其上传到门户并创建生产证书。
5) 下载该证书并导出私钥。
6) 使用与 1 相同的 bundleId 创建配置文件(例如 au.com.website)。
7) 下载该配置文件,将其放在 x 代码中并放在我的 iPhone 设备上。
8) 在 x-code 的build设置中使用 bundle Id 并使用我在步骤 6 中创建的配置文件。
9) 存档应用程序,临时部署,将文件保存到桌面。
10) 将该文件放入 TestFlight,在我的 iPhone 上从 testFlight 下载应用程序。
11) 将私钥放在我的 Windows 服务器上并发送推送通知(它们发送 w.o 错误)。
我没有收到推送通知(iPhone 设置为恢复它们)。
这再次与其他人制作的另一个 appId 一起使用,所以我知道代码有效。
最佳答案
不要混淆应用程序标识符和 bundle 标识符。包标识符类似于:com.company.appname,由应用程序的 info.plist 定义
应用标识符有一个额外的前缀(通常是团队前缀)并且可以包含通配符。应用程序标识符用于将 bundle 标识符与供应配置文件相匹配。配置文件仅对匹配的应用程序有效(不包括前缀)
现在您想要的是保持包标识符不变,因为如果您更改它,它就会变成一个新的应用程序。但是您可以在每次更新时更改配置文件和应用程序标识符。
不久前,我遇到了类似的情况,当时我发布了一个带有通配符应用程序 ID 的应用程序,并向其中添加了一个 IAP。
- 您只需创建一个与 bundle ID 匹配的新(非通配符)应用程序 ID。
- 您在应用 ID 上启用所需的 Apple 服务(IAP、GC、APNS)。
- 您创建新的配置文件以满足您的需求(App Store、Ad Hoc、开发)
然后,您可以使用新配置文件但未更改 bundle id 为您的应用提交更新。
关于iphone - 重复使用通配符 appId 来启用推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13909382/