首页 > 解决方案 > Xcode 12:CompileAssetCatalog Unity-iPhone/Images.xcassets 失败

问题描述

自从更新到 Xcode 12 后,我们的 CI 机器在使用 xcodebuild 执行命令行构建时出现了奇怪的错误。同样的错误不会发生在 Xcode 中,相同的构建被归档并正确构建。似乎构建过程错误的原因是这样的:

/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/Unity-iPhone/Images.xcassets: error: Failed to find newest available Simulator runtime
    Underlying Errors:
        Description: No available runtime found from: [
    watchOS 7.0 (7.0 - 18R382) - com.apple.CoreSimulator.SimRuntime.watchOS-7-0 (unavailable, failed to open liblaunch_sim.dylib) ==> not available: Error Domain=com.apple.CoreSimulator.SimError Code=401 "The watchOS 7.0 simulator runtime is not available." UserInfo={NSLocalizedDescription=The watchOS 7.0 simulator runtime is not available., NSUnderlyingError=0x7f9d4d038cb0 {Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSLocalizedFailureReason=XPC error talking to SimLaunchHostService: <error: 0x7fff8f3a89a0> { count = 1, transaction: 0, voucher = 0x0, contents =
    "XPCErrorDescription" => <string: 0x7fff8f3a8b08> { length = 18, contents = "Connection invalid" }

这很奇怪,因为我们的项目不针对 Apple watchOS。

任何线索或想法如何解决这个问题?在我运行相同 Xcode 12 版本并已更新到最新 OSX 版本的计算机上不会出现此问题。

命令行调用:/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project Builds/temp/Unity-iPhone.xcodeproj -scheme Unity-iPhone -sdk iphoneos -configuration Release archive -archivePath Builds/temp/archive /app.xcarchive -derivedDataPath Builds/temp/derivedData

其他相关的构建日志在这里:

CompileAssetCatalog derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app Unity-iPhone/Images.xcassets
    cd /Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/Library/Android/android-ndk-r16b:/usr/local/bin:/Library/Android/android-ndk-r16b:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/usr/bin/actool --output-format human-readable-text --notices --warnings --export-dependency-info /Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/IntermediateBuildFilesPath/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/assetcatalog_dependencies --output-partial-info-plist /Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/IntermediateBuildFilesPath/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/assetcatalog_generated_info.plist --app-icon AppIcon --compress-pngs --enable-on-demand-resources YES --development-region English --target-device iphone --target-device ipad --minimum-deployment-target 10.0 --platform iphoneos --compile /Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app /Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/Unity-iPhone/Images.xcassets
/* com.apple.actool.errors */
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/Unity-iPhone/Images.xcassets: error: Failed to find newest available Simulator runtime
    Underlying Errors:
        Description: No available runtime found from: [
    watchOS 7.0 (7.0 - 18R382) - com.apple.CoreSimulator.SimRuntime.watchOS-7-0 (unavailable, failed to open liblaunch_sim.dylib) ==> not available: Error Domain=com.apple.CoreSimulator.SimError Code=401 "The watchOS 7.0 simulator runtime is not available." UserInfo={NSLocalizedDescription=The watchOS 7.0 simulator runtime is not available., NSUnderlyingError=0x7f9d4d038cb0 {Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSLocalizedFailureReason=XPC error talking to SimLaunchHostService: <error: 0x7fff8f3a89a0> { count = 1, transaction: 0, voucher = 0x0, contents =
    "XPCErrorDescription" => <string: 0x7fff8f3a8b08> { length = 18, contents = "Connection invalid" }
}}}, NSLocalizedRecoverySuggestion=Unable to open liblaunch_sim.dylib.  Try reinstalling Xcode or the simulator runtime., NSLocalizedFailureReason=failed to open liblaunch_sim.dylib},
    tvOS 14.0 (14.0 - 18J383) - com.apple.CoreSimulator.SimRuntime.tvOS-14-0 (unavailable, failed to open liblaunch_sim.dylib) ==> not available: Error Domain=com.apple.CoreSimulator.SimError Code=401 "The tvOS 14.0 simulator runtime is not available." UserInfo={NSLocalizedDescription=The tvOS 14.0 simulator runtime is not available., NSUnderlyingError=0x7f9d4d004c40 {Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSLocalizedFailureReason=XPC error talking to SimLaunchHostService: <error: 0x7fff8f3a89a0> { count = 1, transaction: 0, voucher = 0x0, contents =
    "XPCErrorDescription" => <string: 0x7fff8f3a8b08> { length = 18, contents = "Connection invalid" }
}}}, NSLocalizedRecoverySuggestion=Unable to open liblaunch_sim.dylib.  Try reinstalling Xcode or the simulator runtime., NSLocalizedFailureReason=failed to open liblaunch_sim.dylib},
    iOS 14.1 (14.1 - 18A8394) - com.apple.CoreSimulator.SimRuntime.iOS-14-1 (unavailable, failed to open liblaunch_sim.dylib) ==> not available: Error Domain=com.apple.CoreSimulator.SimError Code=401 "The iOS 14.1 simulator runtime is not available." UserInfo={NSLocalizedDescription=The iOS 14.1 simulator runtime is not available., NSUnderlyingError=0x7f9d4d038cb0 {Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo={NSLocalizedFailureReason=XPC error talking to SimLaunchHostService: <error: 0x7fff8f3a89a0> { count = 1, transaction: 0, voucher = 0x0, contents =
    "XPCErrorDescription" => <string: 0x7fff8f3a8b08> { length = 18, contents = "Connection invalid" }
}}}, NSLocalizedRecoverySuggestion=Unable to open liblaunch_sim.dylib.  Try reinstalling Xcode or the simulator runtime., NSLocalizedFailureReason=failed to open liblaunch_sim.dylib},
] when matching for <IBCocoaTouchPlatformToolDescription: 0x7f9d4e14a0f0> System content for IBCocoaTouchFramework-fourteenAndLater <IBScaleFactorDeviceTypeDescription: 0x7f9d4b4e3e30> scaleFactor=2x, renderMode.identifier=(null), idiom=<IBIPhoneIdiom: 0x7f9d4e52bb40> runtime=<IBCocoaTouchTargetRuntime: 0x7f9d4b488d30>
/* com.apple.actool.document.notices */
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/Unity-iPhone/Images.xcassets:./AppIcon.appiconset/[][ipad][76x76][][][1x][][]: notice: 76x76@1x app icons only apply to iPad apps targeting releases of iOS prior to 10.0.
/* com.apple.actool.compilation-results */
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon20x20@2x.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon20x20@2x~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon20x20@3x.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon20x20~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon29x29.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon29x29@2x.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon29x29@2x~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon29x29@3x.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon29x29~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon40x40@2x.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon40x40@2x~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon40x40@3x.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon40x40~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon60x60@2x.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon60x60@3x.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon76x76@2x~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon76x76~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app/AppIcon83.5x83.5@2x~ipad.png
/Users/Shared/Jenkins/Home/workspace/eskari_daily_ios/Builds/temp/derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/IntermediateBuildFilesPath/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/assetcatalog_generated_info.plist


** ARCHIVE FAILED **


The following build commands failed:
    CompileAssetCatalog derivedData/Build/Intermediates.noindex/ArchiveIntermediates/Unity-iPhone/InstallationBuildProductsLocation/Applications/daily.app Unity-iPhone/Images.xcassets
(1 failure)

标签: iosxcodeunity3djenkins

解决方案


Final solution for this issue was to reinstall Jenkins. Old Jenkins installer had installed Jenkins in way that is no longer supported by apple.

Basically:

  1. Install Jenkins via homebrew
  2. copy jobs, workspace, plugins.. to new jenkins
  3. setup authentications to new jenkins
  4. Use new Jenkins that is setup on your account and the issue is gone.

Reference: https://developer.apple.com/forums/thread/664731


推荐阅读