问题描述
我遇到了一个奇怪的问题,我没有更改 expo app.json 中的任何 expo 设置,突然 Apple 拒绝存档,原因如下:
错误 ITMS-90164:“无效的代码签名权利。权利 在您的应用程序包签名与包含的签名不匹配 在配置文件中。根据配置文件, 捆绑包包含不允许的键值:键的“[]” 'com.apple.security.application-groups' 中 'Payload/ExpoKitApp.app/com.company.appname'。
我的博览会配置如下所示:
{
"expo": {
"name": "App Name","slug": "app-name-slug","version": "1.1.1","orientation": "portrait","icon": "./src/assets/icon.png","splash": {
"image": "./src/assets/splash.png","resizeMode": "cover","backgroundColor": "#000000"
},"updates": {
"fallbackToCacheTimeout": 0
},"assetBundlePatterns": [
"**/*"
],"ios": {
"supportsTablet": false,"bundleIdentifier": "com.company.appname","buildNumber": "1.1.1","infoPlist": {
"NSCameraUsageDescription": "App Name uses your camera to allow you to upload a profile picture.","NSPhotoLibraryUsageDescription": "App Name uses your photos to allow you to upload a profile picture."
}
},"android": {
"package": "com.company.appname","versionCode": 13,"permissions": []
},"web": {
"favicon": "./src/assets/favicon.png"
},"androidStatusBar": {
"barStyle": "light-content","backgroundColor": "#042f3d"
},"androidNavigationBar": {
"barStyle": "dark-content","description": ""
}
}
诚然,这是我在 Apple Review 系统(这是第一个应用程序)中遇到的第一个问题,所以我不知道去哪里找。任何帮助将不胜感激。
编辑:我在 Windows 上使用 expo,并且我有 App Store Connect。
解决方法
我当然愿意对此答案进行更正,但正如上面的评论中所述:
猜测根本原因:(Apple App Store 是一个封闭系统,我们只能猜测)
我相信 Apple 后端从今天起已经发生了变化,并且已经开始对采用数组值的授权键应用更严格的规则。
我相信 Apple 后端曾经接受使用数组值的授权键的空数组,但现在要求授权键要么根本不存在,要么包含实际值。
支持这一说法的证据:
- 我有一个权利文件,其中包含一个“in-app-messaging”权利密钥,其中包含一个空数组,如下所示:
<key>com.apple.developer.in-app-payments</key>
<array/>
-
直到昨天都很好(我成功提交了一个构建,并且已经提交了一年多的构建。
-
现在已经不行了,您的错误中有类似的空数组消息。
修复:
打开 .xcworkspace(Xcode 项目)文件并导航到我的项目的签名和权利,并删除有问题的权利密钥
无论如何,密钥是空的,所以除了现在权利文件完全删除了我上面引用的行之外,应该不会有任何影响
App Store 提交成功。
,要解决此问题(即使您使用的是 Expo 管理的工作流程并且无权访问 .entitlements
文件),请进入您的 Apple Developer portal's "Identifiers" tab,打开相关应用 ID,然后使确保您没有任何检查但没有配置的项目。
例如,在本例中,您似乎检查了应用组项,但实际上并未配置应用组,因此看起来像这样: