ios上架错误收集:ITMS-90078: Missing Push Notification Entitlement

在iOS应用上架过程中遇到ITMS-90078错误,提示缺少Push Notification Entitlement。该错误意味着应用注册了Apple Push Notification服务但签名权限中未包含'aps-environment'。解决方案包括在Provisioning Portal启用Push通知,并使用包含'aps-environment'的Distribution provisioning profile重新签名和上传。可以选择在Xcode的Capabilities或手动修改entitlements文件来添加此权限。

因为用对跨平台开发,对iOS开发不熟,在上架过程中出现如下错误,通过邮件对形式发送过来的。

内容如下:

App Store Connect

Dear Developer,

We identified one or more issues with a recent delivery for your app, “appname” 2.0.0 (1.1.4). Your delivery was successful, but you may wish to correct the following issues in your next delivery:

ITMS-90078: Missing Push Notification Entitlement - Your app appears to register with the Apple Push Notification service, but the app signature’s entitlements do not include the “aps-environment” entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the “aps-environment” entitlement. Xcode does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in th

### 问题分析 ITMS-91061 错误提示 `Missing privacy manifest` 是在 iOS 应用提交到 App Store Connect 时出现的一种常见问题,主要原因是应用中使用的某些第三方 SDK 缺失了必要的隐私清单文件(Privacy Manifest)。苹果在 iOS 17 及 Xcode 15 中引入了隐私清单机制,要求第三方 SDK 必须提供隐私清单文件,以声明其访问用户隐私数据的行为[^3]。 该问题与 ITMS-91053 警告不同,后者涉及应用自身代码中调用了涉及隐私的 API 但未提供声明,而 ITMS-91061 则专门针对第三方 SDK 的隐私声明文件缺失问题。 ### 解决方案 #### 1. 确认受影响的第三方 SDK 首先,检查错误提示中提到的具体 SDK 文件路径。例如: ``` Your app includes “Frameworks/X.framework/X”, which includes X, an SDK that was identified in the documentation as a commonly used third-party SDK. ``` 这表明某个第三方框架(如 `X.framework`)缺少隐私清单文件。 #### 2. 更新受影响的 SDK 苹果要求第三方 SDK 提供商在 SDK 中包含隐私清单文件(`.privacymanifest`),因此解决此问题的最直接方法是更新 SDK 到最新版本。建议: - 访问该 SDK 的官方文档或发布页面,确认是否已发布支持隐私清单的版本。 - 若尚未支持,联系 SDK 提供商,请求提供符合苹果新政策的版本。 #### 3. 添加隐私清单文件(若为 SDK 开发者) 如果你是 SDK 开发者,或有能力修改该 SDK,可以手动添加 `.privacymanifest` 文件。该文件是一个 XML 格式的 plist 文件,用于声明 SDK 访问用户隐私的行为。例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>privacyManifestVersion</key> <string>1</string> <key>privacyEntries</key> <array> <dict> <key>accessedPrivacyElement</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>reasons</key> <array> <string>PURPOSE1</string> </array> </dict> <dict> <key>accessedPrivacyElement</key> <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> <key>reasons</key> <array> <string>PURPOSE2</string> </array> </dict> </array> </dict> </plist> ``` 将该文件嵌入到 SDK 的构建中,并确保其随 SDK 一起分发。 #### 4. 验证构建是否包含隐私清单 使用以下命令检查 SDK 是否包含 `.privacymanifest` 文件: ```bash cd /path/to/your/app/Frameworks/X.framework ls | grep .privacymanifest ``` 若未找到该文件,则说明 SDK 仍不符合要求。 #### 5. 重新构建并提交应用 在确保所有第三方 SDK 均包含隐私清单文件后,重新构建应用并上传至 App Store Connect。 ### 注意事项 - 苹果官方要求所有新提交的应用或包含新第三方 SDK 的更新必须符合隐私清单要求。 - 如果某个 SDK 供应商迟迟未提供支持,可考虑寻找替代 SDK。 - 苹果提供了[第三方 SDK 要求文档](https://developer.apple.com/support/third-party-SDK-requirements),可查阅以确认受影响的 SDK 是否在列。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值