iphone - 重复使用通配符 appId 来启用推送通知

标签 iphone objective-c ipad

我最近接手了一个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/

相关文章:

ios - iOS:自动调整功能不适用于UIImageView

c# - 在 Xamarin for iOS 中使用 NSTimer 调用 SetNeedsDisplay

objective-c - -(id)init 方法有什么用?

ios - 更新到 XCode 8 后 iPad 上的应用程序崩溃

ios - 单点登录配置文件在 iPad 和 Safari 中无法正常工作

iphone - 无法编译连接iOS5

ios - 如何清除迦太基缓存?

iphone - iOS App 中的按钮不会显示

objective-c - 在 Windows 中运行 Objective C(通过 XCode 制作)

iphone - 如何禁用 Twitter 登录页面中的文本更正和大写?