Xcode CLI无法识别Provisioning Profiles,React Native iOS打包TestFlight失败
问题背景
Xcode GUI能正常构建、归档并发布到TestFlight,但用xcodebuild CLI执行导出时,报错找不到已安装的iOS App Store分发配置文件。试过匹配名称/UUID、自动签名、降级Xcode、解锁钥匙串等操作都无效,设备是MacBook Pro(macOS Ventura 13.1 + Xcode 14.2)。
报错信息:
Error Domain=IDEProfileLocatorErrorDomain Code=4 "No "iOS App Store" profiles for team 'xxxxxxxxxx' matching 'test-profile' are installed." UserInfo={IDEDistributionIssueSeverity=3, NSLocalizedDescription=No "iOS App Store" profiles for team 'xxxxxxxxxx' matching 'test-profile' are installed., NSLocalizedRecoverySuggestion=Install a profile (by dragging and dropping it onto Xcode's dock item) or specify a different profile in your Export Options property list.}
解决方案
1. 绝对不要用sudo跑xcodebuild
sudo会切换到root环境,root没法访问当前用户的配置文件和钥匙串。直接用当前用户身份执行:
xcodebuild -exportArchive -exportOptionsPlist ExportOptions.plist -archivePath croma.xcarchive -exportPath '/ipa/'
2. 修复钥匙串证书权限
解锁钥匙串还不够,得确保xcodebuild能访问证书:
- 打开钥匙串访问,找到带
iPhone Distribution前缀的分发证书 - 右键→显示简介→信任,把“使用此证书时”改成始终信任
- 重启终端再执行命令
3. 直接指定配置文件本地路径(临时救急)
在ExportOptions.plist里写配置文件的完整路径,替代名称或UUID:
<key>provisioningProfiles</key> <dict> <key>你的App Bundle ID</key> <string>/Users/user/Library/MobileDevices/Provisioning Profiles/f5de3135-6ffa-4834-9f61-be39a178e284.mobileprovision</string> </dict>
4. 清空Xcode缓存重置配置
Xcode的缓存可能导致配置文件识别异常,执行以下命令清理后重启Xcode:
rm -rf ~/Library/Caches/com.apple.dt.Xcode rm -rf ~/Library/Developer/Xcode/DerivedData xcodebuild -clean
清理完把配置文件重新拖到Xcode Dock图标导入一次。
5. 修复配置文件路径权限
确保当前用户对配置文件目录和归档/导出路径有读写权限:
# 替换user为你的用户名 sudo chown -R user:staff ~/Library/MobileDevices/Provisioning Profiles/ sudo chmod -R 755 ~/Library/MobileDevices/Provisioning Profiles/ # 同时检查归档和导出路径权限 sudo chown -R user:staff croma.xcarchive sudo chown -R user:staff /ipa/
验证xcodebuild查找配置文件的路径
方法1:查看Xcode识别的配置文件
用xcodebuild打印项目构建设置,确认配置文件是否被识别:
xcodebuild -showBuildSettings -project croma.xcodeproj | grep PROVISIONING_PROFILE
方法2:用security命令检查签名身份
查看系统中可用的签名证书,确认对应的配置文件已关联:
security find-identity -p codesigning -v
方法3:查看xcodebuild详细日志
添加-verbose参数执行命令,日志里会显示配置文件的查找路径和过程:
xcodebuild -exportArchive -exportOptionsPlist ExportOptions.plist -archivePath croma.xcarchive -exportPath '/ipa/' -verbose
内容的提问来源于stack exchange,提问作者devops

