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

Entitlements in your app bundle signature do not match the ones that are contained in your provisioning profile

我遇到了一个奇怪的问题,我没有更改 expo 中的任何 expo 设置 app.json,Apple 突然拒绝存档,原因如下:

ERROR ITMS-90164: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. According to the provisioning profile, the bundle contains a key value that is not allowed: '[]' for the key 'com.apple.security.application-groups' in '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": ""
  }
}

诚然,这是我遇到的第一个 Apple Review 系统问题(这是第一个应用程序),所以我不知道去哪里看。任何帮助将不胜感激。

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

当然,我愿意接受更正这个答案,但正如上面评论中提到的:

根本原因猜测:(Apple App Store是一个封闭的系统,我们只能猜测)

我相信 Apple 后端从今天起已经发生了变化,并开始对采用数组值的授权密钥应用更严格的规则。

我相信 Apple 后端曾经接受采用数组值的权利键的空数组,但现在要求权利键要么根本不存在,要么包含实际值。

支持此断言的证据:

  • 我有一个权利文件,其中包含一个“应用程序内消息”权利的密钥,其中包含一个空数组,如下所示:
        <key>com.apple.developer.in-app-payments</key>
        <array/>
  • 直到昨天还不错(我成功提交了一个构建,并且已经提交了一年多这样的构建。

  • 现在不行了,你的报错中有类似的空数组信息。

修正:

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

密钥无论如何都是空的,所以除了现在权利文件完全删除了我上面引用的行之外,应该没有其他影响

应用商店提交成功

要解决此问题(即使您使用的是 Expo 管理的工作流程并且无权访问 .entitlements 文件)请进入您的 Apple Developer portal's "Identifiers" tab,打开相关的应用程序 ID,并确保您没有任何项目 checked 但没有 configured.

例如,在这种情况下,您似乎选中了应用组项目,但实际没有配置任何应用组,因此它看起来像这样: