升级Xcode16后打包机出现了个问题,现在解决了,在此记录下,顺便帮助有需要的人
之前打包机都是用XCodeBuild工具编译,其中exportArchive步骤命令是
xcodebuild -exportArchive \
-archivePath ${ARCHIVE_PATH} \
-exportPath "${IPA_PATH}" \
-exportOptionsPlist ${EXPORT_METHOD_PLIST_PATH} \
-allowProvisioningUpdates YES
这条命令在Xcode15时都是好的; 升级了Xcode16后,遇到了个问题,会导致两个报错
1.编译步骤报错,具体log如下
** ARCHIVE SUCCEEDED **
/var/folders/ch/1mvd9gz11cn8zy9h254qz2600000gn/T/jenkins6531487518988891980.sh: line 194: -allowProvisioningUpdates: command not found
+++++++++++++++++ipa+++++++++++++++++
2024-10-10 18:20:35.630 xcodebuild[58030:2528109] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path "/var/folders/ch/1mvd9gz11cn8zy9h254qz2600000gn/T/xxxxxx_2024-10-10_18-20-35.623.xcdistributionlogs".
2024-10-10 18:20:35.724 xcodebuild[58030:2528191] DVTDeveloperAccountManager: Failed to load credentials for xxxxxxxxxx: Error Domain=DVTDeveloperAccountCredentialsError Code=0 "Invalid credentials in keychain for xxxxxxxxxx, missing Xcode-Username" UserInfo={NSLocalizedDescription=Invalid credentials in keychain for xxxxxxxxxx, missing Xcode-Username}
2024-10-10 18:20:35.733 xcodebuild[58030:2528191] DVTDeveloperAccountManager: Failed to load credentials for F38D3CD7-C794-4F88-93ED-4FDDD8EDF72B: Error Domain=DVTDeveloperAccountCredentialsError Code=0 "Invalid credentials in keychain for F38D3CD7-C794-4F88-93ED-4FDDD8EDF72B, missing Xcode-Username" UserInfo={NSLocalizedDescription=Invalid credentials in keychain for F38D3CD7-C794-4F88-93ED-4FDDD8EDF72B, missing Xcode-Username}
2024-10-10 18:20:35.742 xcodebuild[58030:2528191] DVTDeveloperAccountManager: Failed to load credentials for ***@***.com: Error Domain=DVTDeveloperAccountCredentialsError Code=0 "Invalid credentials in keychain for ***@***.com, missing Xcode-Token" UserInfo={NSLocalizedDescription=Invalid credentials in keychain for ***@***.com, missing Xcode-Token}
2024-10-10 18:20:40.521 xcodebuild[58030:2528195] IDEDistribution: Failed to log in with account "(null)" while checking for an App Store Connect account (Error Domain=DVTServicesAccountBasedSessionErrorDomain Code=0 "Unable to log in with account ''." UserInfo={NSLocalizedFailureReason=Unable to log in with account ''., NSLocalizedRecoverySuggestion=The login details for account '' were rejected., DVTDeveloperAccountErrorAccount=<DVTAppleIDBasedDeveloperAccount: 0x600002d92a80; username=''>, NSUnderlyingError=0x600002758ab0 {Error Domain=DVTPortalServiceErrorDomain Code=1100 "Your session has expired. Please log in." UserInfo={payload={
creationTimestamp = "2024-10-10T10:20:40Z";
httpCode = 200;
protocolVersion = QH65B2;
requestUrl = "https://developerservices2.apple.com/services/QH65B2/viewDeveloper.action";
responseId = "12827504-3d86-4601-bcf7-efc0dccb0655";
resultCode = 1100;
resultString = "Your session has expired. Please log in.";
userLocale = "en_US";
userString = "Your session has expired. Please log in.";
}, NSLocalizedDescription=Your session has expired. Please log in.}}})
2024-10-10 18:20:40.760 xcodebuild[58030:2528195] IDEDistribution: Failed to log in with account "(null)" while checking for an App Store Connect account (Error Domain=DVTServicesAccountBasedSessionErrorDomain Code=0 "Unable to log in with account ''." UserInfo={NSLocalizedFailureReason=Unable to log in with account ''., NSLocalizedRecoverySuggestion=The login details for account '' were rejected., DVTDeveloperAccountErrorAccount=<DVTAppleIDBasedDeveloperAccount: 0x600002de7e80; username=''>, NSUnderlyingError=0x6000027842d0 {Error Domain=DVTPortalServiceErrorDomain Code=1100 "Your session has expired. Please log in." UserInfo={payload={
creationTimestamp = "2024-10-10T10:20:40Z";
httpCode = 200;
protocolVersion = QH65B2;
requestUrl = "https://developerservices2.apple.com/services/QH65B2/viewDeveloper.action";
responseId = "e49c99d0-861c-4d80-9cd7-8430bcdfa6a6";
resultCode = 1100;
resultString = "Your session has expired. Please log in.";
userLocale = "en_US";
userString = "Your session has expired. Please log in.";
}, NSLocalizedDescription=Your session has expired. Please log in.}}})
2024-10-10 18:20:41.053 xcodebuild[58030:2528195] IDEDistribution: Failed to log in with account "(null)" while checking for an App Store Connect account (Error Domain=DVTServicesAccountBasedSessionErrorDomain Code=0 "Unable to log in with account '***@***.com'." UserInfo={NSLocalizedFailureReason=Unable to log in with account '***@***.com'., NSLocalizedRecoverySuggestion=The login details for account '***@***.com' were rejected., DVTDeveloperAccountErrorAccount=<DVTAppleIDBasedDeveloperAccount: 0x600002de7b80; username='***@***.com'>, NSUnderlyingError=0x6000027a4780 {Error Domain=DVTPortalServiceErrorDomain Code=1100 "Your session has expired. Please log in." UserInfo={payload={
creationTimestamp = "2024-10-10T10:20:41Z";
httpCode = 200;
protocolVersion = QH65B2;
requestUrl = "https://developerservices2.apple.com/services/QH65B2/viewDeveloper.action";
responseId = "5819c66e-bd35-4af3-ae6a-0e66193fa2bb";
resultCode = 1100;
resultString = "Your session has expired. Please log in.";
userLocale = "en_US";
userString = "Your session has expired. Please log in.";
}, NSLocalizedDescription=Your session has expired. Please log in.}}})
error: exportArchive The operation couldn’t be completed. Unable to log in with account ''.
error: exportArchive Provisioning profile "iOS Team Store Provisioning Profile: com.xxxx.xxxxx" doesn't include signing certificate "Apple Distribution: xxxxxxxxxxx".
** EXPORT FAILED **
2. Xcode-settings-accounts栏目中会出现一堆空白的报错账户,具体如下
解决办法
一开始怎么都不能解决,谷歌也没搜到相同的问题,最后去问苹果工程师,给出了解决方法:
终端执行命令: defaults delete com.apple.dt.Xcode DVTDeveloperAccountManagerAppleIDLists
这个会把所有的Xcode开发账号全部删掉,然后再重新登录开发者账号,就会发现问题解决了.猜想升级Xcode16后应该是哪个账户报错了导致的这个问题,删掉就好了
新的问题
上面的问题解决后,又出现了新的问题,每次打包都会失败,报错配置文件不包括签名证书,而且开发者账号也会被退出登录,报错如下:
** ARCHIVE SUCCEEDED **
2024-11-08 16:19:54.360 xcodebuild[36487:6743710] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path "/var/folders/ch/1mvd9gz11cn8zy9h254qz2600000gn/T/***.xcdistributionlogs".
error: exportArchive No Accounts
error: exportArchive Provisioning profile "iOS Team Store Provisioning Profile: com.***" doesn't include signing certificate "Apple Distribution: *** Co Ltd (***)".
** EXPORT FAILED **
解决办法
~/Library/MobileDevice/Provisioning Profiles
目录下都是配置文件,删掉文件夹
删除缓存
重登陆开发者账号,并下载各种配置