iOS使用 jenkins 打包错误问题

1. 错误内容
error: exportArchive: "xxx.appex" requires a provisioning profile with the App Groups feature.

详细内容:

error: exportArchive: "AirStar.appex" requires a provisioning profile with the App Groups feature.

Error Domain=IDEProvisioningErrorDomain Code=9 ""xxx.appex" requires a provisioning profile with the App Groups feature." UserInfo={IDEDistributionIssueSeverity=3, NSLocalizedDescription="xxx.appex" requires a provisioning profile with the App Groups feature., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

2. 问题出现的场景:
在使用 Jenkins 打 app store 包的时候之前打包都正常没有问题,项目添加了 Extension 之后打包出现的这个错误。

3. 问题分析:
首先我们项目次用的是 手动管理证书 manual模式
从错误的内容中可以看出 是在 exportArchive 的时候出现的问题。
内容是 需要授权文件 和 当前的 Extension 程序匹配。

我们看一下 具体的脚本:

xcodebuild -exportArchive -archivePath xxx.xcarchive -exportPath . -exportOptionsPlist ${plist}

exportArchive 的时候 是需要读取 一个 exportOptionsPlist 的导出选项的配置文件。
我们先试用 xcode archive 一下 看看 这个配置文件做了什么。

可以看到,在 xcode archive 的时候 完成之后,我们导出 ipa 是会有一些列的配置 需要选择操作的。如下图:


选择导出的类型( Distribution AdHoc 等),是 Export 还是 Upload 等,之后等待导出


WX20210924-160139.png

其中我们可以看到 ExportOptions.plist 文件,这个是 Distribution 的文件,具体内容如下 :





    destination
    export
    method
    app-store
    provisioningProfiles
    
        com.organization.app1
        app1 Distribution
    
    signingCertificate
    Apple Distribution
    signingStyle
    manual
    stripSwiftSymbols
    
    teamID
    teamId-1234567
    uploadBitcode
    
    uploadSymbols
    



我们在使用 jenkinsDistribution 包的时候直接把 Distribution 版本的 ExportOptionsPlist 拿出来用就可以了。

4. 解决方案:
1. 方法一:
将 证书管理模式修改为自动模式

//修改
signingStyle
automatic

// 删除

    com.organization.app
    app Distribution

或者 通过 xcode archive 一次 生成新的 ExportOptions.plist 文件 来替换 当前 Jenkins 使用的

2. 方法二:
一般情况下我们配置好 ExportOptions.plist 只要配置好导出Distributionipa 的格式, 这个文件就不会在修改了。因为这次添加了 Extension 所以当前的 ExportOptionsPlist 文件就需要修改,把 ExtensionbundleId 和对应的 profile 文件 写入到 ExportOptions.plist 中即可。


    com.organization.app
    app Distribution
    com.organization.app.extensionAction
    appAction Distribution

com.organization.app.extensionAction 对应的 profile 文件名称从这里可以查看

cd /Users/zhangsan/Library/MobileDevice/Provisioning Profiles
open .

WX20210924-161305.png

哈哈有点花,但是红框的位置就是当前这个 profile 名字,写在对应的位置即可。

你可能感兴趣的:(iOS使用 jenkins 打包错误问题)