fastlane 2.138.0 → 2.143.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +75 -62
  4. data/cert/lib/cert/options.rb +12 -5
  5. data/cert/lib/cert/runner.rb +13 -0
  6. data/deliver/lib/deliver/options.rb +2 -2
  7. data/deliver/lib/deliver/runner.rb +13 -2
  8. data/deliver/lib/deliver/submit_for_review.rb +7 -1
  9. data/fastlane/lib/fastlane/action.rb +2 -2
  10. data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
  11. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  12. data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
  13. data/fastlane/lib/fastlane/actions/README.md +2 -0
  14. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +13 -5
  15. data/fastlane/lib/fastlane/actions/build_app.rb +157 -6
  16. data/fastlane/lib/fastlane/actions/build_ios_app.rb +28 -132
  17. data/fastlane/lib/fastlane/actions/build_mac_app.rb +46 -0
  18. data/fastlane/lib/fastlane/actions/cocoapods.rb +2 -2
  19. data/fastlane/lib/fastlane/actions/create_pull_request.rb +71 -2
  20. data/fastlane/lib/fastlane/actions/docs/{build_ios_app.md → build_app.md} +1 -1
  21. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +22 -6
  22. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +20 -4
  23. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +10 -0
  24. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +1 -1
  25. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +35 -7
  26. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +2 -1
  27. data/fastlane/lib/fastlane/actions/get_github_release.rb +3 -0
  28. data/fastlane/lib/fastlane/actions/gradle.rb +43 -2
  29. data/fastlane/lib/fastlane/actions/gym.rb +3 -7
  30. data/fastlane/lib/fastlane/actions/import_from_git.rb +4 -0
  31. data/fastlane/lib/fastlane/actions/last_git_tag.rb +14 -5
  32. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +9 -3
  33. data/fastlane/lib/fastlane/actions/notarize.rb +183 -0
  34. data/fastlane/lib/fastlane/actions/run_tests.rb +5 -22
  35. data/fastlane/lib/fastlane/actions/s3.rb +5 -291
  36. data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -1
  37. data/fastlane/lib/fastlane/actions/setup_ci.rb +14 -8
  38. data/fastlane/lib/fastlane/actions/spm.rb +8 -0
  39. data/fastlane/lib/fastlane/actions/swiftlint.rb +17 -2
  40. data/fastlane/lib/fastlane/actions/update_plist.rb +37 -2
  41. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +13 -3
  42. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -0
  43. data/fastlane/lib/fastlane/actions/upload_to_play_store_internal_app_sharing.rb +78 -0
  44. data/fastlane/lib/fastlane/fast_file.rb +13 -3
  45. data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
  46. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +56 -0
  47. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
  48. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +2 -0
  49. data/fastlane/lib/fastlane/runner.rb +23 -18
  50. data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +1 -1
  51. data/fastlane/lib/fastlane/version.rb +1 -1
  52. data/fastlane/swift/Deliverfile.swift +1 -1
  53. data/fastlane/swift/DeliverfileProtocol.swift +3 -3
  54. data/fastlane/swift/Fastlane.swift +429 -50
  55. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  56. data/fastlane/swift/Gymfile.swift +1 -1
  57. data/fastlane/swift/GymfileProtocol.swift +17 -1
  58. data/fastlane/swift/Matchfile.swift +1 -1
  59. data/fastlane/swift/MatchfileProtocol.swift +23 -3
  60. data/fastlane/swift/Precheckfile.swift +1 -1
  61. data/fastlane/swift/RubyCommand.swift +1 -1
  62. data/fastlane/swift/Scanfile.swift +1 -1
  63. data/fastlane/swift/ScanfileProtocol.swift +21 -1
  64. data/fastlane/swift/Screengrabfile.swift +1 -1
  65. data/fastlane/swift/Snapshotfile.swift +1 -1
  66. data/fastlane/swift/SnapshotfileProtocol.swift +9 -1
  67. data/fastlane_core/lib/fastlane_core/build_watcher.rb +6 -2
  68. data/fastlane_core/lib/fastlane_core/cert_checker.rb +28 -0
  69. data/fastlane_core/lib/fastlane_core/device_manager.rb +20 -0
  70. data/fastlane_core/lib/fastlane_core/helper.rb +7 -1
  71. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -0
  72. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +2 -0
  73. data/fastlane_core/lib/fastlane_core/project.rb +27 -0
  74. data/frameit/lib/frameit/commands_generator.rb +25 -0
  75. data/frameit/lib/frameit/config_parser.rb +31 -9
  76. data/frameit/lib/frameit/device.rb +90 -0
  77. data/frameit/lib/frameit/device_types.rb +121 -5
  78. data/frameit/lib/frameit/editor.rb +31 -40
  79. data/frameit/lib/frameit/offsets.rb +8 -1
  80. data/frameit/lib/frameit/options.rb +81 -54
  81. data/frameit/lib/frameit/runner.rb +17 -7
  82. data/frameit/lib/frameit/screenshot.rb +35 -47
  83. data/frameit/lib/frameit/template_finder.rb +15 -12
  84. data/gym/lib/gym/code_signing_mapping.rb +32 -3
  85. data/gym/lib/gym/detect_values.rb +34 -2
  86. data/gym/lib/gym/generators/build_command_generator.rb +1 -0
  87. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  88. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +47 -17
  89. data/gym/lib/gym/module.rb +8 -0
  90. data/gym/lib/gym/options.rb +25 -1
  91. data/gym/lib/gym/runner.rb +64 -24
  92. data/match/lib/match/change_password.rb +1 -1
  93. data/match/lib/match/encryption.rb +4 -0
  94. data/match/lib/match/encryption/openssl.rb +1 -1
  95. data/match/lib/match/generator.rb +17 -3
  96. data/match/lib/match/importer.rb +2 -2
  97. data/match/lib/match/module.rb +5 -2
  98. data/match/lib/match/nuke.rb +59 -17
  99. data/match/lib/match/options.rb +38 -15
  100. data/match/lib/match/runner.rb +24 -8
  101. data/match/lib/match/setup.rb +1 -1
  102. data/match/lib/match/spaceship_ensure.rb +19 -9
  103. data/match/lib/match/storage.rb +4 -0
  104. data/match/lib/match/storage/git_storage.rb +5 -2
  105. data/match/lib/match/storage/google_cloud_storage.rb +2 -2
  106. data/match/lib/match/storage/s3_storage.rb +162 -0
  107. data/pilot/lib/pilot/.manager.rb.swp +0 -0
  108. data/pilot/lib/pilot/build_manager.rb +55 -15
  109. data/pilot/lib/pilot/options.rb +3 -1
  110. data/scan/lib/scan/detect_values.rb +6 -1
  111. data/scan/lib/scan/manager.rb +18 -1
  112. data/scan/lib/scan/options.rb +28 -1
  113. data/scan/lib/scan/runner.rb +11 -3
  114. data/scan/lib/scan/slack_poster.rb +1 -1
  115. data/scan/lib/scan/test_command_generator.rb +9 -5
  116. data/screengrab/lib/screengrab/runner.rb +31 -18
  117. data/snapshot/lib/snapshot/fixes/simulator_shared_pasteboard.rb +16 -0
  118. data/snapshot/lib/snapshot/options.rb +12 -1
  119. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  120. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +13 -0
  121. data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
  122. data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +4 -0
  123. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
  124. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +5 -0
  125. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -0
  126. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +6 -0
  127. data/spaceship/lib/spaceship/portal/.certificate.rb.swp +0 -0
  128. data/spaceship/lib/spaceship/portal/app.rb +11 -2
  129. data/spaceship/lib/spaceship/tunes/iap.rb +11 -11
  130. data/spaceship/lib/spaceship/tunes/iap_detail.rb +7 -3
  131. data/spaceship/lib/spaceship/tunes/iap_families.rb +12 -1
  132. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +26 -17
  133. data/spaceship/lib/spaceship/tunes/iap_status.rb +5 -1
  134. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
  135. data/supply/lib/supply/client.rb +26 -0
  136. data/supply/lib/supply/uploader.rb +28 -0
  137. metadata +64 -20
@@ -441,8 +441,8 @@ func appledoc(input: Any,
441
441
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
442
442
  - submitForReview: Submit the new version for Review after uploading everything
443
443
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
444
- - automaticRelease: Should the app be automatically released once it's approved?
445
- - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
444
+ - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
445
+ - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
446
446
  - phasedRelease: Enable the phased release feature of iTC
447
447
  - resetRatings: Reset the summary rating when you release a new version of the application
448
448
  - priceTier: The price tier of this application
@@ -829,6 +829,7 @@ func buildAndUploadToAppetize(xcodebuild: [String : Any] = [:],
829
829
  - task: The gradle task you want to execute, e.g. `assemble`, `bundle` or `test`. For tasks such as `assembleMyFlavorRelease` you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release')
830
830
  - flavor: The flavor that you want the task for, e.g. `MyFlavor`. If you are running the `assemble` task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined
831
831
  - buildType: The build type that you want the task for, e.g. `Release`. Useful for some tasks such as `assemble`
832
+ - tasks: The multiple gradle tasks that you want to execute, e.g. `[assembleDebug, bundleDebug]`
832
833
  - flags: All parameter flags you want to pass to the gradle command, e.g. `--exitcode --xml file.xml`
833
834
  - projectDir: The root directory of the gradle project
834
835
  - gradlePath: The path to your `gradlew`. If you specify a relative path, it is assumed to be relative to the `project_dir`
@@ -842,9 +843,10 @@ func buildAndUploadToAppetize(xcodebuild: [String : Any] = [:],
842
843
 
843
844
  Run `./gradlew tasks` to get a list of all available gradle tasks for your project
844
845
  */
845
- func buildAndroidApp(task: String,
846
+ func buildAndroidApp(task: String? = nil,
846
847
  flavor: String? = nil,
847
848
  buildType: String? = nil,
849
+ tasks: [String]? = nil,
848
850
  flags: String? = nil,
849
851
  projectDir: String = ".",
850
852
  gradlePath: String? = nil,
@@ -856,6 +858,7 @@ func buildAndroidApp(task: String,
856
858
  let command = RubyCommand(commandID: "", methodName: "build_android_app", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
857
859
  RubyCommand.Argument(name: "flavor", value: flavor),
858
860
  RubyCommand.Argument(name: "build_type", value: buildType),
861
+ RubyCommand.Argument(name: "tasks", value: tasks),
859
862
  RubyCommand.Argument(name: "flags", value: flags),
860
863
  RubyCommand.Argument(name: "project_dir", value: projectDir),
861
864
  RubyCommand.Argument(name: "gradle_path", value: gradlePath),
@@ -868,7 +871,7 @@ func buildAndroidApp(task: String,
868
871
  }
869
872
 
870
873
  /**
871
- Alias for the `build_ios_app` action
874
+ Easily build and sign your app (via _gym_)
872
875
 
873
876
  - parameters:
874
877
  - workspace: Path to the workspace file
@@ -881,6 +884,7 @@ func buildAndroidApp(task: String,
881
884
  - silent: Hide all information that's not necessary while building
882
885
  - codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
883
886
  - skipPackageIpa: Should we skip packaging the ipa?
887
+ - skipPackagePkg: Should we skip packaging the pkg?
884
888
  - includeSymbols: Should the ipa file include symbols?
885
889
  - includeBitcode: Should the ipa file include bitcode?
886
890
  - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
@@ -889,6 +893,8 @@ func buildAndroidApp(task: String,
889
893
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
890
894
  - skipArchive: After building, don't archive, effectively not including -archivePath param
891
895
  - skipCodesigning: Build without codesigning
896
+ - catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
897
+ - installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
892
898
  - buildPath: The directory in which the archive should be stored in
893
899
  - archivePath: The path to the created archive
894
900
  - derivedDataPath: The directory where built products and other derived data will go
@@ -911,6 +917,7 @@ func buildAndroidApp(task: String,
911
917
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
912
918
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
913
919
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
920
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
914
921
 
915
922
  - returns: The absolute path to the generated ipa file
916
923
 
@@ -926,6 +933,7 @@ func buildApp(workspace: String? = nil,
926
933
  silent: Bool = false,
927
934
  codesigningIdentity: String? = nil,
928
935
  skipPackageIpa: Bool = false,
936
+ skipPackagePkg: Bool = false,
929
937
  includeSymbols: Bool? = nil,
930
938
  includeBitcode: Bool? = nil,
931
939
  exportMethod: String? = nil,
@@ -934,6 +942,8 @@ func buildApp(workspace: String? = nil,
934
942
  skipBuildArchive: Bool? = nil,
935
943
  skipArchive: Bool? = nil,
936
944
  skipCodesigning: Bool? = nil,
945
+ catalystPlatform: String? = nil,
946
+ installerCertName: String? = nil,
937
947
  buildPath: String? = nil,
938
948
  archivePath: String? = nil,
939
949
  derivedDataPath: String? = nil,
@@ -955,7 +965,8 @@ func buildApp(workspace: String? = nil,
955
965
  xcprettyReportJson: String? = nil,
956
966
  analyzeBuildTime: Bool? = nil,
957
967
  xcprettyUtf: Bool? = nil,
958
- skipProfileDetection: Bool = false) {
968
+ skipProfileDetection: Bool = false,
969
+ clonedSourcePackagesPath: String? = nil) {
959
970
  let command = RubyCommand(commandID: "", methodName: "build_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
960
971
  RubyCommand.Argument(name: "project", value: project),
961
972
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -966,6 +977,7 @@ func buildApp(workspace: String? = nil,
966
977
  RubyCommand.Argument(name: "silent", value: silent),
967
978
  RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
968
979
  RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
980
+ RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
969
981
  RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
970
982
  RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
971
983
  RubyCommand.Argument(name: "export_method", value: exportMethod),
@@ -974,6 +986,8 @@ func buildApp(workspace: String? = nil,
974
986
  RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
975
987
  RubyCommand.Argument(name: "skip_archive", value: skipArchive),
976
988
  RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
989
+ RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
990
+ RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
977
991
  RubyCommand.Argument(name: "build_path", value: buildPath),
978
992
  RubyCommand.Argument(name: "archive_path", value: archivePath),
979
993
  RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
@@ -995,12 +1009,13 @@ func buildApp(workspace: String? = nil,
995
1009
  RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
996
1010
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
997
1011
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
998
- RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)])
1012
+ RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1013
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
999
1014
  _ = runner.executeCommand(command)
1000
1015
  }
1001
1016
 
1002
1017
  /**
1003
- Easily build and sign your app (via _gym_)
1018
+ Alias for the `build_app` action but only for iOS
1004
1019
 
1005
1020
  - parameters:
1006
1021
  - workspace: Path to the workspace file
@@ -1043,6 +1058,7 @@ func buildApp(workspace: String? = nil,
1043
1058
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1044
1059
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1045
1060
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1061
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1046
1062
 
1047
1063
  - returns: The absolute path to the generated ipa file
1048
1064
 
@@ -1087,7 +1103,8 @@ func buildIosApp(workspace: String? = nil,
1087
1103
  xcprettyReportJson: String? = nil,
1088
1104
  analyzeBuildTime: Bool? = nil,
1089
1105
  xcprettyUtf: Bool? = nil,
1090
- skipProfileDetection: Bool = false) {
1106
+ skipProfileDetection: Bool = false,
1107
+ clonedSourcePackagesPath: String? = nil) {
1091
1108
  let command = RubyCommand(commandID: "", methodName: "build_ios_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1092
1109
  RubyCommand.Argument(name: "project", value: project),
1093
1110
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -1127,7 +1144,146 @@ func buildIosApp(workspace: String? = nil,
1127
1144
  RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
1128
1145
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1129
1146
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1130
- RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)])
1147
+ RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1148
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1149
+ _ = runner.executeCommand(command)
1150
+ }
1151
+
1152
+ /**
1153
+ Alias for the `build_app` action but only for macOS
1154
+
1155
+ - parameters:
1156
+ - workspace: Path to the workspace file
1157
+ - project: Path to the project file
1158
+ - scheme: The project's scheme. Make sure it's marked as `Shared`
1159
+ - clean: Should the project be cleaned before building it?
1160
+ - outputDirectory: The directory in which the ipa file should be stored in
1161
+ - outputName: The name of the resulting ipa file
1162
+ - configuration: The configuration to use when building the app. Defaults to 'Release'
1163
+ - silent: Hide all information that's not necessary while building
1164
+ - codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
1165
+ - skipPackagePkg: Should we skip packaging the pkg?
1166
+ - includeSymbols: Should the ipa file include symbols?
1167
+ - includeBitcode: Should the ipa file include bitcode?
1168
+ - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
1169
+ - exportOptions: Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
1170
+ - exportXcargs: Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
1171
+ - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
1172
+ - skipArchive: After building, don't archive, effectively not including -archivePath param
1173
+ - skipCodesigning: Build without codesigning
1174
+ - installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
1175
+ - buildPath: The directory in which the archive should be stored in
1176
+ - archivePath: The path to the created archive
1177
+ - derivedDataPath: The directory where built products and other derived data will go
1178
+ - resultBundle: Should an Xcode result bundle be generated in the output directory
1179
+ - resultBundlePath: Path to the result bundle directory to create. Ignored if `result_bundle` if false
1180
+ - buildlogPath: The directory where to store the build log
1181
+ - sdk: The SDK that should be used for building the application
1182
+ - toolchain: The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a)
1183
+ - destination: Use a custom destination for building the app
1184
+ - exportTeamId: Optional: Sometimes you need to specify a team id when exporting the ipa file
1185
+ - xcargs: Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
1186
+ - xcconfig: Use an extra XCCONFIG file to build your app
1187
+ - suppressXcodeOutput: Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
1188
+ - disableXcpretty: Disable xcpretty formatting of build output
1189
+ - xcprettyTestFormat: Use the test (RSpec style) format for build output
1190
+ - xcprettyFormatter: A custom xcpretty formatter to use
1191
+ - xcprettyReportJunit: Have xcpretty create a JUnit-style XML report at the provided path
1192
+ - xcprettyReportHtml: Have xcpretty create a simple HTML report at the provided path
1193
+ - xcprettyReportJson: Have xcpretty create a JSON compilation database at the provided path
1194
+ - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
1195
+ - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
1196
+ - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
1197
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1198
+
1199
+ - returns: The absolute path to the generated ipa file
1200
+
1201
+ More information: https://fastlane.tools/gym
1202
+ */
1203
+ func buildMacApp(workspace: String? = nil,
1204
+ project: String? = nil,
1205
+ scheme: String? = nil,
1206
+ clean: Bool = false,
1207
+ outputDirectory: String = ".",
1208
+ outputName: String? = nil,
1209
+ configuration: String? = nil,
1210
+ silent: Bool = false,
1211
+ codesigningIdentity: String? = nil,
1212
+ skipPackagePkg: Bool = false,
1213
+ includeSymbols: Bool? = nil,
1214
+ includeBitcode: Bool? = nil,
1215
+ exportMethod: String? = nil,
1216
+ exportOptions: [String : Any]? = nil,
1217
+ exportXcargs: String? = nil,
1218
+ skipBuildArchive: Bool? = nil,
1219
+ skipArchive: Bool? = nil,
1220
+ skipCodesigning: Bool? = nil,
1221
+ installerCertName: String? = nil,
1222
+ buildPath: String? = nil,
1223
+ archivePath: String? = nil,
1224
+ derivedDataPath: String? = nil,
1225
+ resultBundle: Bool = false,
1226
+ resultBundlePath: String? = nil,
1227
+ buildlogPath: String = "~/Library/Logs/gym",
1228
+ sdk: String? = nil,
1229
+ toolchain: String? = nil,
1230
+ destination: String? = nil,
1231
+ exportTeamId: String? = nil,
1232
+ xcargs: String? = nil,
1233
+ xcconfig: String? = nil,
1234
+ suppressXcodeOutput: Bool? = nil,
1235
+ disableXcpretty: Bool? = nil,
1236
+ xcprettyTestFormat: Bool? = nil,
1237
+ xcprettyFormatter: String? = nil,
1238
+ xcprettyReportJunit: String? = nil,
1239
+ xcprettyReportHtml: String? = nil,
1240
+ xcprettyReportJson: String? = nil,
1241
+ analyzeBuildTime: Bool? = nil,
1242
+ xcprettyUtf: Bool? = nil,
1243
+ skipProfileDetection: Bool = false,
1244
+ clonedSourcePackagesPath: String? = nil) {
1245
+ let command = RubyCommand(commandID: "", methodName: "build_mac_app", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1246
+ RubyCommand.Argument(name: "project", value: project),
1247
+ RubyCommand.Argument(name: "scheme", value: scheme),
1248
+ RubyCommand.Argument(name: "clean", value: clean),
1249
+ RubyCommand.Argument(name: "output_directory", value: outputDirectory),
1250
+ RubyCommand.Argument(name: "output_name", value: outputName),
1251
+ RubyCommand.Argument(name: "configuration", value: configuration),
1252
+ RubyCommand.Argument(name: "silent", value: silent),
1253
+ RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
1254
+ RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
1255
+ RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
1256
+ RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
1257
+ RubyCommand.Argument(name: "export_method", value: exportMethod),
1258
+ RubyCommand.Argument(name: "export_options", value: exportOptions),
1259
+ RubyCommand.Argument(name: "export_xcargs", value: exportXcargs),
1260
+ RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
1261
+ RubyCommand.Argument(name: "skip_archive", value: skipArchive),
1262
+ RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
1263
+ RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
1264
+ RubyCommand.Argument(name: "build_path", value: buildPath),
1265
+ RubyCommand.Argument(name: "archive_path", value: archivePath),
1266
+ RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
1267
+ RubyCommand.Argument(name: "result_bundle", value: resultBundle),
1268
+ RubyCommand.Argument(name: "result_bundle_path", value: resultBundlePath),
1269
+ RubyCommand.Argument(name: "buildlog_path", value: buildlogPath),
1270
+ RubyCommand.Argument(name: "sdk", value: sdk),
1271
+ RubyCommand.Argument(name: "toolchain", value: toolchain),
1272
+ RubyCommand.Argument(name: "destination", value: destination),
1273
+ RubyCommand.Argument(name: "export_team_id", value: exportTeamId),
1274
+ RubyCommand.Argument(name: "xcargs", value: xcargs),
1275
+ RubyCommand.Argument(name: "xcconfig", value: xcconfig),
1276
+ RubyCommand.Argument(name: "suppress_xcode_output", value: suppressXcodeOutput),
1277
+ RubyCommand.Argument(name: "disable_xcpretty", value: disableXcpretty),
1278
+ RubyCommand.Argument(name: "xcpretty_test_format", value: xcprettyTestFormat),
1279
+ RubyCommand.Argument(name: "xcpretty_formatter", value: xcprettyFormatter),
1280
+ RubyCommand.Argument(name: "xcpretty_report_junit", value: xcprettyReportJunit),
1281
+ RubyCommand.Argument(name: "xcpretty_report_html", value: xcprettyReportHtml),
1282
+ RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
1283
+ RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
1284
+ RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
1285
+ RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
1286
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1131
1287
  _ = runner.executeCommand(command)
1132
1288
  }
1133
1289
 
@@ -1305,6 +1461,8 @@ func captureAndroidScreenshots(androidHome: String? = nil,
1305
1461
  - testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
1306
1462
  - namespaceLogFiles: Separate the log files per device and per language
1307
1463
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
1464
+ - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
1465
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1308
1466
  */
1309
1467
  func captureIosScreenshots(workspace: String? = nil,
1310
1468
  project: String? = nil,
@@ -1339,7 +1497,9 @@ func captureIosScreenshots(workspace: String? = nil,
1339
1497
  resultBundle: Bool = false,
1340
1498
  testTargetName: String? = nil,
1341
1499
  namespaceLogFiles: Any? = nil,
1342
- concurrentSimulators: Bool = true) {
1500
+ concurrentSimulators: Bool = true,
1501
+ disableSlideToType: Bool = false,
1502
+ clonedSourcePackagesPath: String? = nil) {
1343
1503
  let command = RubyCommand(commandID: "", methodName: "capture_ios_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1344
1504
  RubyCommand.Argument(name: "project", value: project),
1345
1505
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -1373,7 +1533,9 @@ func captureIosScreenshots(workspace: String? = nil,
1373
1533
  RubyCommand.Argument(name: "result_bundle", value: resultBundle),
1374
1534
  RubyCommand.Argument(name: "test_target_name", value: testTargetName),
1375
1535
  RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
1376
- RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)])
1536
+ RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
1537
+ RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
1538
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1377
1539
  _ = runner.executeCommand(command)
1378
1540
  }
1379
1541
 
@@ -1415,6 +1577,8 @@ func captureIosScreenshots(workspace: String? = nil,
1415
1577
  - testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
1416
1578
  - namespaceLogFiles: Separate the log files per device and per language
1417
1579
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
1580
+ - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
1581
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
1418
1582
  */
1419
1583
  func captureScreenshots(workspace: String? = nil,
1420
1584
  project: String? = nil,
@@ -1449,7 +1613,9 @@ func captureScreenshots(workspace: String? = nil,
1449
1613
  resultBundle: Bool = false,
1450
1614
  testTargetName: String? = nil,
1451
1615
  namespaceLogFiles: Any? = nil,
1452
- concurrentSimulators: Bool = true) {
1616
+ concurrentSimulators: Bool = true,
1617
+ disableSlideToType: Bool = false,
1618
+ clonedSourcePackagesPath: String? = nil) {
1453
1619
  let command = RubyCommand(commandID: "", methodName: "capture_screenshots", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
1454
1620
  RubyCommand.Argument(name: "project", value: project),
1455
1621
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -1483,7 +1649,9 @@ func captureScreenshots(workspace: String? = nil,
1483
1649
  RubyCommand.Argument(name: "result_bundle", value: resultBundle),
1484
1650
  RubyCommand.Argument(name: "test_target_name", value: testTargetName),
1485
1651
  RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
1486
- RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)])
1652
+ RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
1653
+ RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
1654
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
1487
1655
  _ = runner.executeCommand(command)
1488
1656
  }
1489
1657
 
@@ -1560,6 +1728,7 @@ func carthage(command: String = "bootstrap",
1560
1728
 
1561
1729
  - parameters:
1562
1730
  - development: Create a development certificate instead of a distribution one
1731
+ - type: Create specific certificate type (takes precedence over :development)
1563
1732
  - force: Create a certificate even if an existing certificate exists
1564
1733
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
1565
1734
  - username: Your Apple ID Username
@@ -1575,6 +1744,7 @@ func carthage(command: String = "bootstrap",
1575
1744
  Use this action to download the latest code signing identity.
1576
1745
  */
1577
1746
  func cert(development: Bool = false,
1747
+ type: String? = nil,
1578
1748
  force: Bool = false,
1579
1749
  generateAppleCerts: Bool = true,
1580
1750
  username: String,
@@ -1584,8 +1754,9 @@ func cert(development: Bool = false,
1584
1754
  outputPath: String = ".",
1585
1755
  keychainPath: String,
1586
1756
  keychainPassword: String? = nil,
1587
- platform: Any = "ios") {
1757
+ platform: String = "ios") {
1588
1758
  let command = RubyCommand(commandID: "", methodName: "cert", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
1759
+ RubyCommand.Argument(name: "type", value: type),
1589
1760
  RubyCommand.Argument(name: "force", value: force),
1590
1761
  RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
1591
1762
  RubyCommand.Argument(name: "username", value: username),
@@ -2142,10 +2313,13 @@ func createKeychain(name: String? = nil,
2142
2313
  - title: The title of the pull request
2143
2314
  - body: The contents of the pull request
2144
2315
  - labels: The labels for the pull request
2316
+ - milestone: The milestone ID (Integer) for the pull request
2145
2317
  - head: The name of the branch where your changes are implemented (defaults to the current branch name)
2146
2318
  - base: The name of the branch you want your changes pulled into (defaults to `master`)
2147
2319
  - apiUrl: The URL of GitHub API - used when the Enterprise (default to `https://api.github.com`)
2148
2320
  - assignees: The assignees for the pull request
2321
+ - reviewers: The reviewers (slug) for the pull request
2322
+ - teamReviewers: The team reviewers (slug) for the pull request
2149
2323
 
2150
2324
  - returns: The pull request URL when successful
2151
2325
  */
@@ -2154,19 +2328,25 @@ func createPullRequest(apiToken: String,
2154
2328
  title: String,
2155
2329
  body: String? = nil,
2156
2330
  labels: [String]? = nil,
2331
+ milestone: String? = nil,
2157
2332
  head: String? = nil,
2158
2333
  base: String = "master",
2159
2334
  apiUrl: String = "https://api.github.com",
2160
- assignees: [String]? = nil) {
2335
+ assignees: [String]? = nil,
2336
+ reviewers: [String]? = nil,
2337
+ teamReviewers: [String]? = nil) {
2161
2338
  let command = RubyCommand(commandID: "", methodName: "create_pull_request", className: nil, args: [RubyCommand.Argument(name: "api_token", value: apiToken),
2162
2339
  RubyCommand.Argument(name: "repo", value: repo),
2163
2340
  RubyCommand.Argument(name: "title", value: title),
2164
2341
  RubyCommand.Argument(name: "body", value: body),
2165
2342
  RubyCommand.Argument(name: "labels", value: labels),
2343
+ RubyCommand.Argument(name: "milestone", value: milestone),
2166
2344
  RubyCommand.Argument(name: "head", value: head),
2167
2345
  RubyCommand.Argument(name: "base", value: base),
2168
2346
  RubyCommand.Argument(name: "api_url", value: apiUrl),
2169
- RubyCommand.Argument(name: "assignees", value: assignees)])
2347
+ RubyCommand.Argument(name: "assignees", value: assignees),
2348
+ RubyCommand.Argument(name: "reviewers", value: reviewers),
2349
+ RubyCommand.Argument(name: "team_reviewers", value: teamReviewers)])
2170
2350
  _ = runner.executeCommand(command)
2171
2351
  }
2172
2352
 
@@ -2269,8 +2449,8 @@ func deleteKeychain(name: String? = nil,
2269
2449
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
2270
2450
  - submitForReview: Submit the new version for Review after uploading everything
2271
2451
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
2272
- - automaticRelease: Should the app be automatically released once it's approved?
2273
- - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
2452
+ - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
2453
+ - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
2274
2454
  - phasedRelease: Enable the phased release feature of iTC
2275
2455
  - resetRatings: Reset the summary rating when you release a new version of the application
2276
2456
  - priceTier: The price tier of this application
@@ -2577,7 +2757,7 @@ func downloadDsyms(username: String,
2577
2757
  func downloadFromPlayStore(packageName: String,
2578
2758
  versionName: String? = nil,
2579
2759
  track: String = "production",
2580
- metadataPath: String? = nil,
2760
+ metadataPath: String = "./metadata",
2581
2761
  key: String? = nil,
2582
2762
  issuer: String? = nil,
2583
2763
  jsonKey: String? = nil,
@@ -2652,7 +2832,7 @@ func ensureEnvVars(envVars: [String]) {
2652
2832
  /**
2653
2833
  Raises an exception if not on a specific git branch
2654
2834
 
2655
- - parameter branch: The branch that should be checked for. String that can be either the full name of the branch or a regex to match
2835
+ - parameter branch: The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. `^feature/.*$` to match
2656
2836
 
2657
2837
  This action will check if your git repo is checked out to a specific branch.
2658
2838
  You may only want to make releases from a specific branch, so `ensure_git_branch` will stop a lane if it was accidentally executed on an incorrect branch.
@@ -2712,14 +2892,19 @@ func ensureNoDebugCode(text: String,
2712
2892
  /**
2713
2893
  Ensure the right version of Xcode is used
2714
2894
 
2715
- - parameter version: Xcode version to verify that is selected
2895
+ - parameters:
2896
+ - version: Xcode version to verify that is selected
2897
+ - strict: Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. `11.3` == `11.3.x`)
2716
2898
 
2717
2899
  If building your app requires a specific version of Xcode, you can invoke this command before using gym.
2718
2900
  For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail.
2719
2901
  You can either manually provide a specific version using `version: ` or you make use of the `.xcode-version` file.
2902
+ Using the `strict` parameter, you can either verify the full set of version numbers strictly (i.e. `11.3.1`) or only a subset of them (i.e. `11.3` or `11`).
2720
2903
  */
2721
- func ensureXcodeVersion(version: String? = nil) {
2722
- let command = RubyCommand(commandID: "", methodName: "ensure_xcode_version", className: nil, args: [RubyCommand.Argument(name: "version", value: version)])
2904
+ func ensureXcodeVersion(version: String? = nil,
2905
+ strict: Bool = true) {
2906
+ let command = RubyCommand(commandID: "", methodName: "ensure_xcode_version", className: nil, args: [RubyCommand.Argument(name: "version", value: version),
2907
+ RubyCommand.Argument(name: "strict", value: strict)])
2723
2908
  _ = runner.executeCommand(command)
2724
2909
  }
2725
2910
 
@@ -2801,10 +2986,15 @@ func flock(message: String,
2801
2986
  - forceDeviceType: Forces a given device type, useful for Mac screenshots, as their sizes vary
2802
2987
  - useLegacyIphone5s: Use iPhone 5s instead of iPhone SE frames
2803
2988
  - useLegacyIphone6s: Use iPhone 6s frames instead of iPhone 7 frames
2989
+ - useLegacyIphone7: Use iPhone 7 frames instead of iPhone 8 frames
2804
2990
  - useLegacyIphonex: Use iPhone X instead of iPhone XS frames
2991
+ - useLegacyIphonexr: Use iPhone XR instead of iPhone 11 frames
2992
+ - useLegacyIphonexs: Use iPhone XS instead of iPhone 11 Pro frames
2993
+ - useLegacyIphonexsmax: Use iPhone XS Max instead of iPhone 11 Pro Max frames
2805
2994
  - forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
2806
2995
  - debugMode: Output debug information in framed screenshots
2807
2996
  - resume: Resume frameit instead of reprocessing all screenshots
2997
+ - usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (IOS is default to ensure backward compatibility)
2808
2998
  - path: The path to the directory containing the screenshots
2809
2999
 
2810
3000
  Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
@@ -2817,10 +3007,15 @@ func frameScreenshots(white: Bool? = nil,
2817
3007
  forceDeviceType: String? = nil,
2818
3008
  useLegacyIphone5s: Bool = false,
2819
3009
  useLegacyIphone6s: Bool = false,
3010
+ useLegacyIphone7: Bool = false,
2820
3011
  useLegacyIphonex: Bool = false,
3012
+ useLegacyIphonexr: Bool = false,
3013
+ useLegacyIphonexs: Bool = false,
3014
+ useLegacyIphonexsmax: Bool = false,
2821
3015
  forceOrientationBlock: String? = nil,
2822
3016
  debugMode: Bool = false,
2823
3017
  resume: Bool = false,
3018
+ usePlatform: String = "IOS",
2824
3019
  path: String = "./") {
2825
3020
  let command = RubyCommand(commandID: "", methodName: "frame_screenshots", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
2826
3021
  RubyCommand.Argument(name: "silver", value: silver),
@@ -2829,10 +3024,15 @@ func frameScreenshots(white: Bool? = nil,
2829
3024
  RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
2830
3025
  RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
2831
3026
  RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
3027
+ RubyCommand.Argument(name: "use_legacy_iphone7", value: useLegacyIphone7),
2832
3028
  RubyCommand.Argument(name: "use_legacy_iphonex", value: useLegacyIphonex),
3029
+ RubyCommand.Argument(name: "use_legacy_iphonexr", value: useLegacyIphonexr),
3030
+ RubyCommand.Argument(name: "use_legacy_iphonexs", value: useLegacyIphonexs),
3031
+ RubyCommand.Argument(name: "use_legacy_iphonexsmax", value: useLegacyIphonexsmax),
2833
3032
  RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
2834
3033
  RubyCommand.Argument(name: "debug_mode", value: debugMode),
2835
3034
  RubyCommand.Argument(name: "resume", value: resume),
3035
+ RubyCommand.Argument(name: "use_platform", value: usePlatform),
2836
3036
  RubyCommand.Argument(name: "path", value: path)])
2837
3037
  _ = runner.executeCommand(command)
2838
3038
  }
@@ -2848,10 +3048,15 @@ func frameScreenshots(white: Bool? = nil,
2848
3048
  - forceDeviceType: Forces a given device type, useful for Mac screenshots, as their sizes vary
2849
3049
  - useLegacyIphone5s: Use iPhone 5s instead of iPhone SE frames
2850
3050
  - useLegacyIphone6s: Use iPhone 6s frames instead of iPhone 7 frames
3051
+ - useLegacyIphone7: Use iPhone 7 frames instead of iPhone 8 frames
2851
3052
  - useLegacyIphonex: Use iPhone X instead of iPhone XS frames
3053
+ - useLegacyIphonexr: Use iPhone XR instead of iPhone 11 frames
3054
+ - useLegacyIphonexs: Use iPhone XS instead of iPhone 11 Pro frames
3055
+ - useLegacyIphonexsmax: Use iPhone XS Max instead of iPhone 11 Pro Max frames
2852
3056
  - forceOrientationBlock: [Advanced] A block to customize your screenshots' device orientation
2853
3057
  - debugMode: Output debug information in framed screenshots
2854
3058
  - resume: Resume frameit instead of reprocessing all screenshots
3059
+ - usePlatform: Choose a platform, the valid options are IOS, ANDROID and ANY (IOS is default to ensure backward compatibility)
2855
3060
  - path: The path to the directory containing the screenshots
2856
3061
 
2857
3062
  Uses [frameit](https://docs.fastlane.tools/actions/frameit/) to prepare perfect screenshots for the App Store, your website, QA or emails.
@@ -2864,10 +3069,15 @@ func frameit(white: Bool? = nil,
2864
3069
  forceDeviceType: String? = nil,
2865
3070
  useLegacyIphone5s: Bool = false,
2866
3071
  useLegacyIphone6s: Bool = false,
3072
+ useLegacyIphone7: Bool = false,
2867
3073
  useLegacyIphonex: Bool = false,
3074
+ useLegacyIphonexr: Bool = false,
3075
+ useLegacyIphonexs: Bool = false,
3076
+ useLegacyIphonexsmax: Bool = false,
2868
3077
  forceOrientationBlock: String? = nil,
2869
3078
  debugMode: Bool = false,
2870
3079
  resume: Bool = false,
3080
+ usePlatform: String = "IOS",
2871
3081
  path: String = "./") {
2872
3082
  let command = RubyCommand(commandID: "", methodName: "frameit", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
2873
3083
  RubyCommand.Argument(name: "silver", value: silver),
@@ -2876,10 +3086,15 @@ func frameit(white: Bool? = nil,
2876
3086
  RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
2877
3087
  RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
2878
3088
  RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
3089
+ RubyCommand.Argument(name: "use_legacy_iphone7", value: useLegacyIphone7),
2879
3090
  RubyCommand.Argument(name: "use_legacy_iphonex", value: useLegacyIphonex),
3091
+ RubyCommand.Argument(name: "use_legacy_iphonexr", value: useLegacyIphonexr),
3092
+ RubyCommand.Argument(name: "use_legacy_iphonexs", value: useLegacyIphonexs),
3093
+ RubyCommand.Argument(name: "use_legacy_iphonexsmax", value: useLegacyIphonexsmax),
2880
3094
  RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
2881
3095
  RubyCommand.Argument(name: "debug_mode", value: debugMode),
2882
3096
  RubyCommand.Argument(name: "resume", value: resume),
3097
+ RubyCommand.Argument(name: "use_platform", value: usePlatform),
2883
3098
  RubyCommand.Argument(name: "path", value: path)])
2884
3099
  _ = runner.executeCommand(command)
2885
3100
  }
@@ -2932,6 +3147,7 @@ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
2932
3147
 
2933
3148
  - parameters:
2934
3149
  - development: Create a development certificate instead of a distribution one
3150
+ - type: Create specific certificate type (takes precedence over :development)
2935
3151
  - force: Create a certificate even if an existing certificate exists
2936
3152
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
2937
3153
  - username: Your Apple ID Username
@@ -2947,6 +3163,7 @@ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
2947
3163
  Use this action to download the latest code signing identity.
2948
3164
  */
2949
3165
  func getCertificates(development: Bool = false,
3166
+ type: String? = nil,
2950
3167
  force: Bool = false,
2951
3168
  generateAppleCerts: Bool = true,
2952
3169
  username: String,
@@ -2956,8 +3173,9 @@ func getCertificates(development: Bool = false,
2956
3173
  outputPath: String = ".",
2957
3174
  keychainPath: String,
2958
3175
  keychainPassword: String? = nil,
2959
- platform: Any = "ios") {
3176
+ platform: String = "ios") {
2960
3177
  let command = RubyCommand(commandID: "", methodName: "get_certificates", className: nil, args: [RubyCommand.Argument(name: "development", value: development),
3178
+ RubyCommand.Argument(name: "type", value: type),
2961
3179
  RubyCommand.Argument(name: "force", value: force),
2962
3180
  RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
2963
3181
  RubyCommand.Argument(name: "username", value: username),
@@ -3419,6 +3637,7 @@ func googlePlayTrackVersionCodes(packageName: String,
3419
3637
  - task: The gradle task you want to execute, e.g. `assemble`, `bundle` or `test`. For tasks such as `assembleMyFlavorRelease` you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release')
3420
3638
  - flavor: The flavor that you want the task for, e.g. `MyFlavor`. If you are running the `assemble` task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined
3421
3639
  - buildType: The build type that you want the task for, e.g. `Release`. Useful for some tasks such as `assemble`
3640
+ - tasks: The multiple gradle tasks that you want to execute, e.g. `[assembleDebug, bundleDebug]`
3422
3641
  - flags: All parameter flags you want to pass to the gradle command, e.g. `--exitcode --xml file.xml`
3423
3642
  - projectDir: The root directory of the gradle project
3424
3643
  - gradlePath: The path to your `gradlew`. If you specify a relative path, it is assumed to be relative to the `project_dir`
@@ -3432,9 +3651,10 @@ func googlePlayTrackVersionCodes(packageName: String,
3432
3651
 
3433
3652
  Run `./gradlew tasks` to get a list of all available gradle tasks for your project
3434
3653
  */
3435
- func gradle(task: String,
3654
+ func gradle(task: String? = nil,
3436
3655
  flavor: String? = nil,
3437
3656
  buildType: String? = nil,
3657
+ tasks: [String]? = nil,
3438
3658
  flags: String? = nil,
3439
3659
  projectDir: String = ".",
3440
3660
  gradlePath: String? = nil,
@@ -3446,6 +3666,7 @@ func gradle(task: String,
3446
3666
  let command = RubyCommand(commandID: "", methodName: "gradle", className: nil, args: [RubyCommand.Argument(name: "task", value: task),
3447
3667
  RubyCommand.Argument(name: "flavor", value: flavor),
3448
3668
  RubyCommand.Argument(name: "build_type", value: buildType),
3669
+ RubyCommand.Argument(name: "tasks", value: tasks),
3449
3670
  RubyCommand.Argument(name: "flags", value: flags),
3450
3671
  RubyCommand.Argument(name: "project_dir", value: projectDir),
3451
3672
  RubyCommand.Argument(name: "gradle_path", value: gradlePath),
@@ -3458,7 +3679,7 @@ func gradle(task: String,
3458
3679
  }
3459
3680
 
3460
3681
  /**
3461
- Alias for the `build_ios_app` action
3682
+ Alias for the `build_app` action
3462
3683
 
3463
3684
  - parameters:
3464
3685
  - workspace: Path to the workspace file
@@ -3471,6 +3692,7 @@ func gradle(task: String,
3471
3692
  - silent: Hide all information that's not necessary while building
3472
3693
  - codesigningIdentity: The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'
3473
3694
  - skipPackageIpa: Should we skip packaging the ipa?
3695
+ - skipPackagePkg: Should we skip packaging the pkg?
3474
3696
  - includeSymbols: Should the ipa file include symbols?
3475
3697
  - includeBitcode: Should the ipa file include bitcode?
3476
3698
  - exportMethod: Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
@@ -3479,6 +3701,8 @@ func gradle(task: String,
3479
3701
  - skipBuildArchive: Export ipa from previously built xcarchive. Uses archive_path as source
3480
3702
  - skipArchive: After building, don't archive, effectively not including -archivePath param
3481
3703
  - skipCodesigning: Build without codesigning
3704
+ - catalystPlatform: Platform to build when using a Catalyst enabled app. Valid values are: ios, macos
3705
+ - installerCertName: Full name of 3rd Party Mac Developer Installer or Deveoper ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`
3482
3706
  - buildPath: The directory in which the archive should be stored in
3483
3707
  - archivePath: The path to the created archive
3484
3708
  - derivedDataPath: The directory where built products and other derived data will go
@@ -3501,6 +3725,7 @@ func gradle(task: String,
3501
3725
  - analyzeBuildTime: Analyze the project build time and store the output in 'culprits.txt' file
3502
3726
  - xcprettyUtf: Have xcpretty use unicode encoding when reporting builds
3503
3727
  - skipProfileDetection: Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used
3728
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
3504
3729
 
3505
3730
  - returns: The absolute path to the generated ipa file
3506
3731
 
@@ -3516,6 +3741,7 @@ func gym(workspace: Any? = gymfile.workspace,
3516
3741
  silent: Bool = gymfile.silent,
3517
3742
  codesigningIdentity: Any? = gymfile.codesigningIdentity,
3518
3743
  skipPackageIpa: Bool = gymfile.skipPackageIpa,
3744
+ skipPackagePkg: Bool = gymfile.skipPackagePkg,
3519
3745
  includeSymbols: Bool? = gymfile.includeSymbols,
3520
3746
  includeBitcode: Bool? = gymfile.includeBitcode,
3521
3747
  exportMethod: Any? = gymfile.exportMethod,
@@ -3524,6 +3750,8 @@ func gym(workspace: Any? = gymfile.workspace,
3524
3750
  skipBuildArchive: Bool? = gymfile.skipBuildArchive,
3525
3751
  skipArchive: Bool? = gymfile.skipArchive,
3526
3752
  skipCodesigning: Bool? = gymfile.skipCodesigning,
3753
+ catalystPlatform: Any? = gymfile.catalystPlatform,
3754
+ installerCertName: Any? = gymfile.installerCertName,
3527
3755
  buildPath: Any? = gymfile.buildPath,
3528
3756
  archivePath: Any? = gymfile.archivePath,
3529
3757
  derivedDataPath: Any? = gymfile.derivedDataPath,
@@ -3545,7 +3773,8 @@ func gym(workspace: Any? = gymfile.workspace,
3545
3773
  xcprettyReportJson: Any? = gymfile.xcprettyReportJson,
3546
3774
  analyzeBuildTime: Bool? = gymfile.analyzeBuildTime,
3547
3775
  xcprettyUtf: Bool? = gymfile.xcprettyUtf,
3548
- skipProfileDetection: Bool = gymfile.skipProfileDetection) {
3776
+ skipProfileDetection: Bool = gymfile.skipProfileDetection,
3777
+ clonedSourcePackagesPath: Any? = gymfile.clonedSourcePackagesPath) {
3549
3778
  let command = RubyCommand(commandID: "", methodName: "gym", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
3550
3779
  RubyCommand.Argument(name: "project", value: project),
3551
3780
  RubyCommand.Argument(name: "scheme", value: scheme),
@@ -3556,6 +3785,7 @@ func gym(workspace: Any? = gymfile.workspace,
3556
3785
  RubyCommand.Argument(name: "silent", value: silent),
3557
3786
  RubyCommand.Argument(name: "codesigning_identity", value: codesigningIdentity),
3558
3787
  RubyCommand.Argument(name: "skip_package_ipa", value: skipPackageIpa),
3788
+ RubyCommand.Argument(name: "skip_package_pkg", value: skipPackagePkg),
3559
3789
  RubyCommand.Argument(name: "include_symbols", value: includeSymbols),
3560
3790
  RubyCommand.Argument(name: "include_bitcode", value: includeBitcode),
3561
3791
  RubyCommand.Argument(name: "export_method", value: exportMethod),
@@ -3564,6 +3794,8 @@ func gym(workspace: Any? = gymfile.workspace,
3564
3794
  RubyCommand.Argument(name: "skip_build_archive", value: skipBuildArchive),
3565
3795
  RubyCommand.Argument(name: "skip_archive", value: skipArchive),
3566
3796
  RubyCommand.Argument(name: "skip_codesigning", value: skipCodesigning),
3797
+ RubyCommand.Argument(name: "catalyst_platform", value: catalystPlatform),
3798
+ RubyCommand.Argument(name: "installer_cert_name", value: installerCertName),
3567
3799
  RubyCommand.Argument(name: "build_path", value: buildPath),
3568
3800
  RubyCommand.Argument(name: "archive_path", value: archivePath),
3569
3801
  RubyCommand.Argument(name: "derived_data_path", value: derivedDataPath),
@@ -3585,7 +3817,8 @@ func gym(workspace: Any? = gymfile.workspace,
3585
3817
  RubyCommand.Argument(name: "xcpretty_report_json", value: xcprettyReportJson),
3586
3818
  RubyCommand.Argument(name: "analyze_build_time", value: analyzeBuildTime),
3587
3819
  RubyCommand.Argument(name: "xcpretty_utf", value: xcprettyUtf),
3588
- RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection)])
3820
+ RubyCommand.Argument(name: "skip_profile_detection", value: skipProfileDetection),
3821
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
3589
3822
  _ = runner.executeCommand(command)
3590
3823
  }
3591
3824
 
@@ -4077,10 +4310,13 @@ func jira(url: String,
4077
4310
  /**
4078
4311
  Get the most recent git tag
4079
4312
 
4313
+ - parameter pattern: Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied
4314
+
4080
4315
  If you are using this action on a **shallow clone**, *the default with some CI systems like Bamboo*, you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue `sh('git fetch --tags')`.
4316
+ Pattern parameter allows you to filter to a subset of tags.
4081
4317
  */
4082
- @discardableResult func lastGitTag() -> String {
4083
- let command = RubyCommand(commandID: "", methodName: "last_git_tag", className: nil, args: [])
4318
+ @discardableResult func lastGitTag(pattern: String? = nil) -> String {
4319
+ let command = RubyCommand(commandID: "", methodName: "last_git_tag", className: nil, args: [RubyCommand.Argument(name: "pattern", value: pattern)])
4084
4320
  return runner.executeCommand(command)
4085
4321
  }
4086
4322
 
@@ -4217,7 +4453,8 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
4217
4453
  Alias for the `sync_code_signing` action
4218
4454
 
4219
4455
  - parameters:
4220
- - type: Define the profile type, can be appstore, adhoc, development, enterprise
4456
+ - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
4457
+ - additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
4221
4458
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
4222
4459
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
4223
4460
  - skipProvisioningProfiles: Skip syncing provisioning profiles
@@ -4237,13 +4474,17 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
4237
4474
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
4238
4475
  - googleCloudKeysFile: Path to the gc_keys.json file
4239
4476
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
4477
+ - s3Region: Name of the S3 region
4478
+ - s3AccessKey: S3 access key
4479
+ - s3SecretAccessKey: S3 secret secret access key
4480
+ - s3Bucket: Name of the S3 bucket
4240
4481
  - keychainName: Keychain the items should be imported to
4241
4482
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
4242
4483
  - force: Renew the provisioning profiles every time you run match
4243
4484
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
4244
4485
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
4245
4486
  - skipDocs: Skip generation of a README.md for the created git repository
4246
- - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos)
4487
+ - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
4247
4488
  - templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
4248
4489
  - outputPath: Path in which to export certificates, key and profile
4249
4490
  - verbose: Print out extra information and all commands
@@ -4251,6 +4492,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
4251
4492
  More information: https://docs.fastlane.tools/actions/match/
4252
4493
  */
4253
4494
  func match(type: Any = matchfile.type,
4495
+ additionalCertTypes: [String]? = matchfile.additionalCertTypes,
4254
4496
  readonly: Bool = matchfile.readonly,
4255
4497
  generateAppleCerts: Bool = matchfile.generateAppleCerts,
4256
4498
  skipProvisioningProfiles: Bool = matchfile.skipProvisioningProfiles,
@@ -4270,6 +4512,10 @@ func match(type: Any = matchfile.type,
4270
4512
  googleCloudBucketName: Any? = matchfile.googleCloudBucketName,
4271
4513
  googleCloudKeysFile: Any? = matchfile.googleCloudKeysFile,
4272
4514
  googleCloudProjectId: Any? = matchfile.googleCloudProjectId,
4515
+ s3Region: Any? = matchfile.s3Region,
4516
+ s3AccessKey: Any? = matchfile.s3AccessKey,
4517
+ s3SecretAccessKey: Any? = matchfile.s3SecretAccessKey,
4518
+ s3Bucket: Any? = matchfile.s3Bucket,
4273
4519
  keychainName: Any = matchfile.keychainName,
4274
4520
  keychainPassword: Any? = matchfile.keychainPassword,
4275
4521
  force: Bool = matchfile.force,
@@ -4281,6 +4527,7 @@ func match(type: Any = matchfile.type,
4281
4527
  outputPath: Any? = matchfile.outputPath,
4282
4528
  verbose: Bool = matchfile.verbose) {
4283
4529
  let command = RubyCommand(commandID: "", methodName: "match", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
4530
+ RubyCommand.Argument(name: "additional_cert_types", value: additionalCertTypes),
4284
4531
  RubyCommand.Argument(name: "readonly", value: readonly),
4285
4532
  RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
4286
4533
  RubyCommand.Argument(name: "skip_provisioning_profiles", value: skipProvisioningProfiles),
@@ -4300,6 +4547,10 @@ func match(type: Any = matchfile.type,
4300
4547
  RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
4301
4548
  RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
4302
4549
  RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
4550
+ RubyCommand.Argument(name: "s3_region", value: s3Region),
4551
+ RubyCommand.Argument(name: "s3_access_key", value: s3AccessKey),
4552
+ RubyCommand.Argument(name: "s3_secret_access_key", value: s3SecretAccessKey),
4553
+ RubyCommand.Argument(name: "s3_bucket", value: s3Bucket),
4303
4554
  RubyCommand.Argument(name: "keychain_name", value: keychainName),
4304
4555
  RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
4305
4556
  RubyCommand.Argument(name: "force", value: force),
@@ -4408,6 +4659,35 @@ func nexusUpload(file: String,
4408
4659
  _ = runner.executeCommand(command)
4409
4660
  }
4410
4661
 
4662
+ /**
4663
+ Notarizes a macOS app
4664
+
4665
+ - parameters:
4666
+ - package: Path to package to notarize, e.g. .app bundle or disk image
4667
+ - tryEarlyStapling: Whether to try early stapling while the notarization request is in progress
4668
+ - bundleId: Bundle identifier to uniquely identify the package
4669
+ - username: Apple ID username
4670
+ - ascProvider: Provider short name for accounts associated with multiple providers
4671
+ - printLog: Whether to print notarization log file, listing issues on failure and warnings on success
4672
+ - verbose: Whether to log requests
4673
+ */
4674
+ func notarize(package: String,
4675
+ tryEarlyStapling: Bool = false,
4676
+ bundleId: String? = nil,
4677
+ username: String,
4678
+ ascProvider: String? = nil,
4679
+ printLog: Bool = false,
4680
+ verbose: Bool = false) {
4681
+ let command = RubyCommand(commandID: "", methodName: "notarize", className: nil, args: [RubyCommand.Argument(name: "package", value: package),
4682
+ RubyCommand.Argument(name: "try_early_stapling", value: tryEarlyStapling),
4683
+ RubyCommand.Argument(name: "bundle_id", value: bundleId),
4684
+ RubyCommand.Argument(name: "username", value: username),
4685
+ RubyCommand.Argument(name: "asc_provider", value: ascProvider),
4686
+ RubyCommand.Argument(name: "print_log", value: printLog),
4687
+ RubyCommand.Argument(name: "verbose", value: verbose)])
4688
+ _ = runner.executeCommand(command)
4689
+ }
4690
+
4411
4691
  /**
4412
4692
  Display a macOS notification with custom message and title
4413
4693
 
@@ -4667,7 +4947,7 @@ func pem(development: Bool = false,
4667
4947
  - localizedBuildInfo: Localized beta app test info for what's new
4668
4948
  - changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
4669
4949
  - skipSubmission: Skip the distributing action of pilot and only upload the ipa file
4670
- - skipWaitingForBuildProcessing: Don't wait for the build to process. If set to true, the changelog won't be set, `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan)
4950
+ - skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
4671
4951
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
4672
4952
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
4673
4953
  - distributeExternal: Should the build be distributed to external testers?
@@ -5354,6 +5634,7 @@ func rubyVersion() {
5354
5634
  - skipDetectDevices: Should skip auto detecting of devices if none were specified
5355
5635
  - forceQuitSimulator: Enabling this option will automatically killall Simulator processes before the run
5356
5636
  - resetSimulator: Enabling this option will automatically erase the simulator before running the application
5637
+ - disableSlideToType: Enabling this option will disable the simulator from showing the 'Slide to type' prompt
5357
5638
  - prelaunchSimulator: Enabling this option will launch the first simulator prior to calling any xcodebuild command
5358
5639
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
5359
5640
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -5379,6 +5660,7 @@ func rubyVersion() {
5379
5660
  - shouldZipBuildProducts: Should zip the derived data build products and place in output path?
5380
5661
  - resultBundle: Should an Xcode result bundle be generated in the output directory
5381
5662
  - useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
5663
+ - concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
5382
5664
  - maxConcurrentSimulators: Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations
5383
5665
  - disableConcurrentTesting: Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing
5384
5666
  - skipBuild: Should debug build be skipped before test build?
@@ -5388,6 +5670,8 @@ func rubyVersion() {
5388
5670
  - configuration: The configuration to use when building the app. Defaults to 'Release'
5389
5671
  - xcargs: Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
5390
5672
  - xcconfig: Use an extra XCCONFIG file to build your app
5673
+ - appName: App name to use in slack message and logfile name
5674
+ - deploymentTargetVersion: Target version of the app being build or tested. Used to filter out simulator version
5391
5675
  - slackUrl: Create an Incoming WebHook for your Slack group to post results there
5392
5676
  - slackChannel: #channel or @username
5393
5677
  - slackMessage: The message included with each message posted to slack
@@ -5399,6 +5683,7 @@ func rubyVersion() {
5399
5683
  - destination: Use only if you're a pro, use the other options instead
5400
5684
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
5401
5685
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
5686
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
5402
5687
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
5403
5688
 
5404
5689
  More information: https://docs.fastlane.tools/actions/scan/
@@ -5411,6 +5696,7 @@ func runTests(workspace: String? = nil,
5411
5696
  skipDetectDevices: Bool = false,
5412
5697
  forceQuitSimulator: Bool = false,
5413
5698
  resetSimulator: Bool = false,
5699
+ disableSlideToType: Bool = true,
5414
5700
  prelaunchSimulator: Bool? = nil,
5415
5701
  reinstallApp: Bool = false,
5416
5702
  appIdentifier: String? = nil,
@@ -5436,6 +5722,7 @@ func runTests(workspace: String? = nil,
5436
5722
  shouldZipBuildProducts: Bool = false,
5437
5723
  resultBundle: Bool = false,
5438
5724
  useClangReportName: Bool = false,
5725
+ concurrentWorkers: Int? = nil,
5439
5726
  maxConcurrentSimulators: Int? = nil,
5440
5727
  disableConcurrentTesting: Bool = false,
5441
5728
  skipBuild: Bool = false,
@@ -5445,6 +5732,8 @@ func runTests(workspace: String? = nil,
5445
5732
  configuration: String? = nil,
5446
5733
  xcargs: String? = nil,
5447
5734
  xcconfig: String? = nil,
5735
+ appName: String? = nil,
5736
+ deploymentTargetVersion: String? = nil,
5448
5737
  slackUrl: String? = nil,
5449
5738
  slackChannel: String? = nil,
5450
5739
  slackMessage: String? = nil,
@@ -5456,6 +5745,7 @@ func runTests(workspace: String? = nil,
5456
5745
  destination: Any? = nil,
5457
5746
  customReportFileName: String? = nil,
5458
5747
  xcodebuildCommand: String = "env NSUnbufferedIO=YES xcodebuild",
5748
+ clonedSourcePackagesPath: String? = nil,
5459
5749
  failBuild: Bool = true) {
5460
5750
  let command = RubyCommand(commandID: "", methodName: "run_tests", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
5461
5751
  RubyCommand.Argument(name: "project", value: project),
@@ -5465,6 +5755,7 @@ func runTests(workspace: String? = nil,
5465
5755
  RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
5466
5756
  RubyCommand.Argument(name: "force_quit_simulator", value: forceQuitSimulator),
5467
5757
  RubyCommand.Argument(name: "reset_simulator", value: resetSimulator),
5758
+ RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
5468
5759
  RubyCommand.Argument(name: "prelaunch_simulator", value: prelaunchSimulator),
5469
5760
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
5470
5761
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
@@ -5490,6 +5781,7 @@ func runTests(workspace: String? = nil,
5490
5781
  RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
5491
5782
  RubyCommand.Argument(name: "result_bundle", value: resultBundle),
5492
5783
  RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
5784
+ RubyCommand.Argument(name: "concurrent_workers", value: concurrentWorkers),
5493
5785
  RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
5494
5786
  RubyCommand.Argument(name: "disable_concurrent_testing", value: disableConcurrentTesting),
5495
5787
  RubyCommand.Argument(name: "skip_build", value: skipBuild),
@@ -5499,6 +5791,8 @@ func runTests(workspace: String? = nil,
5499
5791
  RubyCommand.Argument(name: "configuration", value: configuration),
5500
5792
  RubyCommand.Argument(name: "xcargs", value: xcargs),
5501
5793
  RubyCommand.Argument(name: "xcconfig", value: xcconfig),
5794
+ RubyCommand.Argument(name: "app_name", value: appName),
5795
+ RubyCommand.Argument(name: "deployment_target_version", value: deploymentTargetVersion),
5502
5796
  RubyCommand.Argument(name: "slack_url", value: slackUrl),
5503
5797
  RubyCommand.Argument(name: "slack_channel", value: slackChannel),
5504
5798
  RubyCommand.Argument(name: "slack_message", value: slackMessage),
@@ -5510,6 +5804,7 @@ func runTests(workspace: String? = nil,
5510
5804
  RubyCommand.Argument(name: "destination", value: destination),
5511
5805
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
5512
5806
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
5807
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
5513
5808
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
5514
5809
  _ = runner.executeCommand(command)
5515
5810
  }
@@ -5600,6 +5895,7 @@ func say(text: Any,
5600
5895
  - skipDetectDevices: Should skip auto detecting of devices if none were specified
5601
5896
  - forceQuitSimulator: Enabling this option will automatically killall Simulator processes before the run
5602
5897
  - resetSimulator: Enabling this option will automatically erase the simulator before running the application
5898
+ - disableSlideToType: Enabling this option will disable the simulator from showing the 'Slide to type' prompt
5603
5899
  - prelaunchSimulator: Enabling this option will launch the first simulator prior to calling any xcodebuild command
5604
5900
  - reinstallApp: Enabling this option will automatically uninstall the application before running it
5605
5901
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -5625,6 +5921,7 @@ func say(text: Any,
5625
5921
  - shouldZipBuildProducts: Should zip the derived data build products and place in output path?
5626
5922
  - resultBundle: Should an Xcode result bundle be generated in the output directory
5627
5923
  - useClangReportName: Generate the json compilation database with clang naming convention (compile_commands.json)
5924
+ - concurrentWorkers: Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count
5628
5925
  - maxConcurrentSimulators: Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations
5629
5926
  - disableConcurrentTesting: Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing
5630
5927
  - skipBuild: Should debug build be skipped before test build?
@@ -5634,6 +5931,8 @@ func say(text: Any,
5634
5931
  - configuration: The configuration to use when building the app. Defaults to 'Release'
5635
5932
  - xcargs: Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS="-ObjC -lstdc++"
5636
5933
  - xcconfig: Use an extra XCCONFIG file to build your app
5934
+ - appName: App name to use in slack message and logfile name
5935
+ - deploymentTargetVersion: Target version of the app being build or tested. Used to filter out simulator version
5637
5936
  - slackUrl: Create an Incoming WebHook for your Slack group to post results there
5638
5937
  - slackChannel: #channel or @username
5639
5938
  - slackMessage: The message included with each message posted to slack
@@ -5645,6 +5944,7 @@ func say(text: Any,
5645
5944
  - destination: Use only if you're a pro, use the other options instead
5646
5945
  - customReportFileName: **DEPRECATED!** Use `--output_files` instead - Sets custom full report file name when generating a single report
5647
5946
  - xcodebuildCommand: Allows for override of the default `xcodebuild` command
5947
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
5648
5948
  - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer
5649
5949
 
5650
5950
  More information: https://docs.fastlane.tools/actions/scan/
@@ -5657,6 +5957,7 @@ func scan(workspace: Any? = scanfile.workspace,
5657
5957
  skipDetectDevices: Bool = scanfile.skipDetectDevices,
5658
5958
  forceQuitSimulator: Bool = scanfile.forceQuitSimulator,
5659
5959
  resetSimulator: Bool = scanfile.resetSimulator,
5960
+ disableSlideToType: Bool = scanfile.disableSlideToType,
5660
5961
  prelaunchSimulator: Bool? = scanfile.prelaunchSimulator,
5661
5962
  reinstallApp: Bool = scanfile.reinstallApp,
5662
5963
  appIdentifier: Any? = scanfile.appIdentifier,
@@ -5682,6 +5983,7 @@ func scan(workspace: Any? = scanfile.workspace,
5682
5983
  shouldZipBuildProducts: Bool = scanfile.shouldZipBuildProducts,
5683
5984
  resultBundle: Bool = scanfile.resultBundle,
5684
5985
  useClangReportName: Bool = scanfile.useClangReportName,
5986
+ concurrentWorkers: Int? = scanfile.concurrentWorkers,
5685
5987
  maxConcurrentSimulators: Int? = scanfile.maxConcurrentSimulators,
5686
5988
  disableConcurrentTesting: Bool = scanfile.disableConcurrentTesting,
5687
5989
  skipBuild: Bool = scanfile.skipBuild,
@@ -5691,6 +5993,8 @@ func scan(workspace: Any? = scanfile.workspace,
5691
5993
  configuration: Any? = scanfile.configuration,
5692
5994
  xcargs: Any? = scanfile.xcargs,
5693
5995
  xcconfig: Any? = scanfile.xcconfig,
5996
+ appName: Any? = scanfile.appName,
5997
+ deploymentTargetVersion: Any? = scanfile.deploymentTargetVersion,
5694
5998
  slackUrl: Any? = scanfile.slackUrl,
5695
5999
  slackChannel: Any? = scanfile.slackChannel,
5696
6000
  slackMessage: Any? = scanfile.slackMessage,
@@ -5702,6 +6006,7 @@ func scan(workspace: Any? = scanfile.workspace,
5702
6006
  destination: Any? = scanfile.destination,
5703
6007
  customReportFileName: Any? = scanfile.customReportFileName,
5704
6008
  xcodebuildCommand: Any = scanfile.xcodebuildCommand,
6009
+ clonedSourcePackagesPath: Any? = scanfile.clonedSourcePackagesPath,
5705
6010
  failBuild: Bool = scanfile.failBuild) {
5706
6011
  let command = RubyCommand(commandID: "", methodName: "scan", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
5707
6012
  RubyCommand.Argument(name: "project", value: project),
@@ -5711,6 +6016,7 @@ func scan(workspace: Any? = scanfile.workspace,
5711
6016
  RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
5712
6017
  RubyCommand.Argument(name: "force_quit_simulator", value: forceQuitSimulator),
5713
6018
  RubyCommand.Argument(name: "reset_simulator", value: resetSimulator),
6019
+ RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
5714
6020
  RubyCommand.Argument(name: "prelaunch_simulator", value: prelaunchSimulator),
5715
6021
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
5716
6022
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
@@ -5736,6 +6042,7 @@ func scan(workspace: Any? = scanfile.workspace,
5736
6042
  RubyCommand.Argument(name: "should_zip_build_products", value: shouldZipBuildProducts),
5737
6043
  RubyCommand.Argument(name: "result_bundle", value: resultBundle),
5738
6044
  RubyCommand.Argument(name: "use_clang_report_name", value: useClangReportName),
6045
+ RubyCommand.Argument(name: "concurrent_workers", value: concurrentWorkers),
5739
6046
  RubyCommand.Argument(name: "max_concurrent_simulators", value: maxConcurrentSimulators),
5740
6047
  RubyCommand.Argument(name: "disable_concurrent_testing", value: disableConcurrentTesting),
5741
6048
  RubyCommand.Argument(name: "skip_build", value: skipBuild),
@@ -5745,6 +6052,8 @@ func scan(workspace: Any? = scanfile.workspace,
5745
6052
  RubyCommand.Argument(name: "configuration", value: configuration),
5746
6053
  RubyCommand.Argument(name: "xcargs", value: xcargs),
5747
6054
  RubyCommand.Argument(name: "xcconfig", value: xcconfig),
6055
+ RubyCommand.Argument(name: "app_name", value: appName),
6056
+ RubyCommand.Argument(name: "deployment_target_version", value: deploymentTargetVersion),
5748
6057
  RubyCommand.Argument(name: "slack_url", value: slackUrl),
5749
6058
  RubyCommand.Argument(name: "slack_channel", value: slackChannel),
5750
6059
  RubyCommand.Argument(name: "slack_message", value: slackMessage),
@@ -5756,6 +6065,7 @@ func scan(workspace: Any? = scanfile.workspace,
5756
6065
  RubyCommand.Argument(name: "destination", value: destination),
5757
6066
  RubyCommand.Argument(name: "custom_report_file_name", value: customReportFileName),
5758
6067
  RubyCommand.Argument(name: "xcodebuild_command", value: xcodebuildCommand),
6068
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath),
5759
6069
  RubyCommand.Argument(name: "fail_build", value: failBuild)])
5760
6070
  _ = runner.executeCommand(command)
5761
6071
  }
@@ -5942,7 +6252,7 @@ Access things like 'html_url', 'tag_name', 'name', 'body'
5942
6252
  description: String? = nil,
5943
6253
  isDraft: Bool = false,
5944
6254
  isPrerelease: Bool = false,
5945
- uploadAssets: [String]? = nil) -> [String : String] {
6255
+ uploadAssets: [String]? = nil) -> [String : Any] {
5946
6256
  let command = RubyCommand(commandID: "", methodName: "set_github_release", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
5947
6257
  RubyCommand.Argument(name: "server_url", value: serverUrl),
5948
6258
  RubyCommand.Argument(name: "api_token", value: apiToken),
@@ -6006,7 +6316,7 @@ func setPodKey(useBundleExec: Bool = true,
6006
6316
 
6007
6317
  - parameters:
6008
6318
  - force: Force setup, even if not executed by CI
6009
- - provider: CI provider
6319
+ - provider: CI provider. If none is set, the provider is detected automatically
6010
6320
 
6011
6321
  - Creates a new temporary keychain for use with match|
6012
6322
  - Switches match to `readonly` mode to not create new profiles/cert on CI|
@@ -6429,6 +6739,8 @@ func slather(buildDirectory: String? = nil,
6429
6739
  - testTargetName: The name of the target you want to test (if you desire to override the Target Application from Xcode)
6430
6740
  - namespaceLogFiles: Separate the log files per device and per language
6431
6741
  - concurrentSimulators: Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9
6742
+ - disableSlideToType: Disable the simulator from showing the 'Slide to type' prompt
6743
+ - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies
6432
6744
  */
6433
6745
  func snapshot(workspace: Any? = snapshotfile.workspace,
6434
6746
  project: Any? = snapshotfile.project,
@@ -6463,7 +6775,9 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6463
6775
  resultBundle: Bool = snapshotfile.resultBundle,
6464
6776
  testTargetName: Any? = snapshotfile.testTargetName,
6465
6777
  namespaceLogFiles: Any? = snapshotfile.namespaceLogFiles,
6466
- concurrentSimulators: Bool = snapshotfile.concurrentSimulators) {
6778
+ concurrentSimulators: Bool = snapshotfile.concurrentSimulators,
6779
+ disableSlideToType: Bool = snapshotfile.disableSlideToType,
6780
+ clonedSourcePackagesPath: Any? = snapshotfile.clonedSourcePackagesPath) {
6467
6781
  let command = RubyCommand(commandID: "", methodName: "snapshot", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
6468
6782
  RubyCommand.Argument(name: "project", value: project),
6469
6783
  RubyCommand.Argument(name: "xcargs", value: xcargs),
@@ -6497,7 +6811,9 @@ func snapshot(workspace: Any? = snapshotfile.workspace,
6497
6811
  RubyCommand.Argument(name: "result_bundle", value: resultBundle),
6498
6812
  RubyCommand.Argument(name: "test_target_name", value: testTargetName),
6499
6813
  RubyCommand.Argument(name: "namespace_log_files", value: namespaceLogFiles),
6500
- RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators)])
6814
+ RubyCommand.Argument(name: "concurrent_simulators", value: concurrentSimulators),
6815
+ RubyCommand.Argument(name: "disable_slide_to_type", value: disableSlideToType),
6816
+ RubyCommand.Argument(name: "cloned_source_packages_path", value: clonedSourcePackagesPath)])
6501
6817
  _ = runner.executeCommand(command)
6502
6818
  }
6503
6819
 
@@ -6629,6 +6945,7 @@ func splunkmint(dsym: String? = nil,
6629
6945
  - xcconfig: Use xcconfig file to override swift package generate-xcodeproj defaults
6630
6946
  - configuration: Build with configuration (debug|release) [default: debug]
6631
6947
  - xcprettyOutput: Specifies the output type for xcpretty. eg. 'test', or 'simple'
6948
+ - xcprettyArgs: Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also
6632
6949
  - verbose: Increase verbosity of informational output
6633
6950
  */
6634
6951
  func spm(command: String = "build",
@@ -6637,6 +6954,7 @@ func spm(command: String = "build",
6637
6954
  xcconfig: String? = nil,
6638
6955
  configuration: String? = nil,
6639
6956
  xcprettyOutput: String? = nil,
6957
+ xcprettyArgs: String? = nil,
6640
6958
  verbose: Bool = false) {
6641
6959
  let command = RubyCommand(commandID: "", methodName: "spm", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
6642
6960
  RubyCommand.Argument(name: "build_path", value: buildPath),
@@ -6644,6 +6962,7 @@ func spm(command: String = "build",
6644
6962
  RubyCommand.Argument(name: "xcconfig", value: xcconfig),
6645
6963
  RubyCommand.Argument(name: "configuration", value: configuration),
6646
6964
  RubyCommand.Argument(name: "xcpretty_output", value: xcprettyOutput),
6965
+ RubyCommand.Argument(name: "xcpretty_args", value: xcprettyArgs),
6647
6966
  RubyCommand.Argument(name: "verbose", value: verbose)])
6648
6967
  _ = runner.executeCommand(command)
6649
6968
  }
@@ -6723,7 +7042,7 @@ func supply(packageName: String,
6723
7042
  releaseStatus: String = "completed",
6724
7043
  track: String = "production",
6725
7044
  rollout: String? = nil,
6726
- metadataPath: String? = nil,
7045
+ metadataPath: String = "./metadata",
6727
7046
  key: String? = nil,
6728
7047
  issuer: String? = nil,
6729
7048
  jsonKey: String? = nil,
@@ -6799,7 +7118,8 @@ func supply(packageName: String,
6799
7118
  - strict: Fail on warnings? (true/false)
6800
7119
  - files: List of files to process
6801
7120
  - ignoreExitStatus: Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false)
6802
- - reporter: Choose output reporter
7121
+ - raiseIfSwiftlintError: Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false)
7122
+ - reporter: Choose output reporter. Available: xcode, json, csv, checkstyle, junit, html, emoji, sonarqube, markdown, github-actions-logging
6803
7123
  - quiet: Don't print status logs like 'Linting <file>' & 'Done linting'
6804
7124
  - executable: Path to the `swiftlint` executable on your machine
6805
7125
  - format: Format code when mode is :autocorrect
@@ -6812,6 +7132,7 @@ func swiftlint(mode: Any = "lint",
6812
7132
  strict: Bool = false,
6813
7133
  files: Any? = nil,
6814
7134
  ignoreExitStatus: Bool = false,
7135
+ raiseIfSwiftlintError: Bool = false,
6815
7136
  reporter: String? = nil,
6816
7137
  quiet: Bool = false,
6817
7138
  executable: String? = nil,
@@ -6824,6 +7145,7 @@ func swiftlint(mode: Any = "lint",
6824
7145
  RubyCommand.Argument(name: "strict", value: strict),
6825
7146
  RubyCommand.Argument(name: "files", value: files),
6826
7147
  RubyCommand.Argument(name: "ignore_exit_status", value: ignoreExitStatus),
7148
+ RubyCommand.Argument(name: "raise_if_swiftlint_error", value: raiseIfSwiftlintError),
6827
7149
  RubyCommand.Argument(name: "reporter", value: reporter),
6828
7150
  RubyCommand.Argument(name: "quiet", value: quiet),
6829
7151
  RubyCommand.Argument(name: "executable", value: executable),
@@ -6836,7 +7158,8 @@ func swiftlint(mode: Any = "lint",
6836
7158
  Easily sync your certificates and profiles across your team (via _match_)
6837
7159
 
6838
7160
  - parameters:
6839
- - type: Define the profile type, can be appstore, adhoc, development, enterprise
7161
+ - type: Define the profile type, can be appstore, adhoc, development, enterprise, developer_id
7162
+ - additionalCertTypes: Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer)
6840
7163
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
6841
7164
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
6842
7165
  - skipProvisioningProfiles: Skip syncing provisioning profiles
@@ -6856,13 +7179,17 @@ func swiftlint(mode: Any = "lint",
6856
7179
  - googleCloudBucketName: Name of the Google Cloud Storage bucket to use
6857
7180
  - googleCloudKeysFile: Path to the gc_keys.json file
6858
7181
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
7182
+ - s3Region: Name of the S3 region
7183
+ - s3AccessKey: S3 access key
7184
+ - s3SecretAccessKey: S3 secret secret access key
7185
+ - s3Bucket: Name of the S3 bucket
6859
7186
  - keychainName: Keychain the items should be imported to
6860
7187
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
6861
7188
  - force: Renew the provisioning profiles every time you run match
6862
7189
  - forceForNewDevices: Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile type 'appstore'
6863
7190
  - skipConfirmation: Disables confirmation prompts during nuke, answering them with yes
6864
7191
  - skipDocs: Skip generation of a README.md for the created git repository
6865
- - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos)
7192
+ - platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos)
6866
7193
  - templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
6867
7194
  - outputPath: Path in which to export certificates, key and profile
6868
7195
  - verbose: Print out extra information and all commands
@@ -6870,6 +7197,7 @@ func swiftlint(mode: Any = "lint",
6870
7197
  More information: https://docs.fastlane.tools/actions/match/
6871
7198
  */
6872
7199
  func syncCodeSigning(type: String = "development",
7200
+ additionalCertTypes: [String]? = nil,
6873
7201
  readonly: Bool = false,
6874
7202
  generateAppleCerts: Bool = true,
6875
7203
  skipProvisioningProfiles: Bool = false,
@@ -6889,17 +7217,22 @@ func syncCodeSigning(type: String = "development",
6889
7217
  googleCloudBucketName: String? = nil,
6890
7218
  googleCloudKeysFile: String? = nil,
6891
7219
  googleCloudProjectId: String? = nil,
7220
+ s3Region: String? = nil,
7221
+ s3AccessKey: String? = nil,
7222
+ s3SecretAccessKey: String? = nil,
7223
+ s3Bucket: String? = nil,
6892
7224
  keychainName: String = "login.keychain",
6893
7225
  keychainPassword: String? = nil,
6894
7226
  force: Bool = false,
6895
7227
  forceForNewDevices: Bool = false,
6896
7228
  skipConfirmation: Bool = false,
6897
7229
  skipDocs: Bool = false,
6898
- platform: Any = "ios",
7230
+ platform: String = "ios",
6899
7231
  templateName: String? = nil,
6900
7232
  outputPath: String? = nil,
6901
7233
  verbose: Bool = false) {
6902
7234
  let command = RubyCommand(commandID: "", methodName: "sync_code_signing", className: nil, args: [RubyCommand.Argument(name: "type", value: type),
7235
+ RubyCommand.Argument(name: "additional_cert_types", value: additionalCertTypes),
6903
7236
  RubyCommand.Argument(name: "readonly", value: readonly),
6904
7237
  RubyCommand.Argument(name: "generate_apple_certs", value: generateAppleCerts),
6905
7238
  RubyCommand.Argument(name: "skip_provisioning_profiles", value: skipProvisioningProfiles),
@@ -6919,6 +7252,10 @@ func syncCodeSigning(type: String = "development",
6919
7252
  RubyCommand.Argument(name: "google_cloud_bucket_name", value: googleCloudBucketName),
6920
7253
  RubyCommand.Argument(name: "google_cloud_keys_file", value: googleCloudKeysFile),
6921
7254
  RubyCommand.Argument(name: "google_cloud_project_id", value: googleCloudProjectId),
7255
+ RubyCommand.Argument(name: "s3_region", value: s3Region),
7256
+ RubyCommand.Argument(name: "s3_access_key", value: s3AccessKey),
7257
+ RubyCommand.Argument(name: "s3_secret_access_key", value: s3SecretAccessKey),
7258
+ RubyCommand.Argument(name: "s3_bucket", value: s3Bucket),
6922
7259
  RubyCommand.Argument(name: "keychain_name", value: keychainName),
6923
7260
  RubyCommand.Argument(name: "keychain_password", value: keychainPassword),
6924
7261
  RubyCommand.Argument(name: "force", value: force),
@@ -7014,7 +7351,7 @@ func testfairy(apiKey: String,
7014
7351
  - localizedBuildInfo: Localized beta app test info for what's new
7015
7352
  - changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
7016
7353
  - skipSubmission: Skip the distributing action of pilot and only upload the ipa file
7017
- - skipWaitingForBuildProcessing: Don't wait for the build to process. If set to true, the changelog won't be set, `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan)
7354
+ - skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
7018
7355
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
7019
7356
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
7020
7357
  - distributeExternal: Should the build be distributed to external testers?
@@ -7316,7 +7653,7 @@ func updateKeychainAccessGroups(entitlementsFile: String,
7316
7653
  - plistPath: Path to plist file
7317
7654
  - block: A block to process plist with custom logic
7318
7655
 
7319
- This action allows you to modify any `plist` file.
7656
+ This action allows you to modify any value inside any `plist` file.
7320
7657
  */
7321
7658
  func updatePlist(plistPath: String? = nil,
7322
7659
  block: Any) {
@@ -7453,6 +7790,7 @@ func updateUrlSchemes(path: String,
7453
7790
  - dsymPaths: Paths to the DSYM files or zips to upload
7454
7791
  - apiToken: Crashlytics API Key
7455
7792
  - gspPath: Path to GoogleService-Info.plist
7793
+ - appId: Firebase Crashlytics APP ID
7456
7794
  - binaryPath: The path to the upload-symbols file of the Fabric app
7457
7795
  - platform: The platform of the app (ios, appletvos, mac)
7458
7796
  - dsymWorkerThreads: The number of threads to use for simultaneous dSYM upload
@@ -7463,6 +7801,7 @@ func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji
7463
7801
  dsymPaths: [String]? = nil,
7464
7802
  apiToken: String? = nil,
7465
7803
  gspPath: String? = nil,
7804
+ appId: String? = nil,
7466
7805
  binaryPath: String? = nil,
7467
7806
  platform: String = "ios",
7468
7807
  dsymWorkerThreads: Int = 1) {
@@ -7470,6 +7809,7 @@ func uploadSymbolsToCrashlytics(dsymPath: String = "./spec/fixtures/dSYM/Themoji
7470
7809
  RubyCommand.Argument(name: "dsym_paths", value: dsymPaths),
7471
7810
  RubyCommand.Argument(name: "api_token", value: apiToken),
7472
7811
  RubyCommand.Argument(name: "gsp_path", value: gspPath),
7812
+ RubyCommand.Argument(name: "app_id", value: appId),
7473
7813
  RubyCommand.Argument(name: "binary_path", value: binaryPath),
7474
7814
  RubyCommand.Argument(name: "platform", value: platform),
7475
7815
  RubyCommand.Argument(name: "dsym_worker_threads", value: dsymWorkerThreads)])
@@ -7532,8 +7872,8 @@ func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/api/0",
7532
7872
  - overwriteScreenshots: Clear all previously uploaded screenshots before uploading the new ones
7533
7873
  - submitForReview: Submit the new version for Review after uploading everything
7534
7874
  - rejectIfPossible: Rejects the previously submitted build if it's in a state where it's possible
7535
- - automaticRelease: Should the app be automatically released once it's approved?
7536
- - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval
7875
+ - automaticRelease: Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)
7876
+ - autoReleaseDate: Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)
7537
7877
  - phasedRelease: Enable the phased release feature of iTC
7538
7878
  - resetRatings: Reset the summary rating when you release a new version of the application
7539
7879
  - priceTier: The price tier of this application
@@ -7751,7 +8091,7 @@ func uploadToPlayStore(packageName: String,
7751
8091
  releaseStatus: String = "completed",
7752
8092
  track: String = "production",
7753
8093
  rollout: String? = nil,
7754
- metadataPath: String? = nil,
8094
+ metadataPath: String = "./metadata",
7755
8095
  key: String? = nil,
7756
8096
  issuer: String? = nil,
7757
8097
  jsonKey: String? = nil,
@@ -7816,6 +8156,45 @@ func uploadToPlayStore(packageName: String,
7816
8156
  _ = runner.executeCommand(command)
7817
8157
  }
7818
8158
 
8159
+ /**
8160
+ Upload binaries to Google Play Internal App Sharing (via _supply_)
8161
+
8162
+ - parameters:
8163
+ - packageName: The package name of the application to use
8164
+ - jsonKey: The path to a file containing service account JSON, used to authenticate with Google
8165
+ - jsonKeyData: The raw service account JSON data used to authenticate with Google
8166
+ - apk: Path to the APK file to upload
8167
+ - apkPaths: An array of paths to APK files to upload
8168
+ - aab: Path to the AAB file to upload
8169
+ - aabPaths: An array of paths to AAB files to upload
8170
+ - rootUrl: Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/
8171
+ - timeout: Timeout for read, open, and send (in seconds)
8172
+
8173
+ - returns: Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded).
8174
+
8175
+ More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/
8176
+ */
8177
+ func uploadToPlayStoreInternalAppSharing(packageName: String,
8178
+ jsonKey: String? = nil,
8179
+ jsonKeyData: String? = nil,
8180
+ apk: String? = nil,
8181
+ apkPaths: [String]? = nil,
8182
+ aab: String? = nil,
8183
+ aabPaths: [String]? = nil,
8184
+ rootUrl: String? = nil,
8185
+ timeout: Int = 300) {
8186
+ let command = RubyCommand(commandID: "", methodName: "upload_to_play_store_internal_app_sharing", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
8187
+ RubyCommand.Argument(name: "json_key", value: jsonKey),
8188
+ RubyCommand.Argument(name: "json_key_data", value: jsonKeyData),
8189
+ RubyCommand.Argument(name: "apk", value: apk),
8190
+ RubyCommand.Argument(name: "apk_paths", value: apkPaths),
8191
+ RubyCommand.Argument(name: "aab", value: aab),
8192
+ RubyCommand.Argument(name: "aab_paths", value: aabPaths),
8193
+ RubyCommand.Argument(name: "root_url", value: rootUrl),
8194
+ RubyCommand.Argument(name: "timeout", value: timeout)])
8195
+ _ = runner.executeCommand(command)
8196
+ }
8197
+
7819
8198
  /**
7820
8199
  Upload new binary to App Store Connect for TestFlight beta testing (via _pilot_)
7821
8200
 
@@ -7833,7 +8212,7 @@ func uploadToPlayStore(packageName: String,
7833
8212
  - localizedBuildInfo: Localized beta app test info for what's new
7834
8213
  - changelog: Provide the 'What to Test' text when uploading a new build. `skip_waiting_for_build_processing: false` is required to set the changelog
7835
8214
  - skipSubmission: Skip the distributing action of pilot and only upload the ipa file
7836
- - skipWaitingForBuildProcessing: Don't wait for the build to process. If set to true, the changelog won't be set, `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan)
8215
+ - skipWaitingForBuildProcessing: If set to true, the `distribute_external` option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to `true` and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps
7837
8216
  - updateBuildInfoOnUpload: **DEPRECATED!** Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default
7838
8217
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
7839
8218
  - distributeExternal: Should the build be distributed to external testers?
@@ -8211,7 +8590,7 @@ func xcov(workspace: String? = nil,
8211
8590
  coverallsServiceJobId: String? = nil,
8212
8591
  coverallsRepoToken: String? = nil,
8213
8592
  xcconfig: String? = nil,
8214
- ideFoundationPath: String = "/Applications/Xcode-11.2.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8593
+ ideFoundationPath: String = "/Applications/Xcode-11.2.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8215
8594
  legacySupport: Bool = false) {
8216
8595
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
8217
8596
  RubyCommand.Argument(name: "project", value: project),
@@ -8356,4 +8735,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
8356
8735
 
8357
8736
  // Please don't remove the lines below
8358
8737
  // They are used to detect outdated files
8359
- // FastlaneRunnerAPIVersion [0.9.66]
8738
+ // FastlaneRunnerAPIVersion [0.9.71]