@@ -19,9 +19,10 @@ platform :ios do
1919 desc "Build the iOS app only"
2020 lane :build_ios do |options |
2121 setup_ci
22- # -showBuildSettings has to evaluate the whole Swift package graph, which does not
23- # fit in the 3 second default. Without this fastlane gives up after 4 retries .
22+ # -showBuildSettings needs longer than the 3 second default here. Cap the retries
23+ # too, so a genuine hang fails in minutes instead of 3+6+12+24 escalating attempts .
2424 ENV [ "FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT" ] ||= "180"
25+ ENV [ "FASTLANE_XCODEBUILD_SETTINGS_RETRIES" ] ||= "2"
2526 # The share extension is a second target with its own app id, so it needs its own profile.
2627 sync_code_signing ( type : "appstore" , app_identifier : [ "com.mapeak" , "com.mapeak.ShareExtension" ] )
2728 # Where CI resolved the packages. Derived from this file's own location rather
@@ -30,6 +31,10 @@ platform :ios do
3031 build_app (
3132 project : "App.xcodeproj" ,
3233 scheme : "App" ,
34+ # Without an explicit destination, fastlane's -showBuildSettings call omits
35+ # -destination and xcodebuild has to work one out itself, which hangs on CI
36+ # runners (fastlane#4059). The same command with this flag returns immediately.
37+ destination : "generic/platform=iOS" ,
3338 # Raw xcodebuild output. xcpretty hides SPM binary-artifact download progress,
3439 # so a stall there is indistinguishable from a hung build.
3540 xcodebuild_formatter : "" ,
0 commit comments