您的应用程序包签名中的权限与包含在您的配置文件中的权限不匹配。

4

我遇到了一个奇怪的问题,在expo app.json中没有更改任何设置,但突然间苹果公司以以下原因拒绝了存档:

错误 ITMS-90164: "无效的代码签名授权。您的应用程序包签名中的授权与包含在provisioning profile中的授权不匹配。根据provisioning profile,bundle包含不允许的关键值“[]”作为“com.apple.security.application-groups”中的关键字'Payload/ExpoKitApp.app/com.company.appname'

我的expo配置如下所示:

{
  "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",
      "backgroundColor": "#042f3d"
    },
    "description": ""
  }
}

坦白说,这是我第一次在苹果审核系统中遇到问题(这是第一个应用程序),因此我不知道该看哪里。如有任何帮助,将不胜感激。

编辑:我在Windows上使用Expo,并且我有App Store Connect。


3
这不是一个答案。然而今天我开始收到同样类型的错误(权限问题,指定了一个空数组作为权限值),这是在我尝试提交一个React Native应用程序到商店时发生的。昨天提交是成功的,开发人员配置文件和权限文件都没有改变。可能是苹果开发网站上游有所更改,需要重新同步配置文件,这是我接下来的调查步骤。祝好运。 - Mike Hardy
@MikeHardy,我也是。 - jspizziri
1
@jspizziri 我刚刚在成功提交应用程序后发布了一个真正的答案。 - Mike Hardy
这个回答解决了你的问题吗?[您应用程序包签名的授权与配置文件中包含的授权不匹配] (https://dev59.com/7lEG5IYBdhLWcg3wdOPm) - Peter O.
2个回答

7

当然,我对这个答案持开放态度,但如上评论所述:

猜测根本原因:(苹果应用商店是封闭系统,我们只能猜测)

我认为苹果后端已经在今天进行了更改,并开始对需要数组值的授权密钥应用更严格的规定。

我相信苹果后端曾经接受具有空数组的授权密钥,但现在要求授权密钥要么不存在,要么包含实际的值。

支持此主张的证据:

  • 我有一个授权文件,其中包含“in-app-messaging”授权密钥和空数组:
        <key>com.apple.developer.in-app-payments</key>
        <array/>
  • 之前这个方法是可行的,就在昨天我成功地提交了一个版本,并且像这样提交了一年多。

  • 现在这个方法不再可行,而且你的错误信息中也有类似的空数组消息。

解决方案:

打开 .xcworkspace(Xcode 项目)文件,导航到我的项目的签名和授权,并删除有问题的授权密钥。

该密钥本身为空,所以除了现在授权文件刚刚删除了上述引用的行之外,不应该产生影响。

App Store 提交成功。


很好,听起来像是我的问题。由于我正在使用Windows和Expo构建,所以我没有.xcworkspace,而且Expo文档也没有提到如何更改它们:https://docs.expo.io/versions/latest/config/app/ - Ashley Williams
只能提交上游问题,这是唯一的解决办法。但幸运的是,在我维护react-native存储库并与expo团队互动的经验中,他们非常敏感。 - Mike Hardy

0

为了解决这个问题(即使您正在使用Expo托管工作流并且无法访问.entitlements文件),请进入Apple Developer门户网站的“标识符”选项卡,打开相关的应用程序ID,并确保您没有任何已经勾选但未配置的项目。

例如,在这种情况下,看起来您已经勾选了应用程序组,但实际上没有配置任何应用程序组,因此它看起来像这样:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接