未集成APNs却遭苹果推送通知权限缺失误报的技术问询
我太懂这种无语的感觉了——明明你的App完全没碰过APNs相关功能,连App ID都没开启推送权限,苹果却反复发这个提醒邮件,简直是无妄之灾!结合我帮开发者排查这类问题的经验,给你几个针对性的解决方案:
彻底检查项目权限配置
打开Xcode项目,找到Entitlements.plist文件,仔细确认里面有没有aps-environment这个键——哪怕它的值是development或production,只要存在就会触发苹果的检测。如果有,直接删除这个键和对应条目。另外去Build Settings里搜索Push Notifications,确保这个选项是关闭状态。清理Xcode缓存和派生数据
Xcode有时候会残留旧配置缓存,哪怕你改了设置也会“阴魂不散”。执行下面的命令清空派生数据:rm -rf ~/Library/Developer/Xcode/DerivedData然后在Xcode里点击
Product > Clean Build Folder,再重新打包Archive,避免旧配置干扰。确认App Store Connect的App配置
登录App Store Connect,找到你的App进入Features页面,检查Push Notifications选项是否为关闭状态。有时候可能误操作勾选过,哪怕后来取消了,苹果系统检测可能还没同步,这里再确认一遍更稳妥。重新生成描述文件
哪怕你的App ID已经关闭推送权限,之前生成的Provisioning Profile可能还包含旧权限信息。去苹果开发者后台删除旧描述文件,重新生成一个完全基于当前App ID配置的新描述文件,下载后导入Xcode,确保打包时用的是新文件。直接联系苹果开发者支持
如果上面所有步骤都试过仍收到误报邮件,只能找苹果官方解决了。在开发者后台提交支持工单,把情况说清楚:App ID未启用推送、代码无任何APNs相关调用,附上Entitlements文件截图和App ID配置截图,让他们排查系统误报问题。我之前有个客户就是这么解决的,苹果调整检测规则后就不再发邮件了。
内容的提问来源于stack exchange,提问作者Anurag Soni

