fastlane 2.184.0 → 2.187.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +101 -94
  3. data/deliver/lib/deliver/upload_metadata.rb +1 -1
  4. data/fastlane/lib/fastlane/actions/adb.rb +1 -4
  5. data/fastlane/lib/fastlane/actions/adb_devices.rb +0 -1
  6. data/fastlane/lib/fastlane/actions/add_git_tag.rb +4 -4
  7. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +3 -4
  8. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/appetize.rb +0 -7
  10. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +0 -11
  11. data/fastlane/lib/fastlane/actions/appium.rb +40 -65
  12. data/fastlane/lib/fastlane/actions/apteligent.rb +3 -2
  13. data/fastlane/lib/fastlane/actions/artifactory.rb +5 -6
  14. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +6 -11
  15. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +2 -2
  16. data/fastlane/lib/fastlane/actions/badge.rb +9 -13
  17. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +1 -3
  18. data/fastlane/lib/fastlane/actions/bundle_install.rb +8 -10
  19. data/fastlane/lib/fastlane/actions/carthage.rb +2 -16
  20. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +8 -17
  21. data/fastlane/lib/fastlane/actions/chatwork.rb +3 -2
  22. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +0 -1
  23. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +0 -1
  24. data/fastlane/lib/fastlane/actions/cloc.rb +9 -13
  25. data/fastlane/lib/fastlane/actions/cocoapods.rb +9 -15
  26. data/fastlane/lib/fastlane/actions/commit_github_file.rb +1 -3
  27. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +6 -7
  28. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +3 -4
  29. data/fastlane/lib/fastlane/actions/crashlytics.rb +7 -11
  30. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +70 -76
  31. data/fastlane/lib/fastlane/actions/create_keychain.rb +13 -11
  32. data/fastlane/lib/fastlane/actions/create_pull_request.rb +0 -9
  33. data/fastlane/lib/fastlane/actions/danger.rb +6 -11
  34. data/fastlane/lib/fastlane/actions/deploygate.rb +1 -2
  35. data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
  36. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +26 -27
  37. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +2 -2
  38. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +171 -67
  39. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -5
  40. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +10 -4
  41. data/fastlane/lib/fastlane/actions/download_app_privacy_details_from_app_store.rb +1 -1
  42. data/fastlane/lib/fastlane/actions/download_dsyms.rb +3 -4
  43. data/fastlane/lib/fastlane/actions/dsym_zip.rb +1 -1
  44. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +0 -1
  45. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +3 -4
  46. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +3 -5
  47. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +1 -2
  48. data/fastlane/lib/fastlane/actions/environment_variable.rb +13 -21
  49. data/fastlane/lib/fastlane/actions/erb.rb +2 -5
  50. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +1 -1
  51. data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +0 -1
  52. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +29 -34
  53. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
  54. data/fastlane/lib/fastlane/actions/git_add.rb +5 -10
  55. data/fastlane/lib/fastlane/actions/git_commit.rb +2 -6
  56. data/fastlane/lib/fastlane/actions/git_remote_branch.rb +57 -0
  57. data/fastlane/lib/fastlane/actions/github_api.rb +2 -5
  58. data/fastlane/lib/fastlane/actions/gradle.rb +11 -19
  59. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +1 -1
  60. data/fastlane/lib/fastlane/actions/hg_push.rb +1 -1
  61. data/fastlane/lib/fastlane/actions/hipchat.rb +4 -5
  62. data/fastlane/lib/fastlane/actions/hockey.rb +5 -12
  63. data/fastlane/lib/fastlane/actions/ifttt.rb +3 -6
  64. data/fastlane/lib/fastlane/actions/import_from_git.rb +2 -4
  65. data/fastlane/lib/fastlane/actions/increment_build_number.rb +1 -2
  66. data/fastlane/lib/fastlane/actions/install_on_device.rb +3 -6
  67. data/fastlane/lib/fastlane/actions/installr.rb +22 -25
  68. data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
  69. data/fastlane/lib/fastlane/actions/jazzy.rb +8 -14
  70. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +3 -4
  71. data/fastlane/lib/fastlane/actions/lcov.rb +0 -4
  72. data/fastlane/lib/fastlane/actions/mailgun.rb +21 -27
  73. data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +1 -1
  74. data/fastlane/lib/fastlane/actions/modify_services.rb +59 -24
  75. data/fastlane/lib/fastlane/actions/nexus_upload.rb +2 -2
  76. data/fastlane/lib/fastlane/actions/notarize.rb +1 -4
  77. data/fastlane/lib/fastlane/actions/number_of_commits.rb +1 -1
  78. data/fastlane/lib/fastlane/actions/oclint.rb +15 -14
  79. data/fastlane/lib/fastlane/actions/pod_push.rb +0 -2
  80. data/fastlane/lib/fastlane/actions/podio_item.rb +0 -7
  81. data/fastlane/lib/fastlane/actions/prompt.rb +3 -4
  82. data/fastlane/lib/fastlane/actions/push_git_tags.rb +1 -1
  83. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +5 -1
  84. data/fastlane/lib/fastlane/actions/puts.rb +1 -2
  85. data/fastlane/lib/fastlane/actions/register_devices.rb +0 -1
  86. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +5 -8
  87. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +0 -2
  88. data/fastlane/lib/fastlane/actions/resign.rb +2 -9
  89. data/fastlane/lib/fastlane/actions/rsync.rb +3 -6
  90. data/fastlane/lib/fastlane/actions/run_tests.rb +1 -1
  91. data/fastlane/lib/fastlane/actions/s3.rb +1 -1
  92. data/fastlane/lib/fastlane/actions/say.rb +2 -3
  93. data/fastlane/lib/fastlane/actions/scp.rb +4 -10
  94. data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +1 -1
  95. data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
  96. data/fastlane/lib/fastlane/actions/set_github_release.rb +2 -8
  97. data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +1 -1
  98. data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -4
  99. data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -2
  100. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
  101. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +7 -12
  102. data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
  103. data/fastlane/lib/fastlane/actions/sh.rb +2 -4
  104. data/fastlane/lib/fastlane/actions/slack.rb +6 -8
  105. data/fastlane/lib/fastlane/actions/slather.rb +3 -19
  106. data/fastlane/lib/fastlane/actions/sonar.rb +12 -19
  107. data/fastlane/lib/fastlane/actions/sourcedocs.rb +62 -98
  108. data/fastlane/lib/fastlane/actions/splunkmint.rb +2 -2
  109. data/fastlane/lib/fastlane/actions/spm.rb +3 -3
  110. data/fastlane/lib/fastlane/actions/ssh.rb +5 -10
  111. data/fastlane/lib/fastlane/actions/swiftlint.rb +1 -11
  112. data/fastlane/lib/fastlane/actions/testfairy.rb +0 -1
  113. data/fastlane/lib/fastlane/actions/tryouts.rb +2 -3
  114. data/fastlane/lib/fastlane/actions/twitter.rb +0 -5
  115. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +3 -3
  116. data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +1 -4
  117. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +8 -15
  118. data/fastlane/lib/fastlane/actions/update_fastlane.rb +2 -2
  119. data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
  120. data/fastlane/lib/fastlane/environment_printer.rb +1 -0
  121. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +4 -4
  122. data/fastlane/lib/fastlane/helper/git_helper.rb +24 -7
  123. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
  124. data/fastlane/lib/fastlane/setup/setup_ios.rb +3 -3
  125. data/fastlane/lib/fastlane/swift_fastlane_function.rb +6 -5
  126. data/fastlane/lib/fastlane/version.rb +1 -1
  127. data/fastlane/swift/Deliverfile.swift +1 -1
  128. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  129. data/fastlane/swift/Fastlane.swift +3786 -3563
  130. data/fastlane/swift/Gymfile.swift +1 -1
  131. data/fastlane/swift/GymfileProtocol.swift +1 -1
  132. data/fastlane/swift/Matchfile.swift +1 -1
  133. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  134. data/fastlane/swift/Precheckfile.swift +1 -1
  135. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  136. data/fastlane/swift/Scanfile.swift +1 -1
  137. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  138. data/fastlane/swift/Screengrabfile.swift +1 -1
  139. data/fastlane/swift/ScreengrabfileProtocol.swift +4 -4
  140. data/fastlane/swift/Snapshotfile.swift +1 -1
  141. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  142. data/fastlane/swift/formatting/Brewfile.lock.json +11 -11
  143. data/fastlane_core/lib/fastlane_core/build_watcher.rb +2 -2
  144. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +16 -3
  145. data/fastlane_core/lib/fastlane_core/helper.rb +12 -0
  146. data/fastlane_core/lib/fastlane_core/print_table.rb +5 -3
  147. data/fastlane_core/lib/fastlane_core/project.rb +7 -3
  148. data/match/lib/match/importer.rb +3 -0
  149. data/match/lib/match/nuke.rb +2 -3
  150. data/match/lib/match/options.rb +1 -0
  151. data/pilot/lib/pilot/build_manager.rb +2 -1
  152. data/pilot/lib/pilot/manager.rb +4 -1
  153. data/pilot/lib/pilot/options.rb +2 -2
  154. data/produce/lib/produce/commands_generator.rb +99 -27
  155. data/produce/lib/produce/developer_center.rb +42 -4
  156. data/produce/lib/produce/options.rb +1 -1
  157. data/produce/lib/produce/service.rb +270 -179
  158. data/screengrab/lib/screengrab/android_environment.rb +2 -52
  159. data/screengrab/lib/screengrab/dependency_checker.rb +0 -20
  160. data/screengrab/lib/screengrab/options.rb +5 -2
  161. data/screengrab/lib/screengrab/runner.rb +108 -106
  162. data/sigh/lib/assets/resign.sh +8 -19
  163. data/snapshot/lib/assets/SnapfileTemplate +2 -1
  164. data/snapshot/lib/assets/SnapfileTemplate.swift +2 -1
  165. data/snapshot/lib/assets/SnapshotHelper.swift +14 -10
  166. data/snapshot/lib/snapshot/reports_generator.rb +3 -1
  167. data/snapshot/lib/snapshot/test_command_generator.rb +17 -3
  168. data/spaceship/lib/spaceship/connect_api/api_client.rb +30 -5
  169. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +2 -1
  170. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
  171. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +3 -1
  172. data/spaceship/lib/spaceship/connect_api/models/build.rb +5 -1
  173. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +8 -0
  174. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +58 -17
  175. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +41 -1
  176. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  177. data/spaceship/lib/spaceship/spaceauth_runner.rb +19 -6
  178. metadata +21 -21
  179. data/fastlane/lib/fastlane/actions/.git_commit.rb.swp +0 -0
  180. data/spaceship/lib/spaceship/connect_api/models/.age_rating_declaration.rb.swp +0 -0
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.184.0
20
+ // Generated with fastlane 2.187.0
@@ -196,4 +196,4 @@ public extension GymfileProtocol {
196
196
 
197
197
  // Please don't remove the lines below
198
198
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.73]
199
+ // FastlaneRunnerAPIVersion [0.9.78]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.184.0
20
+ // Generated with fastlane 2.187.0
@@ -184,4 +184,4 @@ public extension MatchfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.67]
187
+ // FastlaneRunnerAPIVersion [0.9.72]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.184.0
20
+ // Generated with fastlane 2.187.0
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.66]
55
+ // FastlaneRunnerAPIVersion [0.9.71]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.184.0
20
+ // Generated with fastlane 2.187.0
@@ -292,4 +292,4 @@ public extension ScanfileProtocol {
292
292
 
293
293
  // Please don't remove the lines below
294
294
  // They are used to detect outdated files
295
- // FastlaneRunnerAPIVersion [0.9.78]
295
+ // FastlaneRunnerAPIVersion [0.9.83]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.184.0
20
+ // Generated with fastlane 2.187.0
@@ -5,7 +5,7 @@ public protocol ScreengrabfileProtocol: class {
5
5
  /// Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx
6
6
  var androidHome: String? { get }
7
7
 
8
- /// The Android build tools version to use, e.g. '23.0.2'
8
+ /// **DEPRECATED!** The Android build tools version to use, e.g. '23.0.2'
9
9
  var buildToolsVersion: String? { get }
10
10
 
11
11
  /// A list of locales which should be used
@@ -38,10 +38,10 @@ public protocol ScreengrabfileProtocol: class {
38
38
  /// The fully qualified class name of your test instrumentation runner
39
39
  var testInstrumentationRunner: String { get }
40
40
 
41
- /// Return the device to this locale after running tests
41
+ /// **DEPRECATED!** Return the device to this locale after running tests
42
42
  var endingLocale: String { get }
43
43
 
44
- /// Restarts the adb daemon using `adb root` to allow access to screenshots directories on device. Use if getting 'Permission denied' errors
44
+ /// **DEPRECATED!** Restarts the adb daemon using `adb root` to allow access to screenshots directories on device. Use if getting 'Permission denied' errors
45
45
  var useAdbRoot: Bool { get }
46
46
 
47
47
  /// The path to the APK for the app under test
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.68]
99
+ // FastlaneRunnerAPIVersion [0.9.73]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.184.0
20
+ // Generated with fastlane 2.187.0
@@ -200,4 +200,4 @@ public extension SnapshotfileProtocol {
200
200
 
201
201
  // Please don't remove the lines below
202
202
  // They are used to detect outdated files
203
- // FastlaneRunnerAPIVersion [0.9.62]
203
+ // FastlaneRunnerAPIVersion [0.9.67]
@@ -2,30 +2,30 @@
2
2
  "entries": {
3
3
  "brew": {
4
4
  "swiftformat": {
5
- "version": "0.48.2",
5
+ "version": "0.48.6",
6
6
  "bottle": {
7
7
  "rebuild": 0,
8
8
  "root_url": "https://ghcr.io/v2/homebrew/core",
9
9
  "files": {
10
10
  "arm64_big_sur": {
11
11
  "cellar": ":any_skip_relocation",
12
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:35f197cd20e7112460002fd08aa1c5b8902cfec22b1065669726c23820f8bc5b",
13
- "sha256": "35f197cd20e7112460002fd08aa1c5b8902cfec22b1065669726c23820f8bc5b"
12
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:78c5f4a349071a849e9f9eb0368907e5b8414e16e321fa4b17e821ab93d08f4e",
13
+ "sha256": "78c5f4a349071a849e9f9eb0368907e5b8414e16e321fa4b17e821ab93d08f4e"
14
14
  },
15
15
  "big_sur": {
16
16
  "cellar": ":any_skip_relocation",
17
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:456fcbe08ec3a57d9730fa4ad70e36c53f74fc64fc5f1cae1b25dfc43f693480",
18
- "sha256": "456fcbe08ec3a57d9730fa4ad70e36c53f74fc64fc5f1cae1b25dfc43f693480"
17
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:cdb2f3d905c2bbad7fff6cef0be18760ebf1a6595149eac5504df7c575154015",
18
+ "sha256": "cdb2f3d905c2bbad7fff6cef0be18760ebf1a6595149eac5504df7c575154015"
19
19
  },
20
20
  "catalina": {
21
21
  "cellar": ":any_skip_relocation",
22
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:390c8307574e61a372e2fde3f6d0fdfff7401683b8875f22ba6712b154092a64",
23
- "sha256": "390c8307574e61a372e2fde3f6d0fdfff7401683b8875f22ba6712b154092a64"
22
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:ae2a296fb9e96b6024226e2e71538e93c8ac29e80f162a29fc1530b341084593",
23
+ "sha256": "ae2a296fb9e96b6024226e2e71538e93c8ac29e80f162a29fc1530b341084593"
24
24
  },
25
25
  "mojave": {
26
26
  "cellar": ":any_skip_relocation",
27
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:07b289fad1b3fae73824a483cae12233b09c5bacdba7d1ee921b99940af77baf",
28
- "sha256": "07b289fad1b3fae73824a483cae12233b09c5bacdba7d1ee921b99940af77baf"
27
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:6ba32395078693bc518d290d523090932b266fba89f82a792a465b476226f0c5",
28
+ "sha256": "6ba32395078693bc518d290d523090932b266fba89f82a792a465b476226f0c5"
29
29
  }
30
30
  }
31
31
  }
@@ -35,9 +35,9 @@
35
35
  "system": {
36
36
  "macos": {
37
37
  "catalina": {
38
- "HOMEBREW_VERSION": "3.1.8-62-gc278da1",
38
+ "HOMEBREW_VERSION": "3.2.0-77-gd305f72",
39
39
  "HOMEBREW_PREFIX": "/usr/local",
40
- "Homebrew/homebrew-core": "decc1c2cbcdbaf86c19d95899ebecea59c8ce3ac",
40
+ "Homebrew/homebrew-core": "0b13b342053d414d1b241c2c7a446b74d79cc90e",
41
41
  "CLT": "11.0.0.33.12",
42
42
  "Xcode": "12.4",
43
43
  "macOS": "10.15.7"
@@ -92,8 +92,8 @@ module FastlaneCore
92
92
 
93
93
  if versions.empty?
94
94
  if select_latest
95
- UI.message("Watched build version should not be present when there is no app version to watch") unless watched_build_version.nil?
96
- UI.message("Searching for the latest build")
95
+ message = watched_build_version.nil? ? "Searching for the latest build" : "Searching for the latest build with build number: #{watched_build_version}"
96
+ UI.message(message)
97
97
  versions = [nil]
98
98
  else
99
99
  raise BuildWatcherError.new, "There is no app version to watch"
@@ -216,6 +216,17 @@ module FastlaneCore
216
216
  end
217
217
  end
218
218
 
219
+ def ensure_array_type_passes_validation(value)
220
+ if @skip_type_validation
221
+ return
222
+ end
223
+
224
+ # Arrays can be an either be an array or string that gets split by comma in auto_convert_type
225
+ if !value.kind_of?(Array) && !value.kind_of?(String)
226
+ UI.user_error!("'#{self.key}' value must be either `Array` or `comma-separated String`! Found #{value.class} instead.")
227
+ end
228
+ end
229
+
219
230
  # Make sure, the value is valid (based on the verify block)
220
231
  # Raises an exception if the value is invalid
221
232
  def valid?(value)
@@ -225,6 +236,8 @@ module FastlaneCore
225
236
  # Verify that value is the type that we're expecting, if we are expecting a type
226
237
  if data_type == Fastlane::Boolean
227
238
  ensure_boolean_type_passes_validation(value)
239
+ elsif data_type == Array
240
+ ensure_array_type_passes_validation(value)
228
241
  else
229
242
  ensure_generic_type_passes_validation(value)
230
243
  end
@@ -274,11 +287,11 @@ module FastlaneCore
274
287
  rescue JSON::ParserError
275
288
  end
276
289
  elsif data_type != String
277
- # Special treatment if the user specified true, false or YES, NO
290
+ # Special treatment if the user specified true, false, on, off or YES, NO
278
291
  # There is no boolean type, so we just do it here
279
- if %w(YES yes true TRUE).include?(value)
292
+ if %w(yes YES true TRUE on ON).include?(value)
280
293
  return true
281
- elsif %w(NO no false FALSE).include?(value)
294
+ elsif %w(no NO false FALSE off OFF).include?(value)
282
295
  return false
283
296
  end
284
297
  end
@@ -174,6 +174,18 @@ module FastlaneCore
174
174
  Gem::Version.new(installed_xcode_version) >= Gem::Version.new(version)
175
175
  end
176
176
 
177
+ # Swift
178
+ #
179
+
180
+ # @return Swift version
181
+ def self.swift_version
182
+ if system("which swift > /dev/null 2>&1")
183
+ output = `swift --version`
184
+ return output.split("\n").first.match(/version ([0-9.]+)/).captures.first
185
+ end
186
+ return nil
187
+ end
188
+
177
189
  # iTMSTransporter
178
190
  #
179
191
 
@@ -36,9 +36,11 @@ module FastlaneCore
36
36
 
37
37
  params[:title] = title.green if title
38
38
 
39
- puts("")
40
- puts(Terminal::Table.new(params))
41
- puts("")
39
+ unless FastlaneCore::Env.truthy?("FASTLANE_SKIP_ALL_LANE_SUMMARIES")
40
+ puts("")
41
+ puts(Terminal::Table.new(params))
42
+ puts("")
43
+ end
42
44
 
43
45
  return params
44
46
  end
@@ -123,9 +123,13 @@ module FastlaneCore
123
123
  # Get all available schemes in an array
124
124
  def schemes
125
125
  @schemes ||= if workspace?
126
- workspace.schemes.reject do |k, v|
127
- v.include?("Pods/Pods.xcodeproj")
128
- end.keys
126
+ if FastlaneCore::Env.truthy?("FASTLANE_INCLUDE_PODS_PROJECT_SCHEMES")
127
+ workspace.schemes.keys
128
+ else
129
+ workspace.schemes.reject do |k, v|
130
+ v.include?("Pods/Pods.xcodeproj")
131
+ end.keys
132
+ end
129
133
  else
130
134
  Xcodeproj::Project.schemes(path)
131
135
  end
@@ -22,6 +22,9 @@ module Match
22
22
  git_branch: params[:git_branch],
23
23
  git_full_name: params[:git_full_name],
24
24
  git_user_email: params[:git_user_email],
25
+ git_private_key: params[:git_private_key],
26
+ git_basic_authorization: params[:git_basic_authorization],
27
+ git_bearer_authorization: params[:git_bearer_authorization],
25
28
  clone_branch_directly: params[:clone_branch_directly],
26
29
  type: params[:type].to_s,
27
30
  platform: params[:platform].to_s,
@@ -247,9 +247,8 @@ module Match
247
247
  UI.success("Successfully deleted certificate")
248
248
  end
249
249
 
250
- if self.files.count > 0
251
- files_to_delete = delete_files!
252
- end
250
+ files_to_delete = delete_files! if self.files.count > 0
251
+ files_to_delete ||= []
253
252
 
254
253
  self.encryption.encrypt_files if self.encryption
255
254
 
@@ -207,6 +207,7 @@ module Match
207
207
  FastlaneCore::ConfigItem.new(key: :s3_secret_access_key,
208
208
  env_name: "MATCH_S3_SECRET_ACCESS_KEY",
209
209
  description: "S3 secret access key",
210
+ sensitive: true,
210
211
  optional: true),
211
212
  FastlaneCore::ConfigItem.new(key: :s3_bucket,
212
213
  env_name: "MATCH_S3_BUCKET",
@@ -107,7 +107,8 @@ module Pilot
107
107
  poll_interval: config[:wait_processing_interval],
108
108
  timeout_duration: config[:wait_processing_timeout_duration],
109
109
  return_when_build_appears: return_when_build_appears,
110
- return_spaceship_testflight_build: false
110
+ return_spaceship_testflight_build: false,
111
+ select_latest: config[:distribute_only]
111
112
  )
112
113
 
113
114
  unless latest_build.app_version == app_version && latest_build.version == app_build
@@ -13,7 +13,10 @@ module Pilot
13
13
  def start(options, should_login: true)
14
14
  return if @config # to not login multiple times
15
15
  @config = options
16
- login if should_login
16
+
17
+ # we will always start with App Store Connect API login 'if possible'
18
+ # else fallback to 'should_login' param for 'apple_id' login
19
+ login if options[:api_key_path] || options[:api_key] || should_login
17
20
  end
18
21
 
19
22
  def login
@@ -178,7 +178,7 @@ module Pilot
178
178
  FastlaneCore::ConfigItem.new(key: :distribute_external,
179
179
  is_string: false,
180
180
  env_name: "PILOT_DISTRIBUTE_EXTERNAL",
181
- description: "Should the build be distributed to external testers?",
181
+ description: "Should the build be distributed to external testers? If set to true, use of `groups` option is required",
182
182
  default_value: false),
183
183
  FastlaneCore::ConfigItem.new(key: :notify_external_testers,
184
184
  is_string: false,
@@ -227,7 +227,7 @@ module Pilot
227
227
  FastlaneCore::ConfigItem.new(key: :groups,
228
228
  short_option: "-g",
229
229
  env_name: "PILOT_GROUPS",
230
- description: "Associate tester to one group or more by group name / group id. E.g. `-g \"Team 1\",\"Team 2\"`",
230
+ description: "Associate tester to one group or more by group name / group id. E.g. `-g \"Team 1\",\"Team 2\"` This is required when `distribute_external` option is set to true or when we want to add a tester to one or more external testing groups ",
231
231
  optional: true,
232
232
  type: Array,
233
233
  verify_block: proc do |value|
@@ -47,29 +47,65 @@ module Produce
47
47
  c.description = 'Enable specific Application Services for a specific app on the Apple Developer Portal'
48
48
  c.example('Enable HealthKit, HomeKit and Passbook', 'fastlane produce enable_services -a com.example.app --healthkit --homekit --passbook')
49
49
 
50
- c.option('--access-wifi', 'Enable Access WiFi')
51
- c.option('--app-group', 'Enable App Groups')
50
+ c.option('--access-wifi', 'Enable Access Wifi')
51
+ c.option('--app-attest', 'Enable App Attest')
52
+ c.option('--app-group', 'Enable App Group')
52
53
  c.option('--apple-pay', 'Enable Apple Pay')
53
- c.option('--auto-fill-credential', 'Enable AutoFill Credential')
54
54
  c.option('--associated-domains', 'Enable Associated Domains')
55
+ c.option('--auto-fill-credential', 'Enable Auto Fill Credential')
56
+ c.option('--class-kit', 'Enable Class Kit')
57
+ c.option('--icloud STRING', String, 'Enable iCloud, suitable values are "xcode5_compatible" and "xcode6_compatible"')
58
+ c.option('--custom-network-protocol', 'Enable Custom Network Protocol')
55
59
  c.option('--data-protection STRING', String, 'Enable Data Protection, suitable values are "complete", "unlessopen" and "untilfirstauth"')
56
- c.option('--game-center', 'Enable Game Center')
57
- c.option('--healthkit', 'Enable HealthKit')
58
- c.option('--homekit', 'Enable HomeKit')
60
+ c.option('--family-controls', 'Enable Family Controls')
61
+ c.option('--file-provider-testing-mode', 'Enable File Provider Testing Mode')
62
+ c.option('--fonts', 'Enable Fonts')
63
+ c.option('--extended-virtual-address-space', 'Enable Extended Virtual Address Space')
64
+ c.option('--game-center STRING', String, 'Enable Game Center, suitable values are "ios" and "macos"')
65
+ c.option('--health-kit', 'Enable Health Kit')
66
+ c.option('--hls-interstitial-preview', 'Enable Hls Interstitial Preview')
67
+ c.option('--home-kit', 'Enable Home Kit')
59
68
  c.option('--hotspot', 'Enable Hotspot')
60
- c.option('--icloud STRING', String, 'Enable iCloud, suitable values are "legacy" and "cloudkit"')
61
- c.option('--in-app-purchase', 'Enable In-App Purchase')
62
- c.option('--inter-app-audio', 'Enable Inter-App-Audio')
69
+ c.option('--in-app-purchase', 'Enable In App Purchase')
70
+ c.option('--inter-app-audio', 'Enable Inter App Audio')
71
+ c.option('--low-latency-hls', 'Enable Low Latency Hls')
72
+ c.option('--managed-associated-domains', 'Enable Managed Associated Domains')
73
+ c.option('--maps', 'Enable Maps')
63
74
  c.option('--multipath', 'Enable Multipath')
64
- c.option('--network-extension', 'Enable Network Extensions')
75
+ c.option('--network-extension', 'Enable Network Extension')
65
76
  c.option('--nfc-tag-reading', 'Enable NFC Tag Reading')
66
77
  c.option('--personal-vpn', 'Enable Personal VPN')
67
78
  c.option('--passbook', 'Enable Passbook (deprecated)')
68
- c.option('--push-notification', 'Enable Push notification (only enables the service, does not configure certificates)')
69
- c.option('--sirikit', 'Enable SiriKit')
70
- c.option('--vpn-conf', 'Enable VPN Configuration (deprecated)')
79
+ c.option('--push-notification', 'Enable Push Notification')
80
+ c.option('--sign-in-with-apple', 'Enable Sign In With Apple')
81
+ c.option('--siri-kit', 'Enable Siri Kit')
82
+ c.option('--system-extension', 'Enable System Extension')
83
+ c.option('--user-management', 'Enable User Management')
84
+ c.option('--vpn-configuration', 'Enable Vpn Configuration (deprecated)')
71
85
  c.option('--wallet', 'Enable Wallet')
72
- c.option('--wireless-conf', 'Enable Wireless Accessory Configuration')
86
+ c.option('--wireless-accessory', 'Enable Wireless Accessory')
87
+ c.option('--car-play-audio-app', 'Enable Car Play Audio App')
88
+ c.option('--car-play-messaging-app', 'Enable Car Play Messaging App')
89
+ c.option('--car-play-navigation-app', 'Enable Car Play Navigation App')
90
+ c.option('--car-play-voip-calling-app', 'Enable Car Play Voip Calling App')
91
+ c.option('--critical-alerts', 'Enable Critical Alerts')
92
+ c.option('--hotspot-helper', 'Enable Hotspot Helper')
93
+ c.option('--driver-kit', 'Enable DriverKit')
94
+ c.option('--driver-kit-endpoint-security', 'Enable DriverKit Endpoint Security')
95
+ c.option('--driver-kit-family-hid-device', 'Enable DriverKit Family HID Device')
96
+ c.option('--driver-kit-family-networking', 'Enable DriverKit Family Networking')
97
+ c.option('--driver-kit-family-serial', 'Enable DriverKit Family Serial')
98
+ c.option('--driver-kit-hid-event-service', 'Enable DriverKit HID EventService')
99
+ c.option('--driver-kit-transport-hid', 'Enable DriverKit Transport HID')
100
+ c.option('--multitasking-camera-access', 'Enable Multitasking Camera Access')
101
+ c.option('--sf-universal-link-api', 'Enable SFUniversalLink API')
102
+ c.option('--vp9-decoder', 'Enable VP9 Decoder')
103
+ c.option('--music-kit', 'Enable MusicKit')
104
+ c.option('--shazam-kit', 'Enable ShazamKit')
105
+ c.option('--communication-notifications', 'Enable Communication Notifications')
106
+ c.option('--group-activities', 'Enable Group Activities')
107
+ c.option('--health-kit-estimate-recalibration', 'Enable HealthKit Estimate Recalibration')
108
+ c.option('--time-sensitive-notifications', 'Enable Time Sensitive Notifications')
73
109
 
74
110
  FastlaneCore::CommanderGenerator.new.generate(Produce::Options.available_options, command: c)
75
111
 
@@ -88,29 +124,65 @@ module Produce
88
124
  c.description = 'Disable specific Application Services for a specific app on the Apple Developer Portal'
89
125
  c.example('Disable HealthKit', 'fastlane produce disable_services -a com.example.app --healthkit')
90
126
 
91
- c.option('--access-wifi', 'Disable Access WiFi')
92
- c.option('--app-group', 'Disable App Groups')
127
+ c.option('--access-wifi', 'Disable Access Wifi')
128
+ c.option('--app-attest', 'Disable App Attest')
129
+ c.option('--app-group', 'Disable App Group')
93
130
  c.option('--apple-pay', 'Disable Apple Pay')
94
- c.option('--auto-fill-credential', 'Disable AutoFill Credential')
95
131
  c.option('--associated-domains', 'Disable Associated Domains')
132
+ c.option('--auto-fill-credential', 'Disable Auto Fill Credential')
133
+ c.option('--class-kit', 'Disable Class Kit')
134
+ c.option('--icloud', 'Disable iCloud')
135
+ c.option('--custom-network-protocol', 'Disable Custom Network Protocol')
96
136
  c.option('--data-protection', 'Disable Data Protection')
137
+ c.option('--extended-virtual-address-space', 'Disable Extended Virtual Address Space')
138
+ c.option('--family-controls', 'Disable Family Controls')
139
+ c.option('--file-provider-testing-mode', 'Disable File Provider Testing Mode')
140
+ c.option('--fonts', 'Disable Fonts')
97
141
  c.option('--game-center', 'Disable Game Center')
98
- c.option('--healthkit', 'Disable HealthKit')
99
- c.option('--homekit', 'Disable HomeKit')
142
+ c.option('--health-kit', 'Disable Health Kit')
143
+ c.option('--hls-interstitial-preview', 'Disable Hls Interstitial Preview')
144
+ c.option('--home-kit', 'Disable Home Kit')
100
145
  c.option('--hotspot', 'Disable Hotspot')
101
- c.option('--icloud', 'Disable iCloud')
102
- c.option('--in-app-purchase', 'Disable In-App Purchase')
103
- c.option('--inter-app-audio', 'Disable Inter-App-Audio')
146
+ c.option('--in-app-purchase', 'Disable In App Purchase')
147
+ c.option('--inter-app-audio', 'Disable Inter App Audio')
148
+ c.option('--low-latency-hls', 'Disable Low Latency Hls')
149
+ c.option('--managed-associated-domains', 'Disable Managed Associated Domains')
150
+ c.option('--maps', 'Disable Maps')
104
151
  c.option('--multipath', 'Disable Multipath')
105
- c.option('--network-extension', 'Disable Network Extensions')
152
+ c.option('--network-extension', 'Disable Network Extension')
106
153
  c.option('--nfc-tag-reading', 'Disable NFC Tag Reading')
107
154
  c.option('--personal-vpn', 'Disable Personal VPN')
108
155
  c.option('--passbook', 'Disable Passbook (deprecated)')
109
- c.option('--push-notification', 'Disable Push notifications')
110
- c.option('--sirikit', 'Disable SiriKit')
111
- c.option('--vpn-conf', 'Disable VPN Configuration (deprecated)')
156
+ c.option('--push-notification', 'Disable Push Notification')
157
+ c.option('--sign-in-with-apple', 'Disable Sign In With Apple')
158
+ c.option('--siri-kit', 'Disable Siri Kit')
159
+ c.option('--system-extension', 'Disable System Extension')
160
+ c.option('--user-management', 'Disable User Management')
161
+ c.option('--vpn-configuration', 'Disable Vpn Configuration (deprecated)')
112
162
  c.option('--wallet', 'Disable Wallet')
113
- c.option('--wireless-conf', 'Disable Wireless Accessory Configuration')
163
+ c.option('--wireless-accessory', 'Disable Wireless Accessory')
164
+ c.option('--car-play-audio-app', 'Disable Car Play Audio App')
165
+ c.option('--car-play-messaging-app', 'Disable Car Play Messaging App')
166
+ c.option('--car-play-navigation-app', 'Disable Car Play Navigation App')
167
+ c.option('--car-play-voip-calling-app', 'Disable Car Play Voip Calling App')
168
+ c.option('--critical-alerts', 'Disable Critical Alerts')
169
+ c.option('--hotspot-helper', 'Disable Hotspot Helper')
170
+ c.option('--driver-kit', 'Disable DriverKit')
171
+ c.option('--driver-kit-endpoint-security', 'Disable DriverKit Endpoint Security')
172
+ c.option('--driver-kit-family-hid-device', 'Disable DriverKit Family HID Device')
173
+ c.option('--driver-kit-family-networking', 'Disable DriverKit Family Networking')
174
+ c.option('--driver-kit-family-serial', 'Disable DriverKit Family Serial')
175
+ c.option('--driver-kit-hid-event-service', 'Disable DriverKit HID EventService')
176
+ c.option('--driver-kit-transport-hid', 'Disable DriverKit Transport HID')
177
+ c.option('--multitasking-camera-access', 'Disable Multitasking Camera Access')
178
+ c.option('--sf-universal-link-api', 'Disable SFUniversalLink API')
179
+ c.option('--vp9-decoder', 'Disable VP9 Decoder')
180
+ c.option('--music-kit', 'Disable MusicKit')
181
+ c.option('--shazam-kit', 'Disable ShazamKit')
182
+ c.option('--communication-notifications', 'Disable Communication Notifications')
183
+ c.option('--group-activities', 'Disable Group Activities')
184
+ c.option('--health-kit-estimate-recalibration', 'Disable HealthKit Estimate Recalibration')
185
+ c.option('--time-sensitive-notifications', 'Disable Time Sensitive Notifications')
114
186
 
115
187
  FastlaneCore::CommanderGenerator.new.generate(Produce::Options.available_options, command: c)
116
188