你需要看到两个东西: 你在Xcode上使用的配置文件以及在developer.apple上的配置文件。
这一切都与配置文件有关。
步骤1:
进入https://developer.apple.com/account/ios/certificate/,查看你的应用程序需要的 Active
iOS 分发配置文件。然后单击它,确保启用了 Push Notification
的 Enabled Services
。如果没有,则单击编辑并按照 Apple 提供的步骤启用它。如果已启用,则很好。
步骤2:
删除任何与您的应用程序相关的无效
配置文件(只删除 YOUR app 的无效配置文件)。接下来的步骤会告诉你为什么要这样做。
步骤3: 转到 Xcode-> Preference-> View Details (for your Account) ->[可选:要确定无效的配置文件已经被删除,请右键单击任何配置文件,选择 "Show in Finder",然后从该文件夹中删除/移动所有的配置文件]。现在点击 Download All Profile。这将使用当前的配置文件替换本地配置文件。单击 DONE。
步骤4:
转到您的应用程序 Targets-> Build Settings-> 在 Code Signing 中展开您的配置文件以显示 Debug
和 Release
选项卡。默认情况下,它将自动使用无效的配置文件(这就是为什么你的应用程序可能会自动使用我们在步骤2中刚刚删除的无效配置文件)。对于Release
,为了更安全,请选择在第1步中启用了 Push Notifications 的 Active
配置文件。
就是这样。
现在你不应该再收到任何电子邮件了。
@Djeeraj V.S.是正确的。Cordova增加了一些条件编译,以便对于不需要推送通知的应用程序可以取消此要求。
您可以按照这个答案在Classes\AppDelegate.h
中注释掉代码,但最好通过UI添加编译符号DISABLE_PUSH_NOTIFICATIONS
,以便您可以继续受益于未来的Cordova升级。
我来自.NET背景,所以我熟悉条件编译,但必须花费一些时间来解决如何在XCode中使编译器标志工作。
事实证明,这里的魔术词是“预处理器宏”。以下是如何通过UI图形方式完成(请注意,这是XCode 6.1中完成的方式):
希望这能帮助其他处于同样情况下的人们。
我通过以下步骤解决了这个问题:
Xcode
打开您的项目Runner
选项卡中点击 Signing & Capabilities
,然后点击 + Capability
按钮。在筛选字段中输入 push
并按 Enter 键。push notifications
权限后,将在您的项目中创建 Runner.entitlements
文件。根据我的情况,以下方法奏效了。 Xcode 9.2
Build Target > Signing
中禁用出现的 Automatically manage signing
我有一个 Cordova 应用程序,之前有通知功能,但想从应用程序中删除它。我尝试按照上面的答案操作,但在上传构建时仍然遇到了此问题。我意识到,我安装了一个插件,该插件使用了通知设置,并且某种方式保持了一些通知的激活设置。
我通过完全删除 ios 平台 cordova platform rm ios
,再次添加它 cordova platform add ios
并确保从 ios.json
和 fetch.json
文件中删除了插件来解决这个问题。