uni-app 云打包失败(ios配置capabilities的com.apple.security.application-groups之后)

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app 云打包失败(ios配置capabilities的com.apple.security.application-groups之后)

示例代码:

"capabilities" : {
    "entitlements" : {
        // 增加下面这一部分,可以让APP与ios小组件共享数据,否则不共享。但是加上这一段之后,云打包会报错。
        // 可如果不用云打包,改用传统打包,会发现手机一键登录不好用了,而且包变小了很多。
        "com.apple.security.application-groups" : [ "group.com.astroGroup" ]
    }
}

操作步骤:

  • 执行云打包、安心模式

预期结果:

  • 打包通过

实际结果:

Build description path: /Users/[Name]/Library/Developer/Xcode/DerivedData/HBuilder-cvydklohnsutctdfjjrfdlhkpqxh/Build/Intermediates.noindex/ArchiveIntermediates/HBuilder/IntermediateBuildFilesPath/XCBuildData/ba31637c0982301dd99f3ea960286432.xcbuilddata
[PackagePath]/HBuilder.xcodeproj: error: Provisioning profile "UniAppFB-Distribution-20240411" doesn't match the entitlements file's value for the com.apple.security.application-groups entitlement. Profile qualification is using entitlement definitions that may be out of date. Connect to network to update. (in target 'HBuilder' from project 'HBuilder')
warning: Run script build phase 'Run Script' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'HBuilder' from project 'HBuilder')--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }

bug描述:

开发了ios原生插件,通过groupId来在app与插件之间共享数据。

在manifest里面配置了:

"capabilities" : {
    "entitlements" : {
        // 增加下面这一部分,可以让APP与ios小组件共享数据,否则不共享。但是加上这一段之后,云打包会报错。
        // 可如果不用云打包,改用传统打包,会发现手机一键登录不好用了,而且包变小了很多。
        "com.apple.security.application-groups" : [ "group.com.astroGroup" ]
    }
}
  1. 打调试包,在本地测试通过。
  2. 使用云端打包的安心模式,打包报错(https://app.liuyingyong.cn/build/errorLog/96836ec0-8be9-11ef-b085-597a7e74c2ef),看不懂具体原因,无法定位问题。
  3. 使用云端打包的传统模式,打包成功,但是其他功能比如手机端一键登录不好用了,不确定是否有更多问题。

| 信息项           | 详细信息       |
|------------------|----------------|
| 产品分类         | uniapp/App     |
| PC开发环境       | Mac            |
| PC开发环境版本号 | 14.5 (23F79)   |
| HBuilderX类型    | Alpha          |
| HBuilderX版本号  | 4.28           |
| 手机系统         | iOS            |
| 手机系统版本号   | iOS 18         |
| 手机厂商         | 苹果           |
| 手机机型         | iphone13pro    |
| 页面类型         | vue            |
| vue版本          | vue3           |
| 打包方式         | 云端           |
| 项目创建方式     | HBuilderX      |

2 回复

快速安心打包不支持配置groups,需改用传统打包。 改用传统打包一键登录不好用会提示什么错误?


针对您提到的uni-app云打包失败,特别是在配置了iOS的capabilities中的com.apple.security.application-groups后出现的问题,这里提供一个可能的解决方案和相关的代码配置示例。请注意,由于我无法直接访问您的项目环境和具体错误信息,以下代码和步骤是基于常见问题的通用解决方案。

步骤一:检查配置文件的正确性

首先,确保您的manifest.json文件中关于iOS的配置是正确的。特别是app-plus下的distributeios配置部分。

{
  "app-plus": {
    "distribute": {
      "apple": {
        "capabilities": [
          {
            "key": "com.apple.security.application-groups",
            "value": ["your.team.identifier.group.name"]
          }
        ]
      }
    },
    "ios": {
      // 其他iOS相关配置
    }
  }
}

请替换your.team.identifier.group.name为您在Apple Developer账户中配置的应用组标识符。

步骤二:确保Apple Developer账户配置正确

  1. 登录Apple Developer账户。
  2. 前往Identifiers部分,确保您的App ID启用了Application Groups功能。
  3. 检查App Groups配置,确保您使用的组标识符与manifest.json中配置的一致。

步骤三:清理和重建项目

有时候,配置更改后需要完全清理项目并重新构建。在uni-app中,您可以通过以下命令来清理和构建项目:

# 清理项目
npm run clean

# 重新构建项目
npm run dev:%PLATFORM%  # 替换%PLATFORM%为具体平台,如ios

或者,如果您使用的是HBuilderX,可以直接在项目管理器中右键选择“清理项目”和“运行/发行”。

步骤四:检查云打包日志

如果上述步骤仍未解决问题,建议仔细检查云打包过程中生成的日志文件。这些日志通常会提供关于失败原因的详细信息。

额外提示

  • 确保您的uni-app和HBuilderX都是最新版本,因为旧版本可能包含已知的bug。
  • 如果您之前成功打包过,并且只是在添加或修改Application Groups后出现问题,那么问题很可能与这一配置相关。

由于问题可能涉及多个方面,上述步骤未能覆盖所有情况。如果问题依旧存在,建议详细查看云打包服务提供的错误日志,并根据日志中的具体错误信息进一步排查。

回到顶部