fastlane 2.239.0 → 2.240.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +98 -98
  3. data/deliver/lib/deliver/runner.rb +5 -4
  4. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +3 -1
  5. data/fastlane/lib/fastlane/actions/lcov.rb +3 -1
  6. data/fastlane/lib/fastlane/actions/spaceship_logs.rb +4 -2
  7. data/fastlane/lib/fastlane/actions/swiftlint.rb +6 -3
  8. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +3 -1
  9. data/fastlane/lib/fastlane/version.rb +1 -1
  10. data/fastlane/swift/Deliverfile.swift +1 -1
  11. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  12. data/fastlane/swift/Fastlane.swift +38 -2
  13. data/fastlane/swift/Gymfile.swift +1 -1
  14. data/fastlane/swift/GymfileProtocol.swift +8 -1
  15. data/fastlane/swift/Matchfile.swift +1 -1
  16. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  17. data/fastlane/swift/Precheckfile.swift +1 -1
  18. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  19. data/fastlane/swift/Scanfile.swift +1 -1
  20. data/fastlane/swift/ScanfileProtocol.swift +8 -1
  21. data/fastlane/swift/Screengrabfile.swift +1 -1
  22. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  23. data/fastlane/swift/Snapshotfile.swift +1 -1
  24. data/fastlane/swift/SnapshotfileProtocol.swift +8 -1
  25. data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +20 -7
  26. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -1
  27. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +16 -13
  28. data/fastlane_core/lib/fastlane_core/project.rb +19 -0
  29. data/gym/lib/gym/options.rb +5 -0
  30. data/scan/lib/scan/options.rb +5 -0
  31. data/snapshot/lib/snapshot/options.rb +5 -0
  32. data/spaceship/lib/spaceship/client.rb +137 -15
  33. data/spaceship/lib/spaceship/du/upload_file.rb +4 -3
  34. data/trainer/lib/trainer/xcresult/helper.rb +27 -13
  35. metadata +27 -27
@@ -1382,6 +1382,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1382
1382
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1383
1383
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
1384
1384
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1385
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
1385
1386
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
1386
1387
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
1387
1388
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -1442,6 +1443,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1442
1443
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1443
1444
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1444
1445
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1446
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1445
1447
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1446
1448
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1447
1449
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1498,6 +1500,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1498
1500
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1499
1501
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
1500
1502
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1503
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
1501
1504
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
1502
1505
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
1503
1506
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -1553,6 +1556,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1553
1556
  clonedSourcePackagesPathArg,
1554
1557
  packageCachePathArg,
1555
1558
  skipPackageDependenciesResolutionArg,
1559
+ disallowXcodebuildSettingsLookupArg,
1556
1560
  disablePackageAutomaticUpdatesArg,
1557
1561
  skipPackageRepositoryFetchesArg,
1558
1562
  useSystemScmArg,
@@ -1616,6 +1620,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1616
1620
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1617
1621
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
1618
1622
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1623
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
1619
1624
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
1620
1625
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
1621
1626
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -1673,6 +1678,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1673
1678
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1674
1679
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1675
1680
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1681
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1676
1682
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1677
1683
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1678
1684
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1726,6 +1732,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1726
1732
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1727
1733
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
1728
1734
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1735
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
1729
1736
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
1730
1737
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
1731
1738
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -1778,6 +1785,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1778
1785
  clonedSourcePackagesPathArg,
1779
1786
  packageCachePathArg,
1780
1787
  skipPackageDependenciesResolutionArg,
1788
+ disallowXcodebuildSettingsLookupArg,
1781
1789
  disablePackageAutomaticUpdatesArg,
1782
1790
  skipPackageRepositoryFetchesArg,
1783
1791
  useSystemScmArg,
@@ -1842,6 +1850,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1842
1850
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1843
1851
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
1844
1852
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
1853
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
1845
1854
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
1846
1855
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
1847
1856
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -1900,6 +1909,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1900
1909
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1901
1910
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
1902
1911
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1912
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1903
1913
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1904
1914
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(false),
1905
1915
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -1954,6 +1964,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
1954
1964
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
1955
1965
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
1956
1966
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
1967
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
1957
1968
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
1958
1969
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
1959
1970
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -2007,6 +2018,7 @@ public func buildAndroidApp(task: OptionalConfigValue<String?> = .fastlaneDefaul
2007
2018
  clonedSourcePackagesPathArg,
2008
2019
  packageCachePathArg,
2009
2020
  skipPackageDependenciesResolutionArg,
2021
+ disallowXcodebuildSettingsLookupArg,
2010
2022
  disablePackageAutomaticUpdatesArg,
2011
2023
  skipPackageRepositoryFetchesArg,
2012
2024
  useSystemScmArg,
@@ -2258,6 +2270,7 @@ public func captureAndroidScreenshots(androidHome: OptionalConfigValue<String?>
2258
2270
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
2259
2271
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
2260
2272
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
2273
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
2261
2274
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
2262
2275
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
2263
2276
  - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc)
@@ -2312,6 +2325,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2312
2325
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2313
2326
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2314
2327
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2328
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2315
2329
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2316
2330
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2317
2331
  packageAuthorizationProvider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -2366,6 +2380,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2366
2380
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
2367
2381
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
2368
2382
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
2383
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
2369
2384
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
2370
2385
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
2371
2386
  let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil)
@@ -2419,6 +2434,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2419
2434
  clonedSourcePackagesPathArg,
2420
2435
  packageCachePathArg,
2421
2436
  skipPackageDependenciesResolutionArg,
2437
+ disallowXcodebuildSettingsLookupArg,
2422
2438
  disablePackageAutomaticUpdatesArg,
2423
2439
  skipPackageRepositoryFetchesArg,
2424
2440
  packageAuthorizationProviderArg,
@@ -2483,6 +2499,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2483
2499
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
2484
2500
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
2485
2501
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
2502
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
2486
2503
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
2487
2504
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
2488
2505
  - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc)
@@ -2537,6 +2554,7 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2537
2554
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2538
2555
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
2539
2556
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2557
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2540
2558
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2541
2559
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(false),
2542
2560
  packageAuthorizationProvider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
@@ -2591,6 +2609,7 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2591
2609
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
2592
2610
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
2593
2611
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
2612
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
2594
2613
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
2595
2614
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
2596
2615
  let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil)
@@ -2644,6 +2663,7 @@ public func captureScreenshots(workspace: OptionalConfigValue<String?> = .fastla
2644
2663
  clonedSourcePackagesPathArg,
2645
2664
  packageCachePathArg,
2646
2665
  skipPackageDependenciesResolutionArg,
2666
+ disallowXcodebuildSettingsLookupArg,
2647
2667
  disablePackageAutomaticUpdatesArg,
2648
2668
  skipPackageRepositoryFetchesArg,
2649
2669
  packageAuthorizationProviderArg,
@@ -5867,6 +5887,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5867
5887
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
5868
5888
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
5869
5889
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
5890
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
5870
5891
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
5871
5892
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
5872
5893
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -5927,6 +5948,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5927
5948
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.clonedSourcePackagesPath),
5928
5949
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(gymfile.packageCachePath),
5929
5950
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.skipPackageDependenciesResolution),
5951
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.disallowXcodebuildSettingsLookup),
5930
5952
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.disablePackageAutomaticUpdates),
5931
5953
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.skipPackageRepositoryFetches),
5932
5954
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(gymfile.useSystemScm),
@@ -5983,6 +6005,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
5983
6005
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
5984
6006
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
5985
6007
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
6008
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
5986
6009
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
5987
6010
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
5988
6011
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -6038,6 +6061,7 @@ public func gradle(task: OptionalConfigValue<String?> = .fastlaneDefault(nil),
6038
6061
  clonedSourcePackagesPathArg,
6039
6062
  packageCachePathArg,
6040
6063
  skipPackageDependenciesResolutionArg,
6064
+ disallowXcodebuildSettingsLookupArg,
6041
6065
  disablePackageAutomaticUpdatesArg,
6042
6066
  skipPackageRepositoryFetchesArg,
6043
6067
  useSystemScmArg,
@@ -9029,6 +9053,7 @@ public func rubyVersion() {
9029
9053
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
9030
9054
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
9031
9055
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
9056
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
9032
9057
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
9033
9058
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
9034
9059
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -9116,6 +9141,7 @@ public func rubyVersion() {
9116
9141
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
9117
9142
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
9118
9143
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9144
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9119
9145
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9120
9146
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(false),
9121
9147
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(false),
@@ -9199,6 +9225,7 @@ public func rubyVersion() {
9199
9225
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
9200
9226
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
9201
9227
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
9228
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
9202
9229
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
9203
9230
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
9204
9231
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -9281,6 +9308,7 @@ public func rubyVersion() {
9281
9308
  clonedSourcePackagesPathArg,
9282
9309
  packageCachePathArg,
9283
9310
  skipPackageDependenciesResolutionArg,
9311
+ disallowXcodebuildSettingsLookupArg,
9284
9312
  disablePackageAutomaticUpdatesArg,
9285
9313
  skipPackageRepositoryFetchesArg,
9286
9314
  useSystemScmArg,
@@ -9476,6 +9504,7 @@ public func say(text: [String],
9476
9504
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
9477
9505
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
9478
9506
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
9507
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
9479
9508
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
9480
9509
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
9481
9510
  - useSystemScm: Lets xcodebuild use system's scm configuration
@@ -9563,6 +9592,7 @@ public func say(text: [String],
9563
9592
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.clonedSourcePackagesPath),
9564
9593
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(scanfile.packageCachePath),
9565
9594
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipPackageDependenciesResolution),
9595
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.disallowXcodebuildSettingsLookup),
9566
9596
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.disablePackageAutomaticUpdates),
9567
9597
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.skipPackageRepositoryFetches),
9568
9598
  useSystemScm: OptionalConfigValue<Bool> = .fastlaneDefault(scanfile.useSystemScm),
@@ -9646,6 +9676,7 @@ public func say(text: [String],
9646
9676
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
9647
9677
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
9648
9678
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
9679
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
9649
9680
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
9650
9681
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
9651
9682
  let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil)
@@ -9728,6 +9759,7 @@ public func say(text: [String],
9728
9759
  clonedSourcePackagesPathArg,
9729
9760
  packageCachePathArg,
9730
9761
  skipPackageDependenciesResolutionArg,
9762
+ disallowXcodebuildSettingsLookupArg,
9731
9763
  disablePackageAutomaticUpdatesArg,
9732
9764
  skipPackageRepositoryFetchesArg,
9733
9765
  useSystemScmArg,
@@ -10680,6 +10712,7 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10680
10712
  - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
10681
10713
  - packageCachePath: Sets a custom package cache path for Swift Package Manager dependencies
10682
10714
  - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies
10715
+ - disallowXcodebuildSettingsLookup: Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
10683
10716
  - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
10684
10717
  - skipPackageRepositoryFetches: Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
10685
10718
  - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc)
@@ -10734,6 +10767,7 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10734
10767
  clonedSourcePackagesPath: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.clonedSourcePackagesPath),
10735
10768
  packageCachePath: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.packageCachePath),
10736
10769
  skipPackageDependenciesResolution: OptionalConfigValue<Bool> = .fastlaneDefault(snapshotfile.skipPackageDependenciesResolution),
10770
+ disallowXcodebuildSettingsLookup: OptionalConfigValue<Bool> = .fastlaneDefault(snapshotfile.disallowXcodebuildSettingsLookup),
10737
10771
  disablePackageAutomaticUpdates: OptionalConfigValue<Bool> = .fastlaneDefault(snapshotfile.disablePackageAutomaticUpdates),
10738
10772
  skipPackageRepositoryFetches: OptionalConfigValue<Bool> = .fastlaneDefault(snapshotfile.skipPackageRepositoryFetches),
10739
10773
  packageAuthorizationProvider: OptionalConfigValue<String?> = .fastlaneDefault(snapshotfile.packageAuthorizationProvider),
@@ -10788,6 +10822,7 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10788
10822
  let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil)
10789
10823
  let packageCachePathArg = packageCachePath.asRubyArgument(name: "package_cache_path", type: nil)
10790
10824
  let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil)
10825
+ let disallowXcodebuildSettingsLookupArg = disallowXcodebuildSettingsLookup.asRubyArgument(name: "disallow_xcodebuild_settings_lookup", type: nil)
10791
10826
  let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil)
10792
10827
  let skipPackageRepositoryFetchesArg = skipPackageRepositoryFetches.asRubyArgument(name: "skip_package_repository_fetches", type: nil)
10793
10828
  let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil)
@@ -10841,6 +10876,7 @@ public func snapshot(workspace: OptionalConfigValue<String?> = .fastlaneDefault(
10841
10876
  clonedSourcePackagesPathArg,
10842
10877
  packageCachePathArg,
10843
10878
  skipPackageDependenciesResolutionArg,
10879
+ disallowXcodebuildSettingsLookupArg,
10844
10880
  disablePackageAutomaticUpdatesArg,
10845
10881
  skipPackageRepositoryFetchesArg,
10846
10882
  packageAuthorizationProviderArg,
@@ -12539,7 +12575,7 @@ public func updateProjectProvisioning(xcodeproj: OptionalConfigValue<String?> =
12539
12575
  targetFilter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12540
12576
  buildConfigurationFilter: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12541
12577
  buildConfiguration: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12542
- certificate: String = "/tmp/AppleIncRootCertificate.cer",
12578
+ certificate: String = "/var/folders/36/tjdph2t965j8snz9_vkdnw0r0000gn/T/AppleIncRootCertificate.cer",
12543
12579
  codeSigningIdentity: OptionalConfigValue<String?> = .fastlaneDefault(nil))
12544
12580
  {
12545
12581
  let xcodeprojArg = xcodeproj.asRubyArgument(name: "xcodeproj", type: nil)
@@ -14179,4 +14215,4 @@ public let snapshotfile: Snapshotfile = .init()
14179
14215
 
14180
14216
  // Please don't remove the lines below
14181
14217
  // They are used to detect outdated files
14182
- // FastlaneRunnerAPIVersion [0.9.206]
14218
+ // FastlaneRunnerAPIVersion [0.9.207]
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.239.0
20
+ // Generated with fastlane 2.240.0
@@ -152,6 +152,9 @@ public protocol GymfileProtocol: AnyObject {
152
152
  /// Skips resolution of Swift Package Manager dependencies
153
153
  var skipPackageDependenciesResolution: Bool { get }
154
154
 
155
+ /// Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
156
+ var disallowXcodebuildSettingsLookup: Bool { get }
157
+
155
158
  /// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
156
159
  var disablePackageAutomaticUpdates: Bool { get }
157
160
 
@@ -369,6 +372,10 @@ public extension GymfileProtocol {
369
372
  return false
370
373
  }
371
374
 
375
+ var disallowXcodebuildSettingsLookup: Bool {
376
+ return false
377
+ }
378
+
372
379
  var disablePackageAutomaticUpdates: Bool {
373
380
  return false
374
381
  }
@@ -392,4 +399,4 @@ public extension GymfileProtocol {
392
399
 
393
400
  // Please don't remove the lines below
394
401
  // They are used to detect outdated files
395
- // FastlaneRunnerAPIVersion [0.9.156]
402
+ // FastlaneRunnerAPIVersion [0.9.157]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.239.0
20
+ // Generated with fastlane 2.240.0
@@ -413,4 +413,4 @@ public extension MatchfileProtocol {
413
413
 
414
414
  // Please don't remove the lines below
415
415
  // They are used to detect outdated files
416
- // FastlaneRunnerAPIVersion [0.9.150]
416
+ // FastlaneRunnerAPIVersion [0.9.151]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.239.0
20
+ // Generated with fastlane 2.240.0
@@ -84,4 +84,4 @@ public extension PrecheckfileProtocol {
84
84
 
85
85
  // Please don't remove the lines below
86
86
  // They are used to detect outdated files
87
- // FastlaneRunnerAPIVersion [0.9.149]
87
+ // FastlaneRunnerAPIVersion [0.9.150]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.239.0
20
+ // Generated with fastlane 2.240.0
@@ -230,6 +230,9 @@ public protocol ScanfileProtocol: AnyObject {
230
230
  /// Skips resolution of Swift Package Manager dependencies
231
231
  var skipPackageDependenciesResolution: Bool { get }
232
232
 
233
+ /// Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
234
+ var disallowXcodebuildSettingsLookup: Bool { get }
235
+
233
236
  /// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
234
237
  var disablePackageAutomaticUpdates: Bool { get }
235
238
 
@@ -554,6 +557,10 @@ public extension ScanfileProtocol {
554
557
  return false
555
558
  }
556
559
 
560
+ var disallowXcodebuildSettingsLookup: Bool {
561
+ return false
562
+ }
563
+
557
564
  var disablePackageAutomaticUpdates: Bool {
558
565
  return false
559
566
  }
@@ -581,4 +588,4 @@ public extension ScanfileProtocol {
581
588
 
582
589
  // Please don't remove the lines below
583
590
  // They are used to detect outdated files
584
- // FastlaneRunnerAPIVersion [0.9.161]
591
+ // FastlaneRunnerAPIVersion [0.9.162]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.239.0
20
+ // Generated with fastlane 2.240.0
@@ -161,4 +161,4 @@ public extension ScreengrabfileProtocol {
161
161
 
162
162
  // Please don't remove the lines below
163
163
  // They are used to detect outdated files
164
- // FastlaneRunnerAPIVersion [0.9.151]
164
+ // FastlaneRunnerAPIVersion [0.9.152]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.239.0
20
+ // Generated with fastlane 2.240.0
@@ -125,6 +125,9 @@ public protocol SnapshotfileProtocol: AnyObject {
125
125
  /// Skips resolution of Swift Package Manager dependencies
126
126
  var skipPackageDependenciesResolution: Bool { get }
127
127
 
128
+ /// Raises an error instead of fetching build settings by running `xcodebuild -showBuildSettings`, which can take a long time on large projects. The error names the required build setting, so the corresponding option can be specified manually
129
+ var disallowXcodebuildSettingsLookup: Bool { get }
130
+
128
131
  /// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
129
132
  var disablePackageAutomaticUpdates: Bool { get }
130
133
 
@@ -327,6 +330,10 @@ public extension SnapshotfileProtocol {
327
330
  return false
328
331
  }
329
332
 
333
+ var disallowXcodebuildSettingsLookup: Bool {
334
+ return false
335
+ }
336
+
330
337
  var disablePackageAutomaticUpdates: Bool {
331
338
  return false
332
339
  }
@@ -378,4 +385,4 @@ public extension SnapshotfileProtocol {
378
385
 
379
386
  // Please don't remove the lines below
380
387
  // They are used to detect outdated files
381
- // FastlaneRunnerAPIVersion [0.9.145]
388
+ // FastlaneRunnerAPIVersion [0.9.146]
@@ -30,6 +30,11 @@ module FastlaneCore
30
30
  require 'pty'
31
31
  # this forces the PTY flush - fixes #21792
32
32
  command = ENV['FASTLANE_EXEC_FLUSH_PTY_WORKAROUND'] ? "#{original_command};" : original_command
33
+ # The status is produced in the ensure below and read after the block. It
34
+ # travels in a local rather than in $?, which is a thread global: anything
35
+ # that runs a subprocess in between overwrites it, and nothing writes it at
36
+ # all when the wait does not happen. See fastlane#30188.
37
+ status = nil
33
38
  PTY.spawn(command) do |command_stdout, command_stdin, pid|
34
39
  begin
35
40
  yield(command_stdout, command_stdin, pid)
@@ -42,20 +47,28 @@ module FastlaneCore
42
47
  command_stdin.close
43
48
  command_stdout.close
44
49
  begin
45
- Process.wait(pid)
46
- rescue Errno::ECHILD, PTY::ChildExited
47
- # The process might have exited.
50
+ _pid, status = Process.wait2(pid)
51
+ rescue PTY::ChildExited => e
52
+ # The pty saw the child go before we asked for it. The exception
53
+ # carries the status we were about to wait for.
54
+ status = e.status
55
+ rescue Errno::ECHILD
56
+ # Something else reaped it, so there is nothing left to ask for. $?
57
+ # may still hold it, and may just as easily hold someone else's.
48
58
  end
49
59
  end
50
60
  end
51
- status = self.process_status
61
+ status ||= self.process_status
62
+ # Better a plain error than a NoMethodError raised from inside the handler
63
+ # that exists to report the failure, which is what nil used to produce.
64
+ raise StandardError, "Could not determine the exit status of the command" if status.nil?
52
65
  raise StandardError, "Process crashed" if status.signaled?
53
66
  status.exitstatus
54
67
  rescue StandardError => e
55
68
  # Wrapping any error in FastlanePtyError to allow callers to see and use
56
- # $?.exitstatus that would usually get returned
57
- status = self.process_status
58
- raise FastlanePtyError.new(e, status.exitstatus || e.exit_status, status)
69
+ # the exit status that would usually get returned
70
+ status ||= self.process_status
71
+ raise FastlanePtyError.new(e, status&.exitstatus || e.exit_status, status)
59
72
  end
60
73
 
61
74
  def self.spawn_with_popen(command, &block)
@@ -55,7 +55,7 @@ module FastlaneCore
55
55
  end
56
56
 
57
57
  def self.fetch_info_plist_with_rubyzip(path)
58
- Zip::File.open(path, "rb") do |zipfile|
58
+ Zip::File.open(path) do |zipfile|
59
59
  file = zipfile.glob('**/Payload/*.app/Info.plist').first
60
60
  return nil unless file
61
61
  zipfile.read(file)
@@ -35,7 +35,7 @@ module FastlaneCore
35
35
 
36
36
  private_constant :ERROR_REGEX, :WARNING_REGEX, :OUTPUT_REGEX, :RETURN_VALUE_REGEX, :SKIP_ERRORS
37
37
 
38
- def build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "", jwt = nil)
38
+ def build_download_command(username, password, apple_id, destination = Dir.tmpdir, provider_short_name = "", jwt = nil)
39
39
  not_implemented(__method__)
40
40
  end
41
41
 
@@ -43,11 +43,11 @@ module FastlaneCore
43
43
  not_implemented(__method__)
44
44
  end
45
45
 
46
- def build_upload_command(username, password, source = "/tmp", options = {})
46
+ def build_upload_command(username, password, source = Dir.tmpdir, options = {})
47
47
  not_implemented(__method__)
48
48
  end
49
49
 
50
- def build_verify_command(username, password, source = "/tmp", provider_short_name = "", **kwargs)
50
+ def build_verify_command(username, password, source = Dir.tmpdir, provider_short_name = "", **kwargs)
51
51
  not_implemented(__method__)
52
52
  end
53
53
 
@@ -291,6 +291,7 @@ module FastlaneCore
291
291
 
292
292
  @errors << "The call to the altool completed with a non-zero exit status: #{exit_status}. This indicates a failure." unless exit_status.zero?
293
293
  @errors << "-1 indicates altool exited abnormally; try retrying (see https://github.com/fastlane/fastlane/issues/21535)" if exit_status == -1
294
+ @errors.clear if @all_lines.any? { |line| line.include?("UPLOAD SUCCEEDED with no errors") }
294
295
 
295
296
  unless @errors.empty? || @all_lines.empty?
296
297
  @all_lines.each do |line|
@@ -319,7 +320,7 @@ module FastlaneCore
319
320
  end
320
321
  end
321
322
 
322
- def build_upload_command(username, password, source = "/tmp", options = {})
323
+ def build_upload_command(username, password, source = Dir.tmpdir, options = {})
323
324
  provider_short_name = options.fetch(:provider_short_name, "")
324
325
  provider_public_id = options.fetch(:provider_public_id, "")
325
326
  jwt = options[:jwt]
@@ -351,11 +352,11 @@ module FastlaneCore
351
352
  ].compact.join(' ')
352
353
  end
353
354
 
354
- def build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "", jwt = nil)
355
+ def build_download_command(username, password, apple_id, destination = Dir.tmpdir, provider_short_name = "", jwt = nil)
355
356
  raise "This feature has not been implemented yet with altool for Xcode 14"
356
357
  end
357
358
 
358
- def build_verify_command(username, password, source = "/tmp", options = {})
359
+ def build_verify_command(username, password, source = Dir.tmpdir, options = {})
359
360
  provider_short_name = options.fetch(:provider_short_name, "")
360
361
  provider_public_id = options.fetch(:provider_public_id, "")
361
362
  api_key = options[:api_key]
@@ -442,7 +443,7 @@ module FastlaneCore
442
443
  end
443
444
  end
444
445
 
445
- def build_upload_command(username, password, source = "/tmp", options = {})
446
+ def build_upload_command(username, password, source = Dir.tmpdir, options = {})
446
447
  provider_short_name = options.fetch(:provider_short_name, "")
447
448
  jwt = options[:jwt]
448
449
  api_key = options[:api_key]
@@ -458,7 +459,7 @@ module FastlaneCore
458
459
  ].compact.join(' ')
459
460
  end
460
461
 
461
- def build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "", jwt = nil)
462
+ def build_download_command(username, password, apple_id, destination = Dir.tmpdir, provider_short_name = "", jwt = nil)
462
463
  [
463
464
  '"' + Helper.transporter_path + '"',
464
465
  "-m lookupMetadata",
@@ -477,7 +478,7 @@ module FastlaneCore
477
478
  ].compact.join(' ')
478
479
  end
479
480
 
480
- def build_verify_command(username, password, source = "/tmp", options = {})
481
+ def build_verify_command(username, password, source = Dir.tmpdir, options = {})
481
482
  provider_short_name = options.fetch(:provider_short_name, "")
482
483
  jwt = options[:jwt]
483
484
  [
@@ -568,7 +569,7 @@ module FastlaneCore
568
569
  end
569
570
  end
570
571
 
571
- def build_upload_command(username, password, source = "/tmp", options = {})
572
+ def build_upload_command(username, password, source = Dir.tmpdir, options = {})
572
573
  provider_short_name = options.fetch(:provider_short_name, "")
573
574
  jwt = options[:jwt]
574
575
  api_key = options[:api_key]
@@ -607,7 +608,7 @@ module FastlaneCore
607
608
  end
608
609
  end
609
610
 
610
- def build_verify_command(username, password, source = "/tmp", options = {})
611
+ def build_verify_command(username, password, source = Dir.tmpdir, options = {})
611
612
  provider_short_name = options.fetch(:provider_short_name, "")
612
613
  jwt = options[:jwt]
613
614
  credential_params = build_credential_params(username, password, jwt, nil, is_default_itms_on_xcode_11?)
@@ -641,7 +642,7 @@ module FastlaneCore
641
642
  end
642
643
  end
643
644
 
644
- def build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "", jwt = nil)
645
+ def build_download_command(username, password, apple_id, destination = Dir.tmpdir, provider_short_name = "", jwt = nil)
645
646
  credential_params = build_credential_params(username, password, jwt, nil, is_default_itms_on_xcode_11?)
646
647
  if is_default_itms_on_xcode_11?
647
648
  [
@@ -793,7 +794,9 @@ module FastlaneCore
793
794
  # @raise [Deliver::TransporterTransferError] when something went wrong
794
795
  # when transferring
795
796
  def download(app_id, dir = nil)
796
- dir ||= "/tmp"
797
+ # Dir.tmpdir, not a literal "/tmp": the transporter chdirs into this
798
+ # directory, and "/tmp" is not one on Windows. See fastlane#30184.
799
+ dir ||= Dir.tmpdir
797
800
 
798
801
  password_placeholder = @jwt.nil? ? 'YourPassword' : nil
799
802
  jwt_placeholder = @jwt.nil? ? nil : 'YourJWT'