fastlane_hotfix 2.165.0 → 2.187.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +106 -86
  4. data/cert/lib/cert/commands_generator.rb +2 -1
  5. data/cert/lib/cert/options.rb +6 -5
  6. data/cert/lib/cert/runner.rb +8 -8
  7. data/deliver/lib/assets/summary.html.erb +10 -10
  8. data/deliver/lib/deliver/app_screenshot.rb +17 -11
  9. data/deliver/lib/deliver/app_screenshot_validator.rb +108 -0
  10. data/deliver/lib/deliver/commands_generator.rb +4 -3
  11. data/deliver/lib/deliver/detect_values.rb +5 -3
  12. data/deliver/lib/deliver/download_screenshots.rb +2 -3
  13. data/deliver/lib/deliver/html_generator.rb +2 -2
  14. data/deliver/lib/deliver/languages.rb +1 -1
  15. data/deliver/lib/deliver/loader.rb +123 -21
  16. data/deliver/lib/deliver/module.rb +6 -0
  17. data/deliver/lib/deliver/options.rb +41 -55
  18. data/deliver/lib/deliver/runner.rb +19 -14
  19. data/deliver/lib/deliver/setup.rb +9 -5
  20. data/deliver/lib/deliver/submit_for_review.rb +4 -4
  21. data/deliver/lib/deliver/upload_metadata.rb +32 -21
  22. data/deliver/lib/deliver/upload_price_tier.rb +1 -1
  23. data/deliver/lib/deliver/upload_screenshots.rb +14 -76
  24. data/fastlane/lib/fastlane/actions/actions_helper.rb +3 -3
  25. data/fastlane/lib/fastlane/actions/adb.rb +2 -5
  26. data/fastlane/lib/fastlane/actions/adb_devices.rb +0 -1
  27. data/fastlane/lib/fastlane/actions/add_git_tag.rb +22 -6
  28. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +17 -17
  29. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +21 -7
  30. data/fastlane/lib/fastlane/actions/appaloosa.rb +7 -2
  31. data/fastlane/lib/fastlane/actions/appetize.rb +13 -8
  32. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +0 -11
  33. data/fastlane/lib/fastlane/actions/appium.rb +40 -65
  34. data/fastlane/lib/fastlane/actions/appledoc.rb +46 -46
  35. data/fastlane/lib/fastlane/actions/apteligent.rb +3 -2
  36. data/fastlane/lib/fastlane/actions/artifactory.rb +41 -9
  37. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +7 -13
  38. data/fastlane/lib/fastlane/actions/backup_file.rb +1 -1
  39. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +3 -3
  40. data/fastlane/lib/fastlane/actions/badge.rb +9 -13
  41. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +11 -5
  42. data/fastlane/lib/fastlane/actions/build_app.rb +7 -1
  43. data/fastlane/lib/fastlane/actions/bundle_install.rb +8 -10
  44. data/fastlane/lib/fastlane/actions/carthage.rb +22 -14
  45. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +8 -17
  46. data/fastlane/lib/fastlane/actions/chatwork.rb +3 -2
  47. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +9 -1
  48. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +0 -1
  49. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +0 -1
  50. data/fastlane/lib/fastlane/actions/clipboard.rb +3 -6
  51. data/fastlane/lib/fastlane/actions/cloc.rb +9 -13
  52. data/fastlane/lib/fastlane/actions/cocoapods.rb +23 -15
  53. data/fastlane/lib/fastlane/actions/commit_github_file.rb +12 -4
  54. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +6 -7
  55. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +3 -4
  56. data/fastlane/lib/fastlane/actions/crashlytics.rb +7 -11
  57. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +70 -76
  58. data/fastlane/lib/fastlane/actions/create_keychain.rb +13 -11
  59. data/fastlane/lib/fastlane/actions/create_pull_request.rb +15 -9
  60. data/fastlane/lib/fastlane/actions/create_xcframework.rb +123 -0
  61. data/fastlane/lib/fastlane/actions/danger.rb +13 -12
  62. data/fastlane/lib/fastlane/actions/deploygate.rb +1 -2
  63. data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
  64. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +27 -28
  65. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +7 -3
  66. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +171 -67
  67. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +20 -3
  68. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +9 -3
  69. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +39 -16
  70. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -1
  71. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +15 -5
  72. data/fastlane/lib/fastlane/actions/download_app_privacy_details_from_app_store.rb +142 -0
  73. data/fastlane/lib/fastlane/actions/download_dsyms.rb +8 -20
  74. data/fastlane/lib/fastlane/actions/dsym_zip.rb +1 -1
  75. data/fastlane/lib/fastlane/actions/ensure_env_vars.rb +2 -6
  76. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +0 -1
  77. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +3 -4
  78. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +3 -5
  79. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +1 -2
  80. data/fastlane/lib/fastlane/actions/environment_variable.rb +13 -21
  81. data/fastlane/lib/fastlane/actions/erb.rb +2 -5
  82. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +1 -1
  83. data/fastlane/lib/fastlane/actions/get_certificates.rb +5 -1
  84. data/fastlane/lib/fastlane/actions/get_github_release.rb +11 -1
  85. data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +0 -1
  86. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +32 -35
  87. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +9 -1
  88. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
  89. data/fastlane/lib/fastlane/actions/get_version_number.rb +17 -10
  90. data/fastlane/lib/fastlane/actions/git_add.rb +5 -10
  91. data/fastlane/lib/fastlane/actions/git_branch.rb +4 -10
  92. data/fastlane/lib/fastlane/actions/git_commit.rb +12 -10
  93. data/fastlane/lib/fastlane/actions/git_pull.rb +4 -10
  94. data/fastlane/lib/fastlane/actions/git_remote_branch.rb +57 -0
  95. data/fastlane/lib/fastlane/actions/git_submodule_update.rb +16 -8
  96. data/fastlane/lib/fastlane/actions/git_tag_exists.rb +4 -0
  97. data/fastlane/lib/fastlane/actions/github_api.rb +17 -8
  98. data/fastlane/lib/fastlane/actions/gradle.rb +12 -20
  99. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +1 -1
  100. data/fastlane/lib/fastlane/actions/hg_push.rb +1 -1
  101. data/fastlane/lib/fastlane/actions/hipchat.rb +6 -6
  102. data/fastlane/lib/fastlane/actions/hockey.rb +5 -12
  103. data/fastlane/lib/fastlane/actions/ifttt.rb +3 -6
  104. data/fastlane/lib/fastlane/actions/import_from_git.rb +7 -9
  105. data/fastlane/lib/fastlane/actions/increment_build_number.rb +8 -2
  106. data/fastlane/lib/fastlane/actions/install_on_device.rb +3 -6
  107. data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +4 -0
  108. data/fastlane/lib/fastlane/actions/installr.rb +22 -25
  109. data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
  110. data/fastlane/lib/fastlane/actions/jazzy.rb +11 -8
  111. data/fastlane/lib/fastlane/actions/jira.rb +61 -14
  112. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +6 -6
  113. data/fastlane/lib/fastlane/actions/lcov.rb +0 -4
  114. data/fastlane/lib/fastlane/actions/mailgun.rb +21 -27
  115. data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +1 -1
  116. data/fastlane/lib/fastlane/actions/match_nuke.rb +59 -0
  117. data/fastlane/lib/fastlane/actions/modify_services.rb +59 -24
  118. data/fastlane/lib/fastlane/actions/nexus_upload.rb +3 -2
  119. data/fastlane/lib/fastlane/actions/notarize.rb +98 -54
  120. data/fastlane/lib/fastlane/actions/notification.rb +1 -1
  121. data/fastlane/lib/fastlane/actions/number_of_commits.rb +1 -1
  122. data/fastlane/lib/fastlane/actions/oclint.rb +15 -14
  123. data/fastlane/lib/fastlane/actions/onesignal.rb +13 -3
  124. data/fastlane/lib/fastlane/actions/pod_push.rb +9 -2
  125. data/fastlane/lib/fastlane/actions/podio_item.rb +0 -7
  126. data/fastlane/lib/fastlane/actions/prompt.rb +3 -4
  127. data/fastlane/lib/fastlane/actions/push_git_tags.rb +1 -1
  128. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +14 -3
  129. data/fastlane/lib/fastlane/actions/puts.rb +1 -2
  130. data/fastlane/lib/fastlane/actions/register_device.rb +10 -13
  131. data/fastlane/lib/fastlane/actions/register_devices.rb +11 -14
  132. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +5 -8
  133. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +0 -2
  134. data/fastlane/lib/fastlane/actions/resign.rb +2 -9
  135. data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
  136. data/fastlane/lib/fastlane/actions/rsync.rb +3 -6
  137. data/fastlane/lib/fastlane/actions/run_tests.rb +1 -1
  138. data/fastlane/lib/fastlane/actions/s3.rb +1 -1
  139. data/fastlane/lib/fastlane/actions/say.rb +2 -3
  140. data/fastlane/lib/fastlane/actions/scp.rb +4 -10
  141. data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +1 -1
  142. data/fastlane/lib/fastlane/actions/set_changelog.rb +10 -13
  143. data/fastlane/lib/fastlane/actions/set_github_release.rb +23 -16
  144. data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +1 -1
  145. data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -4
  146. data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -2
  147. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
  148. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +7 -12
  149. data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
  150. data/fastlane/lib/fastlane/actions/sh.rb +2 -4
  151. data/fastlane/lib/fastlane/actions/slack.rb +164 -145
  152. data/fastlane/lib/fastlane/actions/slather.rb +5 -21
  153. data/fastlane/lib/fastlane/actions/sonar.rb +12 -19
  154. data/fastlane/lib/fastlane/actions/sourcedocs.rb +128 -0
  155. data/fastlane/lib/fastlane/actions/spaceship_logs.rb +1 -1
  156. data/fastlane/lib/fastlane/actions/splunkmint.rb +2 -2
  157. data/fastlane/lib/fastlane/actions/spm.rb +8 -2
  158. data/fastlane/lib/fastlane/actions/ssh.rb +5 -10
  159. data/fastlane/lib/fastlane/actions/swiftlint.rb +21 -19
  160. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +6 -1
  161. data/fastlane/lib/fastlane/actions/testfairy.rb +0 -1
  162. data/fastlane/lib/fastlane/actions/tryouts.rb +2 -3
  163. data/fastlane/lib/fastlane/actions/twitter.rb +0 -5
  164. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +3 -3
  165. data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +1 -4
  166. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +8 -15
  167. data/fastlane/lib/fastlane/actions/update_fastlane.rb +31 -10
  168. data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +1 -4
  169. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  170. data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +1 -4
  171. data/fastlane/lib/fastlane/actions/update_plist.rb +1 -1
  172. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +3 -4
  173. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +0 -1
  174. data/fastlane/lib/fastlane/actions/update_url_schemes.rb +15 -26
  175. data/fastlane/lib/fastlane/actions/upload_app_privacy_details_to_app_store.rb +290 -0
  176. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +8 -7
  177. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +3 -10
  178. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +8 -4
  179. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +7 -2
  180. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +40 -44
  181. data/fastlane/lib/fastlane/actions/version_get_podspec.rb +1 -2
  182. data/fastlane/lib/fastlane/actions/xcode_install.rb +8 -5
  183. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +3 -3
  184. data/fastlane/lib/fastlane/actions/xcodebuild.rb +5 -5
  185. data/fastlane/lib/fastlane/cli_tools_distributor.rb +6 -3
  186. data/fastlane/lib/fastlane/commands_generator.rb +2 -1
  187. data/fastlane/lib/fastlane/documentation/actions_list.rb +2 -2
  188. data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
  189. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +1 -1
  190. data/fastlane/lib/fastlane/environment_printer.rb +1 -0
  191. data/fastlane/lib/fastlane/erb_template_helper.rb +7 -1
  192. data/fastlane/lib/fastlane/fast_file.rb +19 -7
  193. data/fastlane/lib/fastlane/fastlane_require.rb +7 -1
  194. data/fastlane/lib/fastlane/features.rb +1 -1
  195. data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
  196. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +4 -4
  197. data/fastlane/lib/fastlane/helper/gem_helper.rb +2 -2
  198. data/fastlane/lib/fastlane/helper/git_helper.rb +34 -5
  199. data/fastlane/lib/fastlane/lane_manager.rb +3 -2
  200. data/fastlane/lib/fastlane/notification/slack.rb +56 -0
  201. data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +1 -2
  202. data/fastlane/lib/fastlane/plugins/plugin_info.rb +2 -2
  203. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +1 -2
  204. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -3
  205. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +7 -6
  206. data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +1 -1
  207. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +1 -1
  208. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +31 -35
  209. data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +1 -1
  210. data/fastlane/lib/fastlane/setup/setup.rb +23 -10
  211. data/fastlane/lib/fastlane/setup/setup_ios.rb +3 -3
  212. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +3 -0
  213. data/fastlane/lib/fastlane/swift_fastlane_function.rb +44 -16
  214. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +2 -0
  215. data/fastlane/lib/fastlane/version.rb +2 -2
  216. data/fastlane/swift/Actions.swift +1 -1
  217. data/fastlane/swift/Appfile.swift +1 -1
  218. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  219. data/fastlane/swift/ControlCommand.swift +1 -1
  220. data/fastlane/swift/Deliverfile.swift +2 -2
  221. data/fastlane/swift/DeliverfileProtocol.swift +23 -23
  222. data/fastlane/swift/Fastfile.swift +1 -1
  223. data/fastlane/swift/Fastlane.swift +7965 -4213
  224. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +4 -0
  225. data/fastlane/swift/Gymfile.swift +2 -2
  226. data/fastlane/swift/GymfileProtocol.swift +15 -3
  227. data/fastlane/swift/LaneFileProtocol.swift +12 -6
  228. data/fastlane/swift/MainProcess.swift +3 -1
  229. data/fastlane/swift/Matchfile.swift +2 -2
  230. data/fastlane/swift/MatchfileProtocol.swift +4 -4
  231. data/fastlane/swift/OptionalConfigValue.swift +101 -0
  232. data/fastlane/swift/Plugins.swift +1 -1
  233. data/fastlane/swift/Precheckfile.swift +2 -2
  234. data/fastlane/swift/PrecheckfileProtocol.swift +8 -4
  235. data/fastlane/swift/RubyCommand.swift +2 -2
  236. data/fastlane/swift/RubyCommandable.swift +1 -1
  237. data/fastlane/swift/Runner.swift +3 -3
  238. data/fastlane/swift/RunnerArgument.swift +1 -1
  239. data/fastlane/swift/Scanfile.swift +2 -2
  240. data/fastlane/swift/ScanfileProtocol.swift +34 -2
  241. data/fastlane/swift/Screengrabfile.swift +2 -2
  242. data/fastlane/swift/ScreengrabfileProtocol.swift +5 -5
  243. data/fastlane/swift/Snapshotfile.swift +2 -2
  244. data/fastlane/swift/SnapshotfileProtocol.swift +19 -3
  245. data/fastlane/swift/SocketClient.swift +4 -3
  246. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  247. data/fastlane/swift/SocketResponse.swift +5 -3
  248. data/fastlane/swift/formatting/Brewfile.lock.json +24 -16
  249. data/fastlane/swift/main.swift +1 -1
  250. data/fastlane/swift/upgrade_manifest.json +1 -1
  251. data/fastlane_core/lib/fastlane_core.rb +22 -20
  252. data/fastlane_core/lib/fastlane_core/build_watcher.rb +89 -12
  253. data/fastlane_core/lib/fastlane_core/cert_checker.rb +12 -7
  254. data/fastlane_core/lib/fastlane_core/clipboard.rb +20 -0
  255. data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -9
  256. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +6 -1
  257. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +41 -3
  258. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +14 -8
  259. data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
  260. data/fastlane_core/lib/fastlane_core/helper.rb +78 -14
  261. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +41 -16
  262. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +3 -2
  263. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +20 -15
  264. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
  265. data/fastlane_core/lib/fastlane_core/languages.rb +2 -2
  266. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +3 -2
  267. data/fastlane_core/lib/fastlane_core/print_table.rb +5 -3
  268. data/fastlane_core/lib/fastlane_core/project.rb +48 -28
  269. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +3 -1
  270. data/{deliver/lib/deliver → fastlane_core/lib/fastlane_core}/queue_worker.rb +4 -4
  271. data/fastlane_core/lib/fastlane_core/swag.rb +1 -1
  272. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +8 -0
  273. data/fastlane_core/lib/fastlane_core/ui/help.erb +35 -0
  274. data/fastlane_core/lib/fastlane_core/ui/help_formatter.rb +16 -0
  275. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +16 -2
  276. data/fastlane_core/lib/fastlane_core/ui/interface.rb +1 -1
  277. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +2 -2
  278. data/frameit/lib/frameit/commands_generator.rb +2 -1
  279. data/frameit/lib/frameit/config_parser.rb +2 -2
  280. data/frameit/lib/frameit/device_types.rb +7 -1
  281. data/frameit/lib/frameit/frame_downloader.rb +2 -1
  282. data/gym/lib/gym/code_signing_mapping.rb +3 -3
  283. data/gym/lib/gym/commands_generator.rb +2 -1
  284. data/gym/lib/gym/error_handler.rb +8 -0
  285. data/gym/lib/gym/generators/build_command_generator.rb +3 -0
  286. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  287. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +21 -15
  288. data/gym/lib/gym/options.rb +19 -3
  289. data/gym/lib/gym/runner.rb +15 -4
  290. data/match/lib/match/change_password.rb +3 -3
  291. data/match/lib/match/commands_generator.rb +2 -1
  292. data/match/lib/match/encryption/interface.rb +1 -1
  293. data/match/lib/match/encryption/openssl.rb +5 -3
  294. data/match/lib/match/importer.rb +9 -10
  295. data/match/lib/match/migrate.rb +2 -3
  296. data/match/lib/match/module.rb +2 -1
  297. data/match/lib/match/nuke.rb +19 -15
  298. data/match/lib/match/options.rb +4 -3
  299. data/match/lib/match/runner.rb +3 -4
  300. data/match/lib/match/spaceship_ensure.rb +3 -0
  301. data/match/lib/match/storage/git_storage.rb +14 -10
  302. data/match/lib/match/storage/google_cloud_storage.rb +2 -2
  303. data/match/lib/match/storage/s3_storage.rb +2 -2
  304. data/pem/lib/pem/commands_generator.rb +2 -1
  305. data/pilot/lib/pilot.rb +0 -1
  306. data/pilot/lib/pilot/build_manager.rb +41 -15
  307. data/pilot/lib/pilot/commands_generator.rb +2 -1
  308. data/pilot/lib/pilot/manager.rb +11 -8
  309. data/pilot/lib/pilot/options.rb +18 -9
  310. data/pilot/lib/pilot/tester_exporter.rb +0 -1
  311. data/pilot/lib/pilot/tester_manager.rb +0 -1
  312. data/precheck/lib/precheck/commands_generator.rb +2 -1
  313. data/precheck/lib/precheck/options.rb +9 -3
  314. data/precheck/lib/precheck/rule_processor.rb +1 -1
  315. data/precheck/lib/precheck/runner.rb +14 -9
  316. data/produce/lib/produce/commands_generator.rb +101 -28
  317. data/produce/lib/produce/developer_center.rb +42 -4
  318. data/produce/lib/produce/options.rb +1 -1
  319. data/produce/lib/produce/service.rb +270 -179
  320. data/scan/lib/scan/commands_generator.rb +2 -1
  321. data/scan/lib/scan/detect_values.rb +7 -2
  322. data/scan/lib/scan/module.rb +4 -0
  323. data/scan/lib/scan/options.rb +46 -1
  324. data/scan/lib/scan/runner.rb +88 -3
  325. data/scan/lib/scan/slack_poster.rb +4 -1
  326. data/scan/lib/scan/test_command_generator.rb +13 -8
  327. data/screengrab/lib/screengrab/android_environment.rb +5 -53
  328. data/screengrab/lib/screengrab/commands_generator.rb +2 -1
  329. data/screengrab/lib/screengrab/dependency_checker.rb +0 -20
  330. data/screengrab/lib/screengrab/options.rb +5 -2
  331. data/screengrab/lib/screengrab/runner.rb +111 -108
  332. data/sigh/lib/assets/resign.sh +81 -61
  333. data/sigh/lib/sigh/commands_generator.rb +2 -1
  334. data/sigh/lib/sigh/download_all.rb +4 -8
  335. data/sigh/lib/sigh/options.rb +3 -2
  336. data/sigh/lib/sigh/runner.rb +9 -9
  337. data/snapshot/lib/assets/SnapfileTemplate +3 -2
  338. data/snapshot/lib/assets/SnapfileTemplate.swift +2 -1
  339. data/snapshot/lib/assets/SnapshotHelper.swift +20 -12
  340. data/snapshot/lib/snapshot/commands_generator.rb +3 -1
  341. data/snapshot/lib/snapshot/options.rb +22 -2
  342. data/snapshot/lib/snapshot/reports_generator.rb +7 -1
  343. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  344. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
  345. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +10 -5
  346. data/snapshot/lib/snapshot/test_command_generator.rb +18 -4
  347. data/snapshot/lib/snapshot/test_command_generator_base.rb +3 -1
  348. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +1 -1
  349. data/snapshot/lib/snapshot/update.rb +1 -1
  350. data/spaceship/README.md +4 -14
  351. data/spaceship/lib/spaceship/base.rb +2 -2
  352. data/spaceship/lib/spaceship/client.rb +44 -16
  353. data/spaceship/lib/spaceship/commands_generator.rb +4 -2
  354. data/spaceship/lib/spaceship/connect_api.rb +6 -0
  355. data/spaceship/lib/spaceship/connect_api/api_client.rb +67 -9
  356. data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
  357. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +39 -6
  358. data/spaceship/lib/spaceship/connect_api/models/app.rb +95 -55
  359. data/spaceship/lib/spaceship/connect_api/models/app_data_usage.rb +59 -0
  360. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_category.rb +65 -0
  361. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_data_protection.rb +27 -0
  362. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_grouping.rb +18 -0
  363. data/spaceship/lib/spaceship/connect_api/models/app_data_usage_purposes.rb +37 -0
  364. data/spaceship/lib/spaceship/connect_api/models/app_data_usages_publish_state.rb +36 -0
  365. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +26 -10
  366. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +8 -4
  367. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +15 -11
  368. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +18 -9
  369. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +10 -8
  370. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +20 -11
  371. data/spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb +7 -5
  372. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +6 -4
  373. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +62 -38
  374. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +27 -14
  375. data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +3 -2
  376. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +3 -2
  377. data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +6 -4
  378. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +29 -3
  379. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +15 -9
  380. data/spaceship/lib/spaceship/connect_api/models/build.rb +34 -17
  381. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
  382. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +3 -2
  383. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +41 -6
  384. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +86 -21
  385. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +12 -8
  386. data/spaceship/lib/spaceship/connect_api/models/device.rb +36 -4
  387. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +6 -4
  388. data/spaceship/lib/spaceship/connect_api/models/profile.rb +18 -8
  389. data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +3 -2
  390. data/spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb +9 -6
  391. data/spaceship/lib/spaceship/connect_api/models/territory.rb +3 -2
  392. data/spaceship/lib/spaceship/connect_api/models/user.rb +6 -4
  393. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +22 -6
  394. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +99 -2
  395. data/spaceship/lib/spaceship/connect_api/response.rb +3 -1
  396. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +50 -0
  397. data/spaceship/lib/spaceship/connect_api/token.rb +15 -3
  398. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +122 -2
  399. data/spaceship/lib/spaceship/errors.rb +19 -0
  400. data/spaceship/lib/spaceship/playground.rb +2 -2
  401. data/spaceship/lib/spaceship/spaceauth_runner.rb +38 -15
  402. data/spaceship/lib/spaceship/tunes/iap_detail.rb +1 -1
  403. data/spaceship/lib/spaceship/tunes/members.rb +1 -1
  404. data/spaceship/lib/spaceship/tunes/tunes_client.rb +4 -4
  405. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +59 -33
  406. data/spaceship/lib/spaceship/ui.rb +2 -2
  407. data/spaceship/lib/spaceship/upgrade_2fa_later_client.rb +91 -0
  408. data/supply/lib/supply.rb +1 -1
  409. data/supply/lib/supply/client.rb +5 -3
  410. data/supply/lib/supply/commands_generator.rb +2 -1
  411. data/supply/lib/supply/options.rb +3 -3
  412. data/supply/lib/supply/uploader.rb +6 -4
  413. metadata +124 -92
  414. data/pilot/lib/pilot/features.rb +0 -0
  415. data/pilot/lib/pilot/tester_util.rb +0 -0
@@ -13,28 +13,31 @@ 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
20
- if api_token
23
+ if (api_token = Spaceship::ConnectAPI::Token.from(hash: config[:api_key], filepath: config[:api_key_path]))
21
24
  UI.message("Creating authorization token for App Store Connect API")
22
25
  Spaceship::ConnectAPI.token = api_token
26
+ elsif !Spaceship::ConnectAPI.token.nil?
27
+ UI.message("Using existing authorization token for App Store Connect API")
23
28
  else
24
29
  config[:username] ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
25
30
 
31
+ # Username is now optional since addition of App Store Connect API Key
32
+ # Force asking for username to prompt user if not already set
33
+ config.fetch(:username, force_ask: true)
34
+
26
35
  UI.message("Login to App Store Connect (#{config[:username]})")
27
36
  Spaceship::ConnectAPI.login(config[:username], use_portal: false, use_tunes: true, tunes_team_id: config[:team_id], team_name: config[:team_name])
28
37
  UI.message("Login successful")
29
38
  end
30
39
  end
31
40
 
32
- def api_token
33
- @api_token ||= Spaceship::ConnectAPI::Token.create(config[:api_key]) if config[:api_key]
34
- @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(config[:api_key_path]) if config[:api_key_path]
35
- return @api_token
36
- end
37
-
38
41
  # The app object we're currently using
39
42
  def app
40
43
  @app_id ||= fetch_app_id
@@ -11,7 +11,7 @@ module Pilot
11
11
 
12
12
  [
13
13
  FastlaneCore::ConfigItem.new(key: :api_key_path,
14
- env_name: "PILOT_API_KEY_PATH",
14
+ env_names: ["PILOT_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
15
15
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
16
16
  optional: true,
17
17
  conflicting_options: [:username],
@@ -19,7 +19,7 @@ module Pilot
19
19
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
20
20
  end),
21
21
  FastlaneCore::ConfigItem.new(key: :api_key,
22
- env_name: "PILOT_API_KEY",
22
+ env_names: ["PILOT_API_KEY", "APP_STORE_CONNECT_API_KEY"],
23
23
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
24
24
  type: Hash,
25
25
  optional: true,
@@ -31,6 +31,7 @@ module Pilot
31
31
  short_option: "-u",
32
32
  env_name: "PILOT_USERNAME",
33
33
  description: "Your Apple ID Username",
34
+ optional: true,
34
35
  default_value: user,
35
36
  default_value_dynamic: true),
36
37
  FastlaneCore::ConfigItem.new(key: :app_identifier,
@@ -88,7 +89,7 @@ module Pilot
88
89
  type: Boolean,
89
90
  env_name: "DEMO_ACCOUNT_REQUIRED",
90
91
  description: "Do you need a demo account when Apple does review?",
91
- default_value: false),
92
+ optional: true),
92
93
  FastlaneCore::ConfigItem.new(key: :beta_app_review_info,
93
94
  type: Hash,
94
95
  env_name: "PILOT_BETA_APP_REVIEW_INFO",
@@ -177,13 +178,13 @@ module Pilot
177
178
  FastlaneCore::ConfigItem.new(key: :distribute_external,
178
179
  is_string: false,
179
180
  env_name: "PILOT_DISTRIBUTE_EXTERNAL",
180
- 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",
181
182
  default_value: false),
182
183
  FastlaneCore::ConfigItem.new(key: :notify_external_testers,
183
184
  is_string: false,
184
185
  env_name: "PILOT_NOTIFY_EXTERNAL_TESTERS",
185
- description: "Should notify external testers?",
186
- default_value: true),
186
+ description: "Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify)",
187
+ optional: true),
187
188
  FastlaneCore::ConfigItem.new(key: :app_version,
188
189
  env_name: "PILOT_APP_VERSION",
189
190
  description: "The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed",
@@ -226,7 +227,7 @@ module Pilot
226
227
  FastlaneCore::ConfigItem.new(key: :groups,
227
228
  short_option: "-g",
228
229
  env_name: "PILOT_GROUPS",
229
- 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 ",
230
231
  optional: true,
231
232
  type: Array,
232
233
  verify_block: proc do |value|
@@ -268,12 +269,12 @@ module Pilot
268
269
  verify_block: proc do |value|
269
270
  ENV["FASTLANE_TEAM_ID"] = value.to_s
270
271
  end),
271
- # rubocop:disable Metrics/LineLength
272
+ # rubocop:disable Layout/LineLength
272
273
  FastlaneCore::ConfigItem.new(key: :itc_provider,
273
274
  env_name: "PILOT_ITC_PROVIDER",
274
275
  description: "The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column",
275
276
  optional: true),
276
- # rubocop:enable Metrics/LineLength
277
+ # rubocop:enable Layout/LineLength
277
278
 
278
279
  # waiting and uploaded build
279
280
  FastlaneCore::ConfigItem.new(key: :wait_processing_interval,
@@ -285,6 +286,14 @@ module Pilot
285
286
  verify_block: proc do |value|
286
287
  UI.user_error!("Please enter a valid positive number of seconds") unless value.to_i > 0
287
288
  end),
289
+ FastlaneCore::ConfigItem.new(key: :wait_processing_timeout_duration,
290
+ env_name: "PILOT_WAIT_PROCESSING_TIMEOUT_DURATION",
291
+ description: "Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will `force stop` to wait for App Store Connect processing and exit with exception",
292
+ optional: true,
293
+ type: Integer,
294
+ verify_block: proc do |value|
295
+ UI.user_error!("Please enter a valid positive number of seconds") unless value.to_i > 0
296
+ end),
288
297
  FastlaneCore::ConfigItem.new(key: :wait_for_uploaded_build,
289
298
  env_name: "PILOT_WAIT_FOR_UPLOADED_BUILD",
290
299
  deprecated: "No longer needed with the transition over to the App Store Connect API",
@@ -1,5 +1,4 @@
1
1
  require 'spaceship/tunes/application'
2
- require_relative 'tester_util'
3
2
  require_relative 'module'
4
3
  require_relative 'manager'
5
4
 
@@ -1,7 +1,6 @@
1
1
  require 'terminal-table'
2
2
 
3
3
  require_relative 'manager'
4
- require_relative 'tester_util'
5
4
 
6
5
  module Pilot
7
6
  class TesterManager < Manager
@@ -4,6 +4,7 @@ require "fastlane_core/configuration/commander_generator"
4
4
  require "fastlane_core/configuration/configuration"
5
5
  require "fastlane_core/helper"
6
6
  require "fastlane/version"
7
+ require 'fastlane_core/ui/help_formatter'
7
8
 
8
9
  require_relative 'module'
9
10
  require_relative 'options'
@@ -26,7 +27,7 @@ module Precheck
26
27
  program :help, "Author", "Joshua Liebowitz <taquitos@gmail.com>, @taquitos"
27
28
  program :help, "Website", "https://fastlane.tools"
28
29
  program :help, "Documentation", "https://docs.fastlane.tools/actions/precheck/"
29
- program :help_formatter, :compact
30
+ program :help_formatter, FastlaneCore::HelpFormatter
30
31
 
31
32
  global_option("--verbose") { FastlaneCore::Globals.verbose = true }
32
33
 
@@ -26,7 +26,7 @@ module Precheck
26
26
 
27
27
  [
28
28
  FastlaneCore::ConfigItem.new(key: :api_key_path,
29
- env_name: "PRECHECK_API_KEY_PATH",
29
+ env_names: ["PRECHECK_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
30
30
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
31
31
  optional: true,
32
32
  conflicting_options: [:username],
@@ -34,7 +34,7 @@ module Precheck
34
34
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
35
35
  end),
36
36
  FastlaneCore::ConfigItem.new(key: :api_key,
37
- env_name: "PRECHECK_API_KEY",
37
+ env_names: ["PRECHECK_API_KEY", "APP_STORE_CONNECT_API_KEY"],
38
38
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
39
39
  type: Hash,
40
40
  optional: true,
@@ -52,6 +52,7 @@ module Precheck
52
52
  short_option: "-u",
53
53
  env_name: "PRECHECK_USERNAME",
54
54
  description: "Your Apple ID Username",
55
+ optional: true,
55
56
  default_value: user,
56
57
  default_value_dynamic: true),
57
58
  FastlaneCore::ConfigItem.new(key: :team_id,
@@ -97,7 +98,12 @@ module Precheck
97
98
  description: "Should check in-app purchases?",
98
99
  is_string: false,
99
100
  optional: true,
100
- default_value: true)
101
+ default_value: true),
102
+ FastlaneCore::ConfigItem.new(key: :use_live,
103
+ env_name: "PRECHECK_USE_LIVE",
104
+ description: "Should force check live app?",
105
+ is_string: false,
106
+ default_value: false)
101
107
  ] + rules
102
108
  end
103
109
  end
@@ -130,7 +130,7 @@ module Precheck
130
130
  items = []
131
131
 
132
132
  # App info localizations
133
- app_info = app.fetch_edit_app_info
133
+ app_info = Precheck.config[:use_live] ? app.fetch_live_app_info : app.fetch_latest_app_info
134
134
  app_info_localizations = app_info.get_app_info_localizations
135
135
  app_info_localizations.each do |localization|
136
136
  items << collect_text_items_from_language_item(locale: localization.locale,
@@ -18,6 +18,14 @@ module Precheck
18
18
  hide_keys: [:output_path],
19
19
  title: "Summary for precheck #{Fastlane::VERSION}")
20
20
 
21
+ api_token = if (token = Spaceship::ConnectAPI::Token.from(hash: Precheck.config[:api_key], filepath: Precheck.config[:api_key_path]))
22
+ UI.message("Creating authorization token for App Store Connect API")
23
+ token
24
+ elsif (token = Spaceship::ConnectAPI.token)
25
+ UI.message("Using existing authorization token for App Store Connect API")
26
+ token
27
+ end
28
+
21
29
  if api_token
22
30
 
23
31
  # As of 2020-09-15, App Store Connect API does not have support for IAPs yet
@@ -26,12 +34,15 @@ module Precheck
26
34
  # There is also a check in Deliver::Runner for this.
27
35
  # Please remove check in Deliver when the API support IAPs.
28
36
  if Precheck.config[:include_in_app_purchases]
29
- UI.user_error!("Precheck cannot check In-app purchases with the App Store Connect API Key (yet). Exclude In-app purchases from precheck or use Apple ID login")
37
+ UI.user_error!("Precheck cannot check In-app purchases with the App Store Connect API Key (yet). Exclude In-app purchases from precheck, disable the precheck step in your build step, or use Apple ID login")
30
38
  end
31
39
 
32
- UI.message("Creating authorization token for App Store Connect API")
33
40
  Spaceship::ConnectAPI.token = api_token
34
41
  elsif Spaceship::Tunes.client.nil?
42
+ # Username is now optional since addition of App Store Connect API Key
43
+ # Force asking for username to prompt user if not already set
44
+ Precheck.config.fetch(:username, force_ask: true)
45
+
35
46
  # Team selection passed though FASTLANE_ITC_TEAM_ID and FASTLANE_ITC_TEAM_NAME environment variables
36
47
  # Prompts select team if multiple teams and none specified
37
48
  UI.message("Starting login with user '#{Precheck.config[:username]}'")
@@ -71,12 +82,6 @@ module Precheck
71
82
  return true
72
83
  end
73
84
 
74
- def api_token
75
- @api_token ||= Spaceship::ConnectAPI::Token.create(Precheck.config[:api_key]) if Precheck.config[:api_key]
76
- @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Precheck.config[:api_key_path]) if Precheck.config[:api_key_path]
77
- return @api_token
78
- end
79
-
80
85
  def print_items_not_checked(processor_result: nil)
81
86
  names = processor_result.items_not_checked.map(&:friendly_name)
82
87
  UI.message("😶 Metadata fields not checked by any rule: #{names.join(', ')}".yellow) if names.length > 0
@@ -185,7 +190,7 @@ module Precheck
185
190
 
186
191
  def latest_app_version
187
192
  platform = Spaceship::ConnectAPI::Platform.map(Precheck.config[:platform])
188
- @latest_version ||= app.get_edit_app_store_version(platform: platform)
193
+ @latest_version ||= Precheck.config[:use_live] ? app.get_live_app_store_version(platform: platform) : app.get_latest_app_store_version(platform: platform)
189
194
  end
190
195
 
191
196
  # Makes sure the current App ID exists. If not, it will show an appropriate error message
@@ -1,6 +1,7 @@
1
1
  require 'commander'
2
2
 
3
3
  require 'fastlane/version'
4
+ require 'fastlane_core/ui/help_formatter'
4
5
  require 'fastlane_core/configuration/config_item'
5
6
  require_relative 'module'
6
7
  require_relative 'manager'
@@ -23,7 +24,7 @@ module Produce
23
24
  program :help, 'Author', 'Felix Krause <produce@krausefx.com>'
24
25
  program :help, 'Website', 'https://fastlane.tools'
25
26
  program :help, 'Documentation', 'https://docs.fastlane.tools/actions/produce/'
26
- program :help_formatter, :compact
27
+ program :help_formatter, FastlaneCore::HelpFormatter
27
28
 
28
29
  global_option('--verbose') { FastlaneCore::Globals.verbose = true }
29
30
  global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
@@ -46,29 +47,65 @@ module Produce
46
47
  c.description = 'Enable specific Application Services for a specific app on the Apple Developer Portal'
47
48
  c.example('Enable HealthKit, HomeKit and Passbook', 'fastlane produce enable_services -a com.example.app --healthkit --homekit --passbook')
48
49
 
49
- c.option('--access-wifi', 'Enable Access WiFi')
50
- 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')
51
53
  c.option('--apple-pay', 'Enable Apple Pay')
52
- c.option('--auto-fill-credential', 'Enable AutoFill Credential')
53
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')
54
59
  c.option('--data-protection STRING', String, 'Enable Data Protection, suitable values are "complete", "unlessopen" and "untilfirstauth"')
55
- c.option('--game-center', 'Enable Game Center')
56
- c.option('--healthkit', 'Enable HealthKit')
57
- 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')
58
68
  c.option('--hotspot', 'Enable Hotspot')
59
- c.option('--icloud STRING', String, 'Enable iCloud, suitable values are "legacy" and "cloudkit"')
60
- c.option('--in-app-purchase', 'Enable In-App Purchase')
61
- 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')
62
74
  c.option('--multipath', 'Enable Multipath')
63
- c.option('--network-extension', 'Enable Network Extensions')
75
+ c.option('--network-extension', 'Enable Network Extension')
64
76
  c.option('--nfc-tag-reading', 'Enable NFC Tag Reading')
65
77
  c.option('--personal-vpn', 'Enable Personal VPN')
66
78
  c.option('--passbook', 'Enable Passbook (deprecated)')
67
- c.option('--push-notification', 'Enable Push notification (only enables the service, does not configure certificates)')
68
- c.option('--sirikit', 'Enable SiriKit')
69
- 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)')
70
85
  c.option('--wallet', 'Enable Wallet')
71
- 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')
72
109
 
73
110
  FastlaneCore::CommanderGenerator.new.generate(Produce::Options.available_options, command: c)
74
111
 
@@ -87,29 +124,65 @@ module Produce
87
124
  c.description = 'Disable specific Application Services for a specific app on the Apple Developer Portal'
88
125
  c.example('Disable HealthKit', 'fastlane produce disable_services -a com.example.app --healthkit')
89
126
 
90
- c.option('--access-wifi', 'Disable Access WiFi')
91
- 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')
92
130
  c.option('--apple-pay', 'Disable Apple Pay')
93
- c.option('--auto-fill-credential', 'Disable AutoFill Credential')
94
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')
95
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')
96
141
  c.option('--game-center', 'Disable Game Center')
97
- c.option('--healthkit', 'Disable HealthKit')
98
- 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')
99
145
  c.option('--hotspot', 'Disable Hotspot')
100
- c.option('--icloud', 'Disable iCloud')
101
- c.option('--in-app-purchase', 'Disable In-App Purchase')
102
- 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')
103
151
  c.option('--multipath', 'Disable Multipath')
104
- c.option('--network-extension', 'Disable Network Extensions')
152
+ c.option('--network-extension', 'Disable Network Extension')
105
153
  c.option('--nfc-tag-reading', 'Disable NFC Tag Reading')
106
154
  c.option('--personal-vpn', 'Disable Personal VPN')
107
155
  c.option('--passbook', 'Disable Passbook (deprecated)')
108
- c.option('--push-notification', 'Disable Push notifications')
109
- c.option('--sirikit', 'Disable SiriKit')
110
- 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)')
111
162
  c.option('--wallet', 'Disable Wallet')
112
- 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')
113
186
 
114
187
  FastlaneCore::CommanderGenerator.new.generate(Produce::Options.available_options, command: c)
115
188
 
@@ -10,37 +10,75 @@ module Produce
10
10
  SERVICE_UNTIL_FIRST_LAUNCH = "untilfirstauth"
11
11
  SERVICE_LEGACY = "legacy"
12
12
  SERVICE_CLOUDKIT = "cloudkit"
13
+ SERVICE_GAME_CENTER_IOS = "ios"
14
+ SERVICE_GAME_CENTER_MAC = "mac"
15
+ SERVICE_PRIMARY_APP_CONSENT = "on"
13
16
 
14
17
  ALLOWED_SERVICES = {
15
18
  access_wifi: [SERVICE_ON, SERVICE_OFF],
19
+ app_attest: [SERVICE_ON, SERVICE_OFF],
16
20
  app_group: [SERVICE_ON, SERVICE_OFF],
17
21
  apple_pay: [SERVICE_ON, SERVICE_OFF],
18
22
  associated_domains: [SERVICE_ON, SERVICE_OFF],
19
23
  auto_fill_credential: [SERVICE_ON, SERVICE_OFF],
24
+ class_kit: [SERVICE_ON, SERVICE_OFF],
25
+ icloud: [SERVICE_LEGACY, SERVICE_CLOUDKIT],
26
+ custom_network_protocol: [SERVICE_ON, SERVICE_OFF],
20
27
  data_protection: [
21
28
  SERVICE_COMPLETE,
22
29
  SERVICE_UNLESS_OPEN,
23
30
  SERVICE_UNTIL_FIRST_LAUNCH
24
31
  ],
25
- game_center: [SERVICE_ON, SERVICE_OFF],
32
+ extended_virtual_address_space: [SERVICE_ON, SERVICE_OFF],
33
+ family_controls: [SERVICE_ON, SERVICE_OFF],
34
+ file_provider_testing_mode: [SERVICE_ON, SERVICE_OFF],
35
+ fonts: [SERVICE_ON, SERVICE_OFF],
36
+ game_center: [SERVICE_GAME_CENTER_IOS, SERVICE_GAME_CENTER_MAC],
26
37
  health_kit: [SERVICE_ON, SERVICE_OFF],
38
+ hls_interstitial_preview: [SERVICE_ON, SERVICE_OFF],
27
39
  home_kit: [SERVICE_ON, SERVICE_OFF],
28
40
  hotspot: [SERVICE_ON, SERVICE_OFF],
29
- icloud: [SERVICE_LEGACY, SERVICE_CLOUDKIT],
30
41
  in_app_purchase: [SERVICE_ON, SERVICE_OFF],
31
42
  inter_app_audio: [SERVICE_ON, SERVICE_OFF],
43
+ low_latency_hls: [SERVICE_ON, SERVICE_OFF],
44
+ managed_associated_domains: [SERVICE_ON, SERVICE_OFF],
45
+ maps: [SERVICE_ON, SERVICE_OFF],
32
46
  multipath: [SERVICE_ON, SERVICE_OFF],
33
47
  network_extension: [SERVICE_ON, SERVICE_OFF],
34
48
  nfc_tag_reading: [SERVICE_ON, SERVICE_OFF],
35
49
  personal_vpn: [SERVICE_ON, SERVICE_OFF],
36
50
  passbook: [SERVICE_ON, SERVICE_OFF],
37
51
  push_notification: [SERVICE_ON, SERVICE_OFF],
52
+ sign_in_with_apple: [SERVICE_PRIMARY_APP_CONSENT],
38
53
  siri_kit: [SERVICE_ON, SERVICE_OFF],
54
+ system_extension: [SERVICE_ON, SERVICE_OFF],
55
+ user_management: [SERVICE_ON, SERVICE_OFF],
39
56
  vpn_configuration: [SERVICE_ON, SERVICE_OFF],
40
57
  wallet: [SERVICE_ON, SERVICE_OFF],
41
- wireless_accessory: [SERVICE_ON, SERVICE_OFF]
58
+ wireless_accessory: [SERVICE_ON, SERVICE_OFF],
59
+ car_play_audio_app: [SERVICE_ON, SERVICE_OFF],
60
+ car_play_messaging_app: [SERVICE_ON, SERVICE_OFF],
61
+ car_play_navigation_app: [SERVICE_ON, SERVICE_OFF],
62
+ car_play_voip_calling_app: [SERVICE_ON, SERVICE_OFF],
63
+ critical_alerts: [SERVICE_ON, SERVICE_OFF],
64
+ hotspot_helper: [SERVICE_ON, SERVICE_OFF],
65
+ driver_kit: [SERVICE_ON, SERVICE_OFF],
66
+ driver_kit_endpoint_security: [SERVICE_ON, SERVICE_OFF],
67
+ driver_kit_family_hid_device: [SERVICE_ON, SERVICE_OFF],
68
+ driver_kit_family_networking: [SERVICE_ON, SERVICE_OFF],
69
+ driver_kit_family_serial: [SERVICE_ON, SERVICE_OFF],
70
+ driver_kit_hid_event_service: [SERVICE_ON, SERVICE_OFF],
71
+ driver_kit_transport_hid: [SERVICE_ON, SERVICE_OFF],
72
+ multitasking_camera_access: [SERVICE_ON, SERVICE_OFF],
73
+ sf_universal_link_api: [SERVICE_ON, SERVICE_OFF],
74
+ vp9_decoder: [SERVICE_ON, SERVICE_OFF],
75
+ music_kit: [SERVICE_ON, SERVICE_OFF],
76
+ shazam_kit: [SERVICE_ON, SERVICE_OFF],
77
+ communication_notifications: [SERVICE_ON, SERVICE_OFF],
78
+ group_activities: [SERVICE_ON, SERVICE_OFF],
79
+ health_kit_estimate_recalibration: [SERVICE_ON, SERVICE_OFF],
80
+ time_sensitive_notifications: [SERVICE_ON, SERVICE_OFF],
42
81
  }
43
-
44
82
  def run
45
83
  login
46
84
  create_new_app