fastlane_hotfix 2.165.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (868) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/LICENSE +21 -0
  4. data/README.md +208 -0
  5. data/bin/bin-proxy +19 -0
  6. data/bin/fastlane +23 -0
  7. data/cert/README.md +17 -0
  8. data/cert/lib/cert.rb +4 -0
  9. data/cert/lib/cert/commands_generator.rb +60 -0
  10. data/cert/lib/cert/module.rb +16 -0
  11. data/cert/lib/cert/options.rb +132 -0
  12. data/cert/lib/cert/runner.rb +239 -0
  13. data/credentials_manager/README.md +64 -0
  14. data/credentials_manager/lib/credentials_manager.rb +7 -0
  15. data/credentials_manager/lib/credentials_manager/account_manager.rb +157 -0
  16. data/credentials_manager/lib/credentials_manager/appfile_config.rb +196 -0
  17. data/credentials_manager/lib/credentials_manager/cli.rb +69 -0
  18. data/deliver/README.md +17 -0
  19. data/deliver/lib/assets/DeliverfileDefault +3 -0
  20. data/deliver/lib/assets/DeliverfileDefault.swift +13 -0
  21. data/deliver/lib/assets/ScreenshotsHelp +7 -0
  22. data/deliver/lib/assets/summary.html.erb +299 -0
  23. data/deliver/lib/deliver.rb +15 -0
  24. data/deliver/lib/deliver/app_screenshot.rb +354 -0
  25. data/deliver/lib/deliver/app_screenshot_iterator.rb +95 -0
  26. data/deliver/lib/deliver/commands_generator.rb +190 -0
  27. data/deliver/lib/deliver/detect_values.rb +102 -0
  28. data/deliver/lib/deliver/download_screenshots.rb +76 -0
  29. data/deliver/lib/deliver/generate_summary.rb +13 -0
  30. data/deliver/lib/deliver/html_generator.rb +78 -0
  31. data/deliver/lib/deliver/languages.rb +7 -0
  32. data/deliver/lib/deliver/loader.rb +55 -0
  33. data/deliver/lib/deliver/module.rb +18 -0
  34. data/deliver/lib/deliver/options.rb +465 -0
  35. data/deliver/lib/deliver/queue_worker.rb +49 -0
  36. data/deliver/lib/deliver/runner.rb +233 -0
  37. data/deliver/lib/deliver/setup.rb +199 -0
  38. data/deliver/lib/deliver/submit_for_review.rb +214 -0
  39. data/deliver/lib/deliver/upload_metadata.rb +688 -0
  40. data/deliver/lib/deliver/upload_price_tier.rb +40 -0
  41. data/deliver/lib/deliver/upload_screenshots.rb +333 -0
  42. data/fastlane/README.md +11 -0
  43. data/fastlane/lib/assets/ActionDetails.md.erb +106 -0
  44. data/fastlane/lib/assets/Actions.md.erb +43 -0
  45. data/fastlane/lib/assets/AppfileTemplate +6 -0
  46. data/fastlane/lib/assets/AppfileTemplate.swift +7 -0
  47. data/fastlane/lib/assets/AppfileTemplateAndroid +2 -0
  48. data/fastlane/lib/assets/DefaultFastfileTemplate +20 -0
  49. data/fastlane/lib/assets/DefaultFastfileTemplate.swift +13 -0
  50. data/fastlane/lib/assets/completions/completion.bash +23 -0
  51. data/fastlane/lib/assets/completions/completion.fish +39 -0
  52. data/fastlane/lib/assets/completions/completion.sh +12 -0
  53. data/fastlane/lib/assets/completions/completion.zsh +23 -0
  54. data/fastlane/lib/assets/custom_action_template.rb +82 -0
  55. data/fastlane/lib/assets/mailgun_html_template.erb +142 -0
  56. data/fastlane/lib/assets/report_template.xml.erb +15 -0
  57. data/fastlane/lib/assets/s3_html_template.erb +105 -0
  58. data/fastlane/lib/assets/s3_plist_template.erb +31 -0
  59. data/fastlane/lib/assets/s3_version_template.erb +4 -0
  60. data/fastlane/lib/fastlane.rb +53 -0
  61. data/fastlane/lib/fastlane/action.rb +198 -0
  62. data/fastlane/lib/fastlane/action_collector.rb +35 -0
  63. data/fastlane/lib/fastlane/actions/README.md +5 -0
  64. data/fastlane/lib/fastlane/actions/actions_helper.rb +185 -0
  65. data/fastlane/lib/fastlane/actions/adb.rb +78 -0
  66. data/fastlane/lib/fastlane/actions/adb_devices.rb +71 -0
  67. data/fastlane/lib/fastlane/actions/add_extra_platforms.rb +45 -0
  68. data/fastlane/lib/fastlane/actions/add_git_tag.rb +122 -0
  69. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +249 -0
  70. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +134 -0
  71. data/fastlane/lib/fastlane/actions/appaloosa.rb +266 -0
  72. data/fastlane/lib/fastlane/actions/appetize.rb +188 -0
  73. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +146 -0
  74. data/fastlane/lib/fastlane/actions/appium.rb +206 -0
  75. data/fastlane/lib/fastlane/actions/appledoc.rb +226 -0
  76. data/fastlane/lib/fastlane/actions/appstore.rb +14 -0
  77. data/fastlane/lib/fastlane/actions/apteligent.rb +105 -0
  78. data/fastlane/lib/fastlane/actions/artifactory.rb +157 -0
  79. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +226 -0
  80. data/fastlane/lib/fastlane/actions/backup_file.rb +41 -0
  81. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +135 -0
  82. data/fastlane/lib/fastlane/actions/badge.rb +155 -0
  83. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +107 -0
  84. data/fastlane/lib/fastlane/actions/build_android_app.rb +14 -0
  85. data/fastlane/lib/fastlane/actions/build_app.rb +165 -0
  86. data/fastlane/lib/fastlane/actions/build_ios_app.rb +47 -0
  87. data/fastlane/lib/fastlane/actions/build_mac_app.rb +46 -0
  88. data/fastlane/lib/fastlane/actions/bundle_install.rb +156 -0
  89. data/fastlane/lib/fastlane/actions/capture_android_screenshots.rb +63 -0
  90. data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +61 -0
  91. data/fastlane/lib/fastlane/actions/capture_screenshots.rb +14 -0
  92. data/fastlane/lib/fastlane/actions/carthage.rb +230 -0
  93. data/fastlane/lib/fastlane/actions/cert.rb +14 -0
  94. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +197 -0
  95. data/fastlane/lib/fastlane/actions/chatwork.rb +94 -0
  96. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +54 -0
  97. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +72 -0
  98. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +52 -0
  99. data/fastlane/lib/fastlane/actions/clear_derived_data.rb +70 -0
  100. data/fastlane/lib/fastlane/actions/clipboard.rb +52 -0
  101. data/fastlane/lib/fastlane/actions/cloc.rb +89 -0
  102. data/fastlane/lib/fastlane/actions/cocoapods.rb +170 -0
  103. data/fastlane/lib/fastlane/actions/commit_github_file.rb +186 -0
  104. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +301 -0
  105. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +114 -0
  106. data/fastlane/lib/fastlane/actions/crashlytics.rb +211 -0
  107. data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +174 -0
  108. data/fastlane/lib/fastlane/actions/create_app_online.rb +75 -0
  109. data/fastlane/lib/fastlane/actions/create_keychain.rb +177 -0
  110. data/fastlane/lib/fastlane/actions/create_pull_request.rb +265 -0
  111. data/fastlane/lib/fastlane/actions/danger.rb +131 -0
  112. data/fastlane/lib/fastlane/actions/debug.rb +32 -0
  113. data/fastlane/lib/fastlane/actions/default_platform.rb +47 -0
  114. data/fastlane/lib/fastlane/actions/delete_keychain.rb +68 -0
  115. data/fastlane/lib/fastlane/actions/deliver.rb +14 -0
  116. data/fastlane/lib/fastlane/actions/deploygate.rb +210 -0
  117. data/fastlane/lib/fastlane/actions/device_grid/README.md +157 -0
  118. data/fastlane/lib/fastlane/actions/docs/build_app.md +245 -0
  119. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +333 -0
  120. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +371 -0
  121. data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +103 -0
  122. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +282 -0
  123. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +349 -0
  124. data/fastlane/lib/fastlane/actions/docs/get_certificates.md +86 -0
  125. data/fastlane/lib/fastlane/actions/docs/get_provisioning_profile.md +223 -0
  126. data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +134 -0
  127. data/fastlane/lib/fastlane/actions/docs/run_tests.md +151 -0
  128. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +573 -0
  129. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +725 -0
  130. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +203 -0
  131. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +250 -0
  132. data/fastlane/lib/fastlane/actions/dotgpg_environment.rb +57 -0
  133. data/fastlane/lib/fastlane/actions/download.rb +76 -0
  134. data/fastlane/lib/fastlane/actions/download_dsyms.rb +369 -0
  135. data/fastlane/lib/fastlane/actions/download_from_play_store.rb +61 -0
  136. data/fastlane/lib/fastlane/actions/dsym_zip.rb +93 -0
  137. data/fastlane/lib/fastlane/actions/echo.rb +14 -0
  138. data/fastlane/lib/fastlane/actions/ensure_bundle_exec.rb +59 -0
  139. data/fastlane/lib/fastlane/actions/ensure_env_vars.rb +58 -0
  140. data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +69 -0
  141. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +92 -0
  142. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +135 -0
  143. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +125 -0
  144. data/fastlane/lib/fastlane/actions/environment_variable.rb +77 -0
  145. data/fastlane/lib/fastlane/actions/erb.rb +96 -0
  146. data/fastlane/lib/fastlane/actions/fastlane_version.rb +15 -0
  147. data/fastlane/lib/fastlane/actions/flock.rb +82 -0
  148. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +64 -0
  149. data/fastlane/lib/fastlane/actions/frameit.rb +14 -0
  150. data/fastlane/lib/fastlane/actions/gcovr.rb +163 -0
  151. data/fastlane/lib/fastlane/actions/get_build_number.rb +106 -0
  152. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +120 -0
  153. data/fastlane/lib/fastlane/actions/get_certificates.rb +77 -0
  154. data/fastlane/lib/fastlane/actions/get_github_release.rb +166 -0
  155. data/fastlane/lib/fastlane/actions/get_info_plist_value.rb +78 -0
  156. data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +82 -0
  157. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +120 -0
  158. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +101 -0
  159. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +87 -0
  160. data/fastlane/lib/fastlane/actions/get_version_number.rb +200 -0
  161. data/fastlane/lib/fastlane/actions/git_add.rb +93 -0
  162. data/fastlane/lib/fastlane/actions/git_branch.rb +61 -0
  163. data/fastlane/lib/fastlane/actions/git_commit.rb +80 -0
  164. data/fastlane/lib/fastlane/actions/git_pull.rb +64 -0
  165. data/fastlane/lib/fastlane/actions/git_submodule_update.rb +52 -0
  166. data/fastlane/lib/fastlane/actions/git_tag_exists.rb +74 -0
  167. data/fastlane/lib/fastlane/actions/github_api.rb +262 -0
  168. data/fastlane/lib/fastlane/actions/google_play_track_release_names.rb +74 -0
  169. data/fastlane/lib/fastlane/actions/google_play_track_version_codes.rb +77 -0
  170. data/fastlane/lib/fastlane/actions/gradle.rb +329 -0
  171. data/fastlane/lib/fastlane/actions/gym.rb +10 -0
  172. data/fastlane/lib/fastlane/actions/hg_add_tag.rb +48 -0
  173. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +183 -0
  174. data/fastlane/lib/fastlane/actions/hg_ensure_clean_status.rb +53 -0
  175. data/fastlane/lib/fastlane/actions/hg_push.rb +64 -0
  176. data/fastlane/lib/fastlane/actions/hipchat.rb +200 -0
  177. data/fastlane/lib/fastlane/actions/hockey.rb +406 -0
  178. data/fastlane/lib/fastlane/actions/ifttt.rb +96 -0
  179. data/fastlane/lib/fastlane/actions/import.rb +49 -0
  180. data/fastlane/lib/fastlane/actions/import_certificate.rb +77 -0
  181. data/fastlane/lib/fastlane/actions/import_from_git.rb +83 -0
  182. data/fastlane/lib/fastlane/actions/increment_build_number.rb +117 -0
  183. data/fastlane/lib/fastlane/actions/increment_version_number.rb +180 -0
  184. data/fastlane/lib/fastlane/actions/install_on_device.rb +95 -0
  185. data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +58 -0
  186. data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +91 -0
  187. data/fastlane/lib/fastlane/actions/installr.rb +132 -0
  188. data/fastlane/lib/fastlane/actions/ipa.rb +246 -0
  189. data/fastlane/lib/fastlane/actions/is_ci.rb +51 -0
  190. data/fastlane/lib/fastlane/actions/jazzy.rb +56 -0
  191. data/fastlane/lib/fastlane/actions/jira.rb +115 -0
  192. data/fastlane/lib/fastlane/actions/lane_context.rb +60 -0
  193. data/fastlane/lib/fastlane/actions/last_git_commit.rb +58 -0
  194. data/fastlane/lib/fastlane/actions/last_git_tag.rb +60 -0
  195. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +155 -0
  196. data/fastlane/lib/fastlane/actions/lcov.rb +102 -0
  197. data/fastlane/lib/fastlane/actions/mailgun.rb +197 -0
  198. data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +81 -0
  199. data/fastlane/lib/fastlane/actions/match.rb +14 -0
  200. data/fastlane/lib/fastlane/actions/min_fastlane_version.rb +57 -0
  201. data/fastlane/lib/fastlane/actions/modify_services.rb +173 -0
  202. data/fastlane/lib/fastlane/actions/nexus_upload.rb +230 -0
  203. data/fastlane/lib/fastlane/actions/notarize.rb +193 -0
  204. data/fastlane/lib/fastlane/actions/notification.rb +75 -0
  205. data/fastlane/lib/fastlane/actions/notify.rb +40 -0
  206. data/fastlane/lib/fastlane/actions/number_of_commits.rb +75 -0
  207. data/fastlane/lib/fastlane/actions/oclint.rb +269 -0
  208. data/fastlane/lib/fastlane/actions/onesignal.rb +186 -0
  209. data/fastlane/lib/fastlane/actions/opt_out_crash_reporting.rb +33 -0
  210. data/fastlane/lib/fastlane/actions/opt_out_usage.rb +40 -0
  211. data/fastlane/lib/fastlane/actions/pem.rb +14 -0
  212. data/fastlane/lib/fastlane/actions/pilot.rb +14 -0
  213. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +189 -0
  214. data/fastlane/lib/fastlane/actions/pod_push.rb +173 -0
  215. data/fastlane/lib/fastlane/actions/podio_item.rb +217 -0
  216. data/fastlane/lib/fastlane/actions/precheck.rb +14 -0
  217. data/fastlane/lib/fastlane/actions/println.rb +14 -0
  218. data/fastlane/lib/fastlane/actions/produce.rb +14 -0
  219. data/fastlane/lib/fastlane/actions/prompt.rb +119 -0
  220. data/fastlane/lib/fastlane/actions/push_git_tags.rb +76 -0
  221. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +127 -0
  222. data/fastlane/lib/fastlane/actions/puts.rb +68 -0
  223. data/fastlane/lib/fastlane/actions/read_podspec.rb +90 -0
  224. data/fastlane/lib/fastlane/actions/recreate_schemes.rb +46 -0
  225. data/fastlane/lib/fastlane/actions/register_device.rb +151 -0
  226. data/fastlane/lib/fastlane/actions/register_devices.rb +214 -0
  227. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +121 -0
  228. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +92 -0
  229. data/fastlane/lib/fastlane/actions/resign.rb +132 -0
  230. data/fastlane/lib/fastlane/actions/restore_file.rb +44 -0
  231. data/fastlane/lib/fastlane/actions/rocket.rb +83 -0
  232. data/fastlane/lib/fastlane/actions/rsync.rb +74 -0
  233. data/fastlane/lib/fastlane/actions/ruby_version.rb +56 -0
  234. data/fastlane/lib/fastlane/actions/run_tests.rb +114 -0
  235. data/fastlane/lib/fastlane/actions/s3.rb +174 -0
  236. data/fastlane/lib/fastlane/actions/say.rb +56 -0
  237. data/fastlane/lib/fastlane/actions/scan.rb +14 -0
  238. data/fastlane/lib/fastlane/actions/scp.rb +114 -0
  239. data/fastlane/lib/fastlane/actions/screengrab.rb +14 -0
  240. data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +76 -0
  241. data/fastlane/lib/fastlane/actions/set_changelog.rb +204 -0
  242. data/fastlane/lib/fastlane/actions/set_github_release.rb +274 -0
  243. data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +92 -0
  244. data/fastlane/lib/fastlane/actions/set_pod_key.rb +78 -0
  245. data/fastlane/lib/fastlane/actions/setup_ci.rb +132 -0
  246. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +58 -0
  247. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +202 -0
  248. data/fastlane/lib/fastlane/actions/setup_travis.rb +57 -0
  249. data/fastlane/lib/fastlane/actions/sh.rb +71 -0
  250. data/fastlane/lib/fastlane/actions/sigh.rb +14 -0
  251. data/fastlane/lib/fastlane/actions/skip_docs.rb +52 -0
  252. data/fastlane/lib/fastlane/actions/slack.rb +288 -0
  253. data/fastlane/lib/fastlane/actions/slather.rb +329 -0
  254. data/fastlane/lib/fastlane/actions/snapshot.rb +14 -0
  255. data/fastlane/lib/fastlane/actions/sonar.rb +177 -0
  256. data/fastlane/lib/fastlane/actions/spaceship_logs.rb +135 -0
  257. data/fastlane/lib/fastlane/actions/spaceship_stats.rb +73 -0
  258. data/fastlane/lib/fastlane/actions/splunkmint.rb +156 -0
  259. data/fastlane/lib/fastlane/actions/spm.rb +138 -0
  260. data/fastlane/lib/fastlane/actions/ssh.rb +162 -0
  261. data/fastlane/lib/fastlane/actions/supply.rb +14 -0
  262. data/fastlane/lib/fastlane/actions/swiftlint.rb +240 -0
  263. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +109 -0
  264. data/fastlane/lib/fastlane/actions/team_id.rb +42 -0
  265. data/fastlane/lib/fastlane/actions/team_name.rb +42 -0
  266. data/fastlane/lib/fastlane/actions/testfairy.rb +285 -0
  267. data/fastlane/lib/fastlane/actions/testflight.rb +14 -0
  268. data/fastlane/lib/fastlane/actions/tryouts.rb +149 -0
  269. data/fastlane/lib/fastlane/actions/twitter.rb +89 -0
  270. data/fastlane/lib/fastlane/actions/typetalk.rb +93 -0
  271. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +132 -0
  272. data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +91 -0
  273. data/fastlane/lib/fastlane/actions/update_app_identifier.rb +124 -0
  274. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +203 -0
  275. data/fastlane/lib/fastlane/actions/update_fastlane.rb +137 -0
  276. data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +99 -0
  277. data/fastlane/lib/fastlane/actions/update_info_plist.rb +143 -0
  278. data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +94 -0
  279. data/fastlane/lib/fastlane/actions/update_plist.rb +115 -0
  280. data/fastlane/lib/fastlane/actions/update_project_code_signing.rb +76 -0
  281. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +173 -0
  282. data/fastlane/lib/fastlane/actions/update_project_team.rb +95 -0
  283. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +91 -0
  284. data/fastlane/lib/fastlane/actions/update_url_schemes.rb +123 -0
  285. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +231 -0
  286. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +165 -0
  287. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +67 -0
  288. data/fastlane/lib/fastlane/actions/upload_to_play_store.rb +80 -0
  289. data/fastlane/lib/fastlane/actions/upload_to_play_store_internal_app_sharing.rb +78 -0
  290. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +119 -0
  291. data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +104 -0
  292. data/fastlane/lib/fastlane/actions/verify_build.rb +199 -0
  293. data/fastlane/lib/fastlane/actions/verify_pod_keys.rb +67 -0
  294. data/fastlane/lib/fastlane/actions/verify_xcode.rb +159 -0
  295. data/fastlane/lib/fastlane/actions/version_bump_podspec.rb +105 -0
  296. data/fastlane/lib/fastlane/actions/version_get_podspec.rb +71 -0
  297. data/fastlane/lib/fastlane/actions/xcode_install.rb +105 -0
  298. data/fastlane/lib/fastlane/actions/xcode_select.rb +68 -0
  299. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +312 -0
  300. data/fastlane/lib/fastlane/actions/xcodebuild.rb +641 -0
  301. data/fastlane/lib/fastlane/actions/xcov.rb +66 -0
  302. data/fastlane/lib/fastlane/actions/xctool.rb +55 -0
  303. data/fastlane/lib/fastlane/actions/xcversion.rb +55 -0
  304. data/fastlane/lib/fastlane/actions/zip.rb +120 -0
  305. data/fastlane/lib/fastlane/auto_complete.rb +82 -0
  306. data/fastlane/lib/fastlane/boolean.rb +5 -0
  307. data/fastlane/lib/fastlane/cli_tools_distributor.rb +207 -0
  308. data/fastlane/lib/fastlane/command_line_handler.rb +49 -0
  309. data/fastlane/lib/fastlane/commands_generator.rb +369 -0
  310. data/fastlane/lib/fastlane/configuration_helper.rb +26 -0
  311. data/fastlane/lib/fastlane/core_ext/bundler_monkey_patch.rb +14 -0
  312. data/fastlane/lib/fastlane/documentation/actions_list.rb +214 -0
  313. data/fastlane/lib/fastlane/documentation/docs_generator.rb +89 -0
  314. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +228 -0
  315. data/fastlane/lib/fastlane/environment_printer.rb +303 -0
  316. data/fastlane/lib/fastlane/erb_template_helper.rb +30 -0
  317. data/fastlane/lib/fastlane/fast_file.rb +439 -0
  318. data/fastlane/lib/fastlane/fastlane_require.rb +75 -0
  319. data/fastlane/lib/fastlane/features.rb +4 -0
  320. data/fastlane/lib/fastlane/helper/README.md +29 -0
  321. data/fastlane/lib/fastlane/helper/adb_helper.rb +66 -0
  322. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +157 -0
  323. data/fastlane/lib/fastlane/helper/dotenv_helper.rb +50 -0
  324. data/fastlane/lib/fastlane/helper/gem_helper.rb +26 -0
  325. data/fastlane/lib/fastlane/helper/git_helper.rb +137 -0
  326. data/fastlane/lib/fastlane/helper/gradle_helper.rb +62 -0
  327. data/fastlane/lib/fastlane/helper/lane_helper.rb +13 -0
  328. data/fastlane/lib/fastlane/helper/podspec_helper.rb +75 -0
  329. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +78 -0
  330. data/fastlane/lib/fastlane/helper/sh_helper.rb +134 -0
  331. data/fastlane/lib/fastlane/helper/xcodeproj_helper.rb +12 -0
  332. data/fastlane/lib/fastlane/helper/xcversion_helper.rb +25 -0
  333. data/fastlane/lib/fastlane/junit_generator.rb +27 -0
  334. data/fastlane/lib/fastlane/lane.rb +97 -0
  335. data/fastlane/lib/fastlane/lane_list.rb +137 -0
  336. data/fastlane/lib/fastlane/lane_manager.rb +130 -0
  337. data/fastlane/lib/fastlane/lane_manager_base.rb +92 -0
  338. data/fastlane/lib/fastlane/markdown_table_formatter.rb +62 -0
  339. data/fastlane/lib/fastlane/new_action.rb +47 -0
  340. data/fastlane/lib/fastlane/one_off.rb +45 -0
  341. data/fastlane/lib/fastlane/other_action.rb +29 -0
  342. data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +55 -0
  343. data/fastlane/lib/fastlane/plugins/plugin_generator.rb +86 -0
  344. data/fastlane/lib/fastlane/plugins/plugin_generator_ui.rb +19 -0
  345. data/fastlane/lib/fastlane/plugins/plugin_info.rb +49 -0
  346. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +159 -0
  347. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +399 -0
  348. data/fastlane/lib/fastlane/plugins/plugin_search.rb +46 -0
  349. data/fastlane/lib/fastlane/plugins/plugin_update_manager.rb +70 -0
  350. data/fastlane/lib/fastlane/plugins/plugins.rb +12 -0
  351. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +35 -0
  352. data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +43 -0
  353. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +29 -0
  354. data/fastlane/lib/fastlane/plugins/template/.gitignore +12 -0
  355. data/fastlane/lib/fastlane/plugins/template/.rspec +5 -0
  356. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +188 -0
  357. data/fastlane/lib/fastlane/plugins/template/.travis.yml +4 -0
  358. data/fastlane/lib/fastlane/plugins/template/Gemfile +6 -0
  359. data/fastlane/lib/fastlane/plugins/template/LICENSE.erb +21 -0
  360. data/fastlane/lib/fastlane/plugins/template/README.md.erb +52 -0
  361. data/fastlane/lib/fastlane/plugins/template/Rakefile +9 -0
  362. data/fastlane/lib/fastlane/plugins/template/fastlane/Fastfile.erb +3 -0
  363. data/fastlane/lib/fastlane/plugins/template/fastlane/Pluginfile.erb +1 -0
  364. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%.rb.erb +16 -0
  365. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +47 -0
  366. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +16 -0
  367. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/version.rb.erb +5 -0
  368. data/fastlane/lib/fastlane/plugins/template/spec/%plugin_name%_action_spec.rb.erb +9 -0
  369. data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +15 -0
  370. data/fastlane/lib/fastlane/runner.rb +378 -0
  371. data/fastlane/lib/fastlane/server/action_command.rb +61 -0
  372. data/fastlane/lib/fastlane/server/action_command_return.rb +14 -0
  373. data/fastlane/lib/fastlane/server/command_executor.rb +7 -0
  374. data/fastlane/lib/fastlane/server/command_parser.rb +44 -0
  375. data/fastlane/lib/fastlane/server/control_command.rb +23 -0
  376. data/fastlane/lib/fastlane/server/json_return_value_processor.rb +72 -0
  377. data/fastlane/lib/fastlane/server/socket_server.rb +238 -0
  378. data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +101 -0
  379. data/fastlane/lib/fastlane/setup/setup.rb +355 -0
  380. data/fastlane/lib/fastlane/setup/setup_android.rb +97 -0
  381. data/fastlane/lib/fastlane/setup/setup_ios.rb +504 -0
  382. data/fastlane/lib/fastlane/shells.rb +6 -0
  383. data/fastlane/lib/fastlane/supported_platforms.rb +28 -0
  384. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +477 -0
  385. data/fastlane/lib/fastlane/swift_fastlane_function.rb +419 -0
  386. data/fastlane/lib/fastlane/swift_lane_manager.rb +296 -0
  387. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +210 -0
  388. data/fastlane/lib/fastlane/tools.rb +33 -0
  389. data/fastlane/lib/fastlane/version.rb +6 -0
  390. data/fastlane/swift/Actions.swift +16 -0
  391. data/fastlane/swift/Appfile.swift +15 -0
  392. data/fastlane/swift/ArgumentProcessor.swift +89 -0
  393. data/fastlane/swift/ControlCommand.swift +74 -0
  394. data/fastlane/swift/Deliverfile.swift +20 -0
  395. data/fastlane/swift/DeliverfileProtocol.swift +259 -0
  396. data/fastlane/swift/Fastfile.swift +16 -0
  397. data/fastlane/swift/Fastlane.swift +9402 -0
  398. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +434 -0
  399. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  400. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  401. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +97 -0
  402. data/fastlane/swift/FastlaneSwiftRunner/README.txt +10 -0
  403. data/fastlane/swift/Gymfile.swift +20 -0
  404. data/fastlane/swift/GymfileProtocol.swift +187 -0
  405. data/fastlane/swift/LaneFileProtocol.swift +149 -0
  406. data/fastlane/swift/MainProcess.swift +77 -0
  407. data/fastlane/swift/Matchfile.swift +20 -0
  408. data/fastlane/swift/MatchfileProtocol.swift +187 -0
  409. data/fastlane/swift/Plugins.swift +16 -0
  410. data/fastlane/swift/Precheckfile.swift +20 -0
  411. data/fastlane/swift/PrecheckfileProtocol.swift +51 -0
  412. data/fastlane/swift/RubyCommand.swift +157 -0
  413. data/fastlane/swift/RubyCommandable.swift +43 -0
  414. data/fastlane/swift/Runner.swift +275 -0
  415. data/fastlane/swift/RunnerArgument.swift +20 -0
  416. data/fastlane/swift/Scanfile.swift +20 -0
  417. data/fastlane/swift/ScanfileProtocol.swift +263 -0
  418. data/fastlane/swift/Screengrabfile.swift +20 -0
  419. data/fastlane/swift/ScreengrabfileProtocol.swift +99 -0
  420. data/fastlane/swift/Snapshotfile.swift +20 -0
  421. data/fastlane/swift/SnapshotfileProtocol.swift +187 -0
  422. data/fastlane/swift/SocketClient.swift +327 -0
  423. data/fastlane/swift/SocketClientDelegateProtocol.swift +21 -0
  424. data/fastlane/swift/SocketResponse.swift +82 -0
  425. data/fastlane/swift/formatting/Brewfile +1 -0
  426. data/fastlane/swift/formatting/Brewfile.lock.json +47 -0
  427. data/fastlane/swift/formatting/Rakefile +18 -0
  428. data/fastlane/swift/main.swift +47 -0
  429. data/fastlane/swift/upgrade_manifest.json +1 -0
  430. data/fastlane_core/README.md +79 -0
  431. data/fastlane_core/lib/assets/XMLTemplate.xml.erb +12 -0
  432. data/fastlane_core/lib/fastlane_core.rb +46 -0
  433. data/fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb +34 -0
  434. data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +38 -0
  435. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +23 -0
  436. data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +54 -0
  437. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +70 -0
  438. data/fastlane_core/lib/fastlane_core/analytics/app_identifier_guesser.rb +64 -0
  439. data/fastlane_core/lib/fastlane_core/android_package_name_guesser.rb +79 -0
  440. data/fastlane_core/lib/fastlane_core/build_watcher.rb +96 -0
  441. data/fastlane_core/lib/fastlane_core/cert_checker.rb +144 -0
  442. data/fastlane_core/lib/fastlane_core/command_executor.rb +100 -0
  443. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +103 -0
  444. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +321 -0
  445. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +332 -0
  446. data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +182 -0
  447. data/fastlane_core/lib/fastlane_core/core_ext/cfpropertylist.rb +23 -0
  448. data/fastlane_core/lib/fastlane_core/core_ext/shellwords.rb +63 -0
  449. data/fastlane_core/lib/fastlane_core/core_ext/string.rb +17 -0
  450. data/fastlane_core/lib/fastlane_core/device_manager.rb +374 -0
  451. data/fastlane_core/lib/fastlane_core/env.rb +9 -0
  452. data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +72 -0
  453. data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +57 -0
  454. data/fastlane_core/lib/fastlane_core/feature/feature.rb +51 -0
  455. data/fastlane_core/lib/fastlane_core/features.rb +4 -0
  456. data/fastlane_core/lib/fastlane_core/globals.rb +27 -0
  457. data/fastlane_core/lib/fastlane_core/helper.rb +437 -0
  458. data/fastlane_core/lib/fastlane_core/ios_app_identifier_guesser.rb +112 -0
  459. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +63 -0
  460. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +52 -0
  461. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +595 -0
  462. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +120 -0
  463. data/fastlane_core/lib/fastlane_core/languages.rb +16 -0
  464. data/fastlane_core/lib/fastlane_core/module.rb +31 -0
  465. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +51 -0
  466. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +48 -0
  467. data/fastlane_core/lib/fastlane_core/print_table.rb +131 -0
  468. data/fastlane_core/lib/fastlane_core/project.rb +509 -0
  469. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +124 -0
  470. data/fastlane_core/lib/fastlane_core/string_filters.rb +51 -0
  471. data/fastlane_core/lib/fastlane_core/swag.rb +85 -0
  472. data/fastlane_core/lib/fastlane_core/tag_version.rb +31 -0
  473. data/fastlane_core/lib/fastlane_core/test_parser.rb +107 -0
  474. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +17 -0
  475. data/fastlane_core/lib/fastlane_core/ui/errors.rb +1 -0
  476. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_common_error.rb +19 -0
  477. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_crash.rb +11 -0
  478. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_error.rb +25 -0
  479. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_exception.rb +19 -0
  480. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_shell_error.rb +11 -0
  481. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +294 -0
  482. data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +62 -0
  483. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +159 -0
  484. data/fastlane_core/lib/fastlane_core/ui/interface.rb +205 -0
  485. data/fastlane_core/lib/fastlane_core/ui/ui.rb +26 -0
  486. data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +37 -0
  487. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +109 -0
  488. data/frameit/README.md +17 -0
  489. data/frameit/lib/assets/empty.png +0 -0
  490. data/frameit/lib/frameit.rb +13 -0
  491. data/frameit/lib/frameit/commands_generator.rb +140 -0
  492. data/frameit/lib/frameit/config_parser.rb +136 -0
  493. data/frameit/lib/frameit/dependency_checker.rb +22 -0
  494. data/frameit/lib/frameit/device.rb +90 -0
  495. data/frameit/lib/frameit/device_types.rb +144 -0
  496. data/frameit/lib/frameit/editor.rb +560 -0
  497. data/frameit/lib/frameit/frame_downloader.rb +85 -0
  498. data/frameit/lib/frameit/mac_editor.rb +35 -0
  499. data/frameit/lib/frameit/module.rb +42 -0
  500. data/frameit/lib/frameit/offsets.rb +28 -0
  501. data/frameit/lib/frameit/options.rb +112 -0
  502. data/frameit/lib/frameit/runner.rb +97 -0
  503. data/frameit/lib/frameit/screenshot.rb +134 -0
  504. data/frameit/lib/frameit/strings_parser.rb +46 -0
  505. data/frameit/lib/frameit/template_finder.rb +45 -0
  506. data/frameit/lib/frameit/trim_box.rb +35 -0
  507. data/gym/README.md +17 -0
  508. data/gym/lib/assets/GymfileTemplate +13 -0
  509. data/gym/lib/assets/GymfileTemplate.swift +13 -0
  510. data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +61 -0
  511. data/gym/lib/gym.rb +9 -0
  512. data/gym/lib/gym/code_signing_mapping.rb +210 -0
  513. data/gym/lib/gym/commands_generator.rb +78 -0
  514. data/gym/lib/gym/detect_values.rb +206 -0
  515. data/gym/lib/gym/error_handler.rb +306 -0
  516. data/gym/lib/gym/generators/README.md +1 -0
  517. data/gym/lib/gym/generators/build_command_generator.rb +147 -0
  518. data/gym/lib/gym/generators/package_command_generator.rb +68 -0
  519. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +232 -0
  520. data/gym/lib/gym/manager.rb +22 -0
  521. data/gym/lib/gym/module.rb +74 -0
  522. data/gym/lib/gym/options.rb +286 -0
  523. data/gym/lib/gym/runner.rb +365 -0
  524. data/gym/lib/gym/xcode.rb +27 -0
  525. data/gym/lib/gym/xcodebuild_fixes/README.md +9 -0
  526. data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +35 -0
  527. data/match/README.md +17 -0
  528. data/match/lib/assets/MatchfileTemplate +11 -0
  529. data/match/lib/assets/MatchfileTemplate.swift +9 -0
  530. data/match/lib/assets/READMETemplate.md +59 -0
  531. data/match/lib/match.rb +14 -0
  532. data/match/lib/match/change_password.rb +53 -0
  533. data/match/lib/match/commands_generator.rb +190 -0
  534. data/match/lib/match/encryption.rb +49 -0
  535. data/match/lib/match/encryption/interface.rb +17 -0
  536. data/match/lib/match/encryption/openssl.rb +161 -0
  537. data/match/lib/match/generator.rb +122 -0
  538. data/match/lib/match/importer.rb +157 -0
  539. data/match/lib/match/migrate.rb +109 -0
  540. data/match/lib/match/module.rb +32 -0
  541. data/match/lib/match/nuke.rb +350 -0
  542. data/match/lib/match/options.rb +315 -0
  543. data/match/lib/match/runner.rb +369 -0
  544. data/match/lib/match/setup.rb +40 -0
  545. data/match/lib/match/spaceship_ensure.rb +97 -0
  546. data/match/lib/match/storage.rb +46 -0
  547. data/match/lib/match/storage/git_storage.rb +250 -0
  548. data/match/lib/match/storage/google_cloud_storage.rb +382 -0
  549. data/match/lib/match/storage/interface.rb +119 -0
  550. data/match/lib/match/storage/s3_storage.rb +205 -0
  551. data/match/lib/match/table_printer.rb +51 -0
  552. data/match/lib/match/utils.rb +75 -0
  553. data/pem/README.md +17 -0
  554. data/pem/lib/pem.rb +4 -0
  555. data/pem/lib/pem/commands_generator.rb +47 -0
  556. data/pem/lib/pem/manager.rb +112 -0
  557. data/pem/lib/pem/module.rb +19 -0
  558. data/pem/lib/pem/options.rb +103 -0
  559. data/pilot/README.md +17 -0
  560. data/pilot/lib/pilot.rb +9 -0
  561. data/pilot/lib/pilot/build_manager.rb +546 -0
  562. data/pilot/lib/pilot/commands_generator.rb +174 -0
  563. data/pilot/lib/pilot/features.rb +0 -0
  564. data/pilot/lib/pilot/manager.rb +90 -0
  565. data/pilot/lib/pilot/module.rb +11 -0
  566. data/pilot/lib/pilot/options.rb +303 -0
  567. data/pilot/lib/pilot/tester_exporter.rb +58 -0
  568. data/pilot/lib/pilot/tester_importer.rb +53 -0
  569. data/pilot/lib/pilot/tester_manager.rb +168 -0
  570. data/pilot/lib/pilot/tester_util.rb +0 -0
  571. data/precheck/README.md +17 -0
  572. data/precheck/lib/assets/PrecheckfileTemplate +27 -0
  573. data/precheck/lib/assets/PrecheckfileTemplate.swift +19 -0
  574. data/precheck/lib/precheck.rb +3 -0
  575. data/precheck/lib/precheck/commands_generator.rb +74 -0
  576. data/precheck/lib/precheck/item_to_check.rb +58 -0
  577. data/precheck/lib/precheck/module.rb +21 -0
  578. data/precheck/lib/precheck/options.rb +104 -0
  579. data/precheck/lib/precheck/rule.rb +171 -0
  580. data/precheck/lib/precheck/rule_check_result.rb +19 -0
  581. data/precheck/lib/precheck/rule_processor.rb +265 -0
  582. data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +80 -0
  583. data/precheck/lib/precheck/rules/all.rb +1 -0
  584. data/precheck/lib/precheck/rules/copyright_date_rule.rb +37 -0
  585. data/precheck/lib/precheck/rules/curse_words_rule.rb +62 -0
  586. data/precheck/lib/precheck/rules/custom_text_rule.rb +35 -0
  587. data/precheck/lib/precheck/rules/free_stuff_iap_rule.rb +31 -0
  588. data/precheck/lib/precheck/rules/future_functionality_rule.rb +33 -0
  589. data/precheck/lib/precheck/rules/negative_apple_sentiment_rule.rb +37 -0
  590. data/precheck/lib/precheck/rules/other_platforms_rule.rb +43 -0
  591. data/precheck/lib/precheck/rules/placeholder_words_rule.rb +31 -0
  592. data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/en_us.txt +349 -0
  593. data/precheck/lib/precheck/rules/test_words_rule.rb +30 -0
  594. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +47 -0
  595. data/precheck/lib/precheck/runner.rb +197 -0
  596. data/produce/README.md +17 -0
  597. data/produce/lib/produce.rb +6 -0
  598. data/produce/lib/produce/available_default_languages.rb +51 -0
  599. data/produce/lib/produce/cloud_container.rb +82 -0
  600. data/produce/lib/produce/commands_generator.rb +236 -0
  601. data/produce/lib/produce/developer_center.rb +143 -0
  602. data/produce/lib/produce/group.rb +90 -0
  603. data/produce/lib/produce/itunes_connect.rb +139 -0
  604. data/produce/lib/produce/manager.rb +15 -0
  605. data/produce/lib/produce/merchant.rb +121 -0
  606. data/produce/lib/produce/module.rb +14 -0
  607. data/produce/lib/produce/options.rb +184 -0
  608. data/produce/lib/produce/service.rb +319 -0
  609. data/scan/README.md +17 -0
  610. data/scan/lib/assets/ScanfileTemplate +16 -0
  611. data/scan/lib/assets/ScanfileTemplate.swift +13 -0
  612. data/scan/lib/scan.rb +10 -0
  613. data/scan/lib/scan/commands_generator.rb +78 -0
  614. data/scan/lib/scan/detect_values.rb +224 -0
  615. data/scan/lib/scan/error_handler.rb +57 -0
  616. data/scan/lib/scan/manager.rb +38 -0
  617. data/scan/lib/scan/module.rb +32 -0
  618. data/scan/lib/scan/options.rb +445 -0
  619. data/scan/lib/scan/runner.rb +197 -0
  620. data/scan/lib/scan/slack_poster.rb +60 -0
  621. data/scan/lib/scan/test_command_generator.rb +174 -0
  622. data/scan/lib/scan/test_result_parser.rb +33 -0
  623. data/scan/lib/scan/xcpretty_reporter_options_generator.rb +85 -0
  624. data/screengrab/README.md +17 -0
  625. data/screengrab/lib/assets/ScreengrabfileTemplate +15 -0
  626. data/screengrab/lib/assets/ScreengrabfileTemplate.swift +15 -0
  627. data/screengrab/lib/screengrab.rb +7 -0
  628. data/screengrab/lib/screengrab/android_environment.rb +91 -0
  629. data/screengrab/lib/screengrab/commands_generator.rb +70 -0
  630. data/screengrab/lib/screengrab/dependency_checker.rb +58 -0
  631. data/screengrab/lib/screengrab/detect_values.rb +16 -0
  632. data/screengrab/lib/screengrab/module.rb +26 -0
  633. data/screengrab/lib/screengrab/options.rb +148 -0
  634. data/screengrab/lib/screengrab/page.html.erb +190 -0
  635. data/screengrab/lib/screengrab/reports_generator.rb +36 -0
  636. data/screengrab/lib/screengrab/runner.rb +449 -0
  637. data/screengrab/lib/screengrab/setup.rb +24 -0
  638. data/sigh/README.md +17 -0
  639. data/sigh/lib/assets/resign.sh +909 -0
  640. data/sigh/lib/sigh.rb +4 -0
  641. data/sigh/lib/sigh/commands_generator.rb +154 -0
  642. data/sigh/lib/sigh/download_all.rb +112 -0
  643. data/sigh/lib/sigh/local_manage.rb +145 -0
  644. data/sigh/lib/sigh/manager.rb +47 -0
  645. data/sigh/lib/sigh/module.rb +42 -0
  646. data/sigh/lib/sigh/options.rb +187 -0
  647. data/sigh/lib/sigh/repair.rb +34 -0
  648. data/sigh/lib/sigh/resign.rb +220 -0
  649. data/sigh/lib/sigh/runner.rb +402 -0
  650. data/snapshot/README.md +17 -0
  651. data/snapshot/lib/assets/SnapfileTemplate +37 -0
  652. data/snapshot/lib/assets/SnapfileTemplate.swift +41 -0
  653. data/snapshot/lib/assets/SnapshotHelper.swift +301 -0
  654. data/snapshot/lib/assets/SnapshotHelperXcode8.swift +172 -0
  655. data/snapshot/lib/snapshot.rb +19 -0
  656. data/snapshot/lib/snapshot/collector.rb +140 -0
  657. data/snapshot/lib/snapshot/commands_generator.rb +115 -0
  658. data/snapshot/lib/snapshot/dependency_checker.rb +69 -0
  659. data/snapshot/lib/snapshot/detect_values.rb +86 -0
  660. data/snapshot/lib/snapshot/error_handler.rb +24 -0
  661. data/snapshot/lib/snapshot/fixes/README.md +5 -0
  662. data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +27 -0
  663. data/snapshot/lib/snapshot/fixes/simulator_shared_pasteboard.rb +16 -0
  664. data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +27 -0
  665. data/snapshot/lib/snapshot/latest_os_version.rb +34 -0
  666. data/snapshot/lib/snapshot/module.rb +44 -0
  667. data/snapshot/lib/snapshot/options.rb +290 -0
  668. data/snapshot/lib/snapshot/page.html.erb +285 -0
  669. data/snapshot/lib/snapshot/reports_generator.rb +139 -0
  670. data/snapshot/lib/snapshot/reset_simulators.rb +122 -0
  671. data/snapshot/lib/snapshot/runner.rb +146 -0
  672. data/snapshot/lib/snapshot/screenshot_flatten.rb +20 -0
  673. data/snapshot/lib/snapshot/screenshot_rotate.rb +36 -0
  674. data/snapshot/lib/snapshot/setup.rb +58 -0
  675. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +62 -0
  676. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +219 -0
  677. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +200 -0
  678. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +113 -0
  679. data/snapshot/lib/snapshot/test_command_generator.rb +108 -0
  680. data/snapshot/lib/snapshot/test_command_generator_base.rb +128 -0
  681. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +70 -0
  682. data/snapshot/lib/snapshot/update.rb +38 -0
  683. data/spaceship/README.md +183 -0
  684. data/spaceship/lib/assets/displayFamilies.json +181 -0
  685. data/spaceship/lib/assets/languageMapping.json +306 -0
  686. data/spaceship/lib/assets/languageMappingReadable.json +30 -0
  687. data/spaceship/lib/spaceship.rb +30 -0
  688. data/spaceship/lib/spaceship/base.rb +310 -0
  689. data/spaceship/lib/spaceship/client.rb +913 -0
  690. data/spaceship/lib/spaceship/commands_generator.rb +53 -0
  691. data/spaceship/lib/spaceship/connect_api.rb +116 -0
  692. data/spaceship/lib/spaceship/connect_api/api_client.rb +279 -0
  693. data/spaceship/lib/spaceship/connect_api/client.rb +216 -0
  694. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +99 -0
  695. data/spaceship/lib/spaceship/connect_api/model.rb +172 -0
  696. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +114 -0
  697. data/spaceship/lib/spaceship/connect_api/models/app.rb +388 -0
  698. data/spaceship/lib/spaceship/connect_api/models/app_category.rb +94 -0
  699. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +95 -0
  700. data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +39 -0
  701. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +131 -0
  702. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +100 -0
  703. data/spaceship/lib/spaceship/connect_api/models/app_price.rb +22 -0
  704. data/spaceship/lib/spaceship/connect_api/models/app_price_point.rb +26 -0
  705. data/spaceship/lib/spaceship/connect_api/models/app_price_tier.rb +12 -0
  706. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +187 -0
  707. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +153 -0
  708. data/spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb +71 -0
  709. data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +51 -0
  710. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +217 -0
  711. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +85 -0
  712. data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +57 -0
  713. data/spaceship/lib/spaceship/connect_api/models/app_store_version_release_request.rb +12 -0
  714. data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +26 -0
  715. data/spaceship/lib/spaceship/connect_api/models/beta_app_localization.rb +28 -0
  716. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_detail.rb +32 -0
  717. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +26 -0
  718. data/spaceship/lib/spaceship/connect_api/models/beta_build_localization.rb +20 -0
  719. data/spaceship/lib/spaceship/connect_api/models/beta_build_metric.rb +24 -0
  720. data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +75 -0
  721. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +41 -0
  722. data/spaceship/lib/spaceship/connect_api/models/beta_screenshot.rb +18 -0
  723. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +57 -0
  724. data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +44 -0
  725. data/spaceship/lib/spaceship/connect_api/models/build.rb +172 -0
  726. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +61 -0
  727. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +36 -0
  728. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +58 -0
  729. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +71 -0
  730. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +102 -0
  731. data/spaceship/lib/spaceship/connect_api/models/custom_app_organization.rb +43 -0
  732. data/spaceship/lib/spaceship/connect_api/models/custom_app_user.rb +41 -0
  733. data/spaceship/lib/spaceship/connect_api/models/device.rb +58 -0
  734. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +41 -0
  735. data/spaceship/lib/spaceship/connect_api/models/pre_release_version.rb +20 -0
  736. data/spaceship/lib/spaceship/connect_api/models/profile.rb +97 -0
  737. data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +26 -0
  738. data/spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb +64 -0
  739. data/spaceship/lib/spaceship/connect_api/models/territory.rb +27 -0
  740. data/spaceship/lib/spaceship/connect_api/models/user.rb +51 -0
  741. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +59 -0
  742. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +92 -0
  743. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +143 -0
  744. data/spaceship/lib/spaceship/connect_api/response.rb +67 -0
  745. data/spaceship/lib/spaceship/connect_api/spaceship.rb +102 -0
  746. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +24 -0
  747. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +391 -0
  748. data/spaceship/lib/spaceship/connect_api/token.rb +102 -0
  749. data/spaceship/lib/spaceship/connect_api/token_refresh_middleware.rb +24 -0
  750. data/spaceship/lib/spaceship/connect_api/tunes/client.rb +24 -0
  751. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +1045 -0
  752. data/spaceship/lib/spaceship/connect_api/users/client.rb +24 -0
  753. data/spaceship/lib/spaceship/connect_api/users/users.rb +80 -0
  754. data/spaceship/lib/spaceship/du/du_client.rb +138 -0
  755. data/spaceship/lib/spaceship/du/upload_file.rb +58 -0
  756. data/spaceship/lib/spaceship/du/utilities.rb +99 -0
  757. data/spaceship/lib/spaceship/errors.rb +82 -0
  758. data/spaceship/lib/spaceship/globals.rb +12 -0
  759. data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +20 -0
  760. data/spaceship/lib/spaceship/helper/plist_middleware.rb +16 -0
  761. data/spaceship/lib/spaceship/helper/rels_middleware.rb +28 -0
  762. data/spaceship/lib/spaceship/launcher.rb +99 -0
  763. data/spaceship/lib/spaceship/module.rb +8 -0
  764. data/spaceship/lib/spaceship/playground.rb +75 -0
  765. data/spaceship/lib/spaceship/portal/app.rb +201 -0
  766. data/spaceship/lib/spaceship/portal/app_group.rb +73 -0
  767. data/spaceship/lib/spaceship/portal/app_service.rb +87 -0
  768. data/spaceship/lib/spaceship/portal/certificate.rb +365 -0
  769. data/spaceship/lib/spaceship/portal/cloud_container.rb +74 -0
  770. data/spaceship/lib/spaceship/portal/device.rb +191 -0
  771. data/spaceship/lib/spaceship/portal/invite.rb +53 -0
  772. data/spaceship/lib/spaceship/portal/key.rb +101 -0
  773. data/spaceship/lib/spaceship/portal/legacy_wrapper.rb +21 -0
  774. data/spaceship/lib/spaceship/portal/merchant.rb +86 -0
  775. data/spaceship/lib/spaceship/portal/passbook.rb +78 -0
  776. data/spaceship/lib/spaceship/portal/person.rb +62 -0
  777. data/spaceship/lib/spaceship/portal/persons.rb +67 -0
  778. data/spaceship/lib/spaceship/portal/portal.rb +17 -0
  779. data/spaceship/lib/spaceship/portal/portal_base.rb +16 -0
  780. data/spaceship/lib/spaceship/portal/portal_client.rb +862 -0
  781. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +559 -0
  782. data/spaceship/lib/spaceship/portal/provisioning_profile_template.rb +52 -0
  783. data/spaceship/lib/spaceship/portal/spaceship.rb +154 -0
  784. data/spaceship/lib/spaceship/portal/ui/select_team.rb +116 -0
  785. data/spaceship/lib/spaceship/portal/website_push.rb +88 -0
  786. data/spaceship/lib/spaceship/provider.rb +13 -0
  787. data/spaceship/lib/spaceship/spaceauth_runner.rb +74 -0
  788. data/spaceship/lib/spaceship/stats_middleware.rb +65 -0
  789. data/spaceship/lib/spaceship/test_flight.rb +10 -0
  790. data/spaceship/lib/spaceship/test_flight/app_test_info.rb +40 -0
  791. data/spaceship/lib/spaceship/test_flight/base.rb +39 -0
  792. data/spaceship/lib/spaceship/test_flight/beta_review_info.rb +19 -0
  793. data/spaceship/lib/spaceship/test_flight/build.rb +242 -0
  794. data/spaceship/lib/spaceship/test_flight/build_trains.rb +50 -0
  795. data/spaceship/lib/spaceship/test_flight/client.rb +361 -0
  796. data/spaceship/lib/spaceship/test_flight/export_compliance.rb +12 -0
  797. data/spaceship/lib/spaceship/test_flight/group.rb +131 -0
  798. data/spaceship/lib/spaceship/test_flight/test_info.rb +56 -0
  799. data/spaceship/lib/spaceship/test_flight/tester.rb +136 -0
  800. data/spaceship/lib/spaceship/tunes/app_analytics.rb +168 -0
  801. data/spaceship/lib/spaceship/tunes/app_details.rb +147 -0
  802. data/spaceship/lib/spaceship/tunes/app_image.rb +51 -0
  803. data/spaceship/lib/spaceship/tunes/app_ratings.rb +58 -0
  804. data/spaceship/lib/spaceship/tunes/app_review.rb +55 -0
  805. data/spaceship/lib/spaceship/tunes/app_review_attachment.rb +49 -0
  806. data/spaceship/lib/spaceship/tunes/app_screenshot.rb +12 -0
  807. data/spaceship/lib/spaceship/tunes/app_status.rb +63 -0
  808. data/spaceship/lib/spaceship/tunes/app_submission.rb +161 -0
  809. data/spaceship/lib/spaceship/tunes/app_trailer.rb +64 -0
  810. data/spaceship/lib/spaceship/tunes/app_version.rb +970 -0
  811. data/spaceship/lib/spaceship/tunes/app_version_common.rb +35 -0
  812. data/spaceship/lib/spaceship/tunes/app_version_generated_promocodes.rb +28 -0
  813. data/spaceship/lib/spaceship/tunes/app_version_history.rb +52 -0
  814. data/spaceship/lib/spaceship/tunes/app_version_promocodes.rb +27 -0
  815. data/spaceship/lib/spaceship/tunes/app_version_ref.rb +15 -0
  816. data/spaceship/lib/spaceship/tunes/app_version_states_history.rb +27 -0
  817. data/spaceship/lib/spaceship/tunes/application.rb +453 -0
  818. data/spaceship/lib/spaceship/tunes/availability.rb +164 -0
  819. data/spaceship/lib/spaceship/tunes/b2b_organization.rb +50 -0
  820. data/spaceship/lib/spaceship/tunes/b2b_user.rb +30 -0
  821. data/spaceship/lib/spaceship/tunes/build.rb +263 -0
  822. data/spaceship/lib/spaceship/tunes/build_details.rb +184 -0
  823. data/spaceship/lib/spaceship/tunes/build_train.rb +181 -0
  824. data/spaceship/lib/spaceship/tunes/developer_response.rb +23 -0
  825. data/spaceship/lib/spaceship/tunes/device_type.rb +17 -0
  826. data/spaceship/lib/spaceship/tunes/display_family.rb +84 -0
  827. data/spaceship/lib/spaceship/tunes/errors.rb +17 -0
  828. data/spaceship/lib/spaceship/tunes/iap.rb +168 -0
  829. data/spaceship/lib/spaceship/tunes/iap_detail.rb +264 -0
  830. data/spaceship/lib/spaceship/tunes/iap_families.rb +68 -0
  831. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +90 -0
  832. data/spaceship/lib/spaceship/tunes/iap_family_list.rb +28 -0
  833. data/spaceship/lib/spaceship/tunes/iap_list.rb +76 -0
  834. data/spaceship/lib/spaceship/tunes/iap_status.rb +56 -0
  835. data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_info.rb +46 -0
  836. data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_tier.rb +25 -0
  837. data/spaceship/lib/spaceship/tunes/iap_type.rb +45 -0
  838. data/spaceship/lib/spaceship/tunes/language_converter.rb +65 -0
  839. data/spaceship/lib/spaceship/tunes/language_item.rb +61 -0
  840. data/spaceship/lib/spaceship/tunes/legacy_wrapper.rb +13 -0
  841. data/spaceship/lib/spaceship/tunes/member.rb +84 -0
  842. data/spaceship/lib/spaceship/tunes/members.rb +35 -0
  843. data/spaceship/lib/spaceship/tunes/pricing_info.rb +42 -0
  844. data/spaceship/lib/spaceship/tunes/pricing_tier.rb +25 -0
  845. data/spaceship/lib/spaceship/tunes/sandbox_tester.rb +74 -0
  846. data/spaceship/lib/spaceship/tunes/spaceship.rb +39 -0
  847. data/spaceship/lib/spaceship/tunes/territory.rb +39 -0
  848. data/spaceship/lib/spaceship/tunes/transit_app_file.rb +23 -0
  849. data/spaceship/lib/spaceship/tunes/tunes.rb +35 -0
  850. data/spaceship/lib/spaceship/tunes/tunes_base.rb +17 -0
  851. data/spaceship/lib/spaceship/tunes/tunes_client.rb +1644 -0
  852. data/spaceship/lib/spaceship/tunes/user_detail.rb +15 -0
  853. data/spaceship/lib/spaceship/tunes/version_set.rb +26 -0
  854. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +346 -0
  855. data/spaceship/lib/spaceship/ui.rb +27 -0
  856. data/supply/README.md +17 -0
  857. data/supply/lib/supply.rb +53 -0
  858. data/supply/lib/supply/apk_listing.rb +14 -0
  859. data/supply/lib/supply/client.rb +551 -0
  860. data/supply/lib/supply/commands_generator.rb +67 -0
  861. data/supply/lib/supply/languages.rb +88 -0
  862. data/supply/lib/supply/listing.rb +32 -0
  863. data/supply/lib/supply/options.rb +324 -0
  864. data/supply/lib/supply/reader.rb +41 -0
  865. data/supply/lib/supply/release_listing.rb +18 -0
  866. data/supply/lib/supply/setup.rb +122 -0
  867. data/supply/lib/supply/uploader.rb +480 -0
  868. metadata +1832 -0
@@ -0,0 +1,22 @@
1
+ require 'fastlane_core/print_table'
2
+ require_relative 'module'
3
+ require_relative 'runner'
4
+
5
+ module Gym
6
+ class Manager
7
+ def work(options)
8
+ Gym.config = options
9
+
10
+ # Also print out the path to the used Xcode installation
11
+ # We go 2 folders up, to not show "Contents/Developer/"
12
+ values = Gym.config.values(ask: false)
13
+ values[:xcode_path] = File.expand_path("../..", FastlaneCore::Helper.xcode_path)
14
+
15
+ FastlaneCore::PrintTable.print_values(config: values,
16
+ hide_keys: [],
17
+ title: "Summary for gym #{Fastlane::VERSION}")
18
+
19
+ return Runner.new.run
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,74 @@
1
+ require 'fastlane_core/helper'
2
+ require 'fastlane/boolean'
3
+ require_relative 'detect_values'
4
+
5
+ module Gym
6
+ class << self
7
+ attr_accessor :config
8
+
9
+ attr_accessor :project
10
+
11
+ attr_accessor :cache
12
+
13
+ def config=(value)
14
+ @config = value
15
+ DetectValues.set_additional_default_values
16
+ @cache = {}
17
+ end
18
+
19
+ def gymfile_name
20
+ "Gymfile"
21
+ end
22
+
23
+ def init_libs
24
+ # Import all the fixes
25
+ require 'gym/xcodebuild_fixes/generic_archive_fix'
26
+ end
27
+
28
+ def building_for_ios?
29
+ if Gym.project.mac?
30
+ # Can be building for iOS if mac project and catalyst
31
+ return building_mac_catalyst_for_ios?
32
+ else
33
+ # Can be iOS project and build for mac if catalyst
34
+ return false if building_mac_catalyst_for_mac?
35
+
36
+ # Can be iOS project if iOS, tvOS, or watchOS
37
+ return Gym.project.ios? || Gym.project.tvos? || Gym.project.watchos?
38
+ end
39
+ end
40
+
41
+ def building_for_mac?
42
+ if Gym.project.supports_mac_catalyst?
43
+ # Can be a mac project and not build mac if catalyst
44
+ return building_mac_catalyst_for_mac?
45
+ else
46
+ return Gym.project.mac?
47
+ end
48
+ end
49
+
50
+ def building_mac_catalyst_for_ios?
51
+ Gym.project.supports_mac_catalyst? && Gym.config[:catalyst_platform] == "ios"
52
+ end
53
+
54
+ def building_mac_catalyst_for_mac?
55
+ Gym.project.supports_mac_catalyst? && Gym.config[:catalyst_platform] == "macos"
56
+ end
57
+
58
+ def export_destination_upload?
59
+ config_path = Gym.cache[:config_path]
60
+ return false if config_path.nil?
61
+
62
+ result = CFPropertyList.native_types(CFPropertyList::List.new(file: config_path).value)
63
+ return result["destination"] == "upload"
64
+ end
65
+ end
66
+
67
+ Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
68
+ UI = FastlaneCore::UI
69
+ Boolean = Fastlane::Boolean
70
+ ROOT = Pathname.new(File.expand_path('../../..', __FILE__))
71
+ DESCRIPTION = "Building your iOS apps has never been easier"
72
+
73
+ Gym.init_libs
74
+ end
@@ -0,0 +1,286 @@
1
+ require 'fastlane_core/configuration/config_item'
2
+ require 'credentials_manager/appfile_config'
3
+ require_relative 'module'
4
+
5
+ module Gym
6
+ class Options
7
+ def self.available_options
8
+ return @options if @options
9
+
10
+ @options = plain_options
11
+ end
12
+
13
+ def self.plain_options
14
+ [
15
+ FastlaneCore::ConfigItem.new(key: :workspace,
16
+ short_option: "-w",
17
+ env_name: "GYM_WORKSPACE",
18
+ optional: true,
19
+ description: "Path to the workspace file",
20
+ verify_block: proc do |value|
21
+ v = File.expand_path(value.to_s)
22
+ UI.user_error!("Workspace file not found at path '#{v}'") unless File.exist?(v)
23
+ UI.user_error!("Workspace file invalid") unless File.directory?(v)
24
+ UI.user_error!("Workspace file is not a workspace, must end with .xcworkspace") unless v.include?(".xcworkspace")
25
+ end,
26
+ conflicting_options: [:project],
27
+ conflict_block: proc do |value|
28
+ UI.user_error!("You can only pass either a 'workspace' or a '#{value.key}', not both")
29
+ end),
30
+ FastlaneCore::ConfigItem.new(key: :project,
31
+ short_option: "-p",
32
+ optional: true,
33
+ env_name: "GYM_PROJECT",
34
+ description: "Path to the project file",
35
+ verify_block: proc do |value|
36
+ v = File.expand_path(value.to_s)
37
+ UI.user_error!("Project file not found at path '#{v}'") unless File.exist?(v)
38
+ UI.user_error!("Project file invalid") unless File.directory?(v)
39
+ UI.user_error!("Project file is not a project file, must end with .xcodeproj") unless v.include?(".xcodeproj")
40
+ end,
41
+ conflicting_options: [:workspace],
42
+ conflict_block: proc do |value|
43
+ UI.user_error!("You can only pass either a 'project' or a '#{value.key}', not both")
44
+ end),
45
+ FastlaneCore::ConfigItem.new(key: :scheme,
46
+ short_option: "-s",
47
+ optional: true,
48
+ env_name: "GYM_SCHEME",
49
+ description: "The project's scheme. Make sure it's marked as `Shared`"),
50
+ FastlaneCore::ConfigItem.new(key: :clean,
51
+ short_option: "-c",
52
+ env_name: "GYM_CLEAN",
53
+ description: "Should the project be cleaned before building it?",
54
+ type: Boolean,
55
+ default_value: false),
56
+ FastlaneCore::ConfigItem.new(key: :output_directory,
57
+ short_option: "-o",
58
+ env_name: "GYM_OUTPUT_DIRECTORY",
59
+ description: "The directory in which the ipa file should be stored in",
60
+ default_value: "."),
61
+ FastlaneCore::ConfigItem.new(key: :output_name,
62
+ short_option: "-n",
63
+ env_name: "GYM_OUTPUT_NAME",
64
+ description: "The name of the resulting ipa file",
65
+ optional: true),
66
+ FastlaneCore::ConfigItem.new(key: :configuration,
67
+ short_option: "-q",
68
+ env_name: "GYM_CONFIGURATION",
69
+ description: "The configuration to use when building the app. Defaults to 'Release'",
70
+ default_value_dynamic: true,
71
+ optional: true),
72
+ FastlaneCore::ConfigItem.new(key: :silent,
73
+ short_option: "-a",
74
+ env_name: "GYM_SILENT",
75
+ description: "Hide all information that's not necessary while building",
76
+ default_value: false,
77
+ type: Boolean),
78
+ FastlaneCore::ConfigItem.new(key: :codesigning_identity,
79
+ short_option: "-i",
80
+ env_name: "GYM_CODE_SIGNING_IDENTITY",
81
+ description: "The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH'",
82
+ optional: true),
83
+ FastlaneCore::ConfigItem.new(key: :skip_package_ipa,
84
+ env_name: "GYM_SKIP_PACKAGE_IPA",
85
+ description: "Should we skip packaging the ipa?",
86
+ type: Boolean,
87
+ default_value: false),
88
+ FastlaneCore::ConfigItem.new(key: :skip_package_pkg,
89
+ env_name: "GYM_SKIP_PACKAGE_PKG",
90
+ description: "Should we skip packaging the pkg?",
91
+ type: Boolean,
92
+ default_value: false),
93
+ FastlaneCore::ConfigItem.new(key: :include_symbols,
94
+ short_option: "-m",
95
+ env_name: "GYM_INCLUDE_SYMBOLS",
96
+ description: "Should the ipa file include symbols?",
97
+ type: Boolean,
98
+ optional: true),
99
+ FastlaneCore::ConfigItem.new(key: :include_bitcode,
100
+ short_option: "-z",
101
+ env_name: "GYM_INCLUDE_BITCODE",
102
+ description: "Should the ipa file include bitcode?",
103
+ type: Boolean,
104
+ optional: true),
105
+ FastlaneCore::ConfigItem.new(key: :export_method,
106
+ short_option: "-j",
107
+ env_name: "GYM_EXPORT_METHOD",
108
+ description: "Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id",
109
+ type: String,
110
+ optional: true,
111
+ verify_block: proc do |value|
112
+ av = %w(app-store ad-hoc package enterprise development developer-id)
113
+ UI.user_error!("Unsupported export_method '#{value}', must be: #{av}") unless av.include?(value)
114
+ end),
115
+ FastlaneCore::ConfigItem.new(key: :export_options,
116
+ env_name: "GYM_EXPORT_OPTIONS",
117
+ description: "Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options",
118
+ optional: true,
119
+ type: Hash,
120
+ skip_type_validation: true,
121
+ conflict_block: proc do |value|
122
+ UI.user_error!("'#{value.key}' must be false to use 'export_options'")
123
+ end),
124
+ FastlaneCore::ConfigItem.new(key: :export_xcargs,
125
+ env_name: "GYM_EXPORT_XCARGS",
126
+ description: "Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\"",
127
+ optional: true,
128
+ conflict_block: proc do |value|
129
+ UI.user_error!("'#{value.key}' must be false to use 'export_xcargs'")
130
+ end,
131
+ type: :shell_string),
132
+ FastlaneCore::ConfigItem.new(key: :skip_build_archive,
133
+ env_name: "GYM_SKIP_BUILD_ARCHIVE",
134
+ description: "Export ipa from previously built xcarchive. Uses archive_path as source",
135
+ type: Boolean,
136
+ optional: true),
137
+ FastlaneCore::ConfigItem.new(key: :skip_archive,
138
+ env_name: "GYM_SKIP_ARCHIVE",
139
+ description: "After building, don't archive, effectively not including -archivePath param",
140
+ type: Boolean,
141
+ optional: true),
142
+ FastlaneCore::ConfigItem.new(key: :skip_codesigning,
143
+ env_name: "GYM_SKIP_CODESIGNING",
144
+ description: "Build without codesigning",
145
+ type: Boolean,
146
+ optional: true),
147
+ FastlaneCore::ConfigItem.new(key: :catalyst_platform,
148
+ env_name: "GYM_CATALYST_PLATFORM",
149
+ description: "Platform to build when using a Catalyst enabled app. Valid values are: ios, macos",
150
+ type: String,
151
+ optional: true,
152
+ verify_block: proc do |value|
153
+ av = %w(ios macos)
154
+ UI.user_error!("Unsupported export_method '#{value}', must be: #{av}") unless av.include?(value)
155
+ end),
156
+ FastlaneCore::ConfigItem.new(key: :installer_cert_name,
157
+ env_name: "GYM_INSTALLER_CERT_NAME",
158
+ description: "Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: `3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ)`",
159
+ type: String,
160
+ optional: true),
161
+ # Very optional
162
+ FastlaneCore::ConfigItem.new(key: :build_path,
163
+ env_name: "GYM_BUILD_PATH",
164
+ description: "The directory in which the archive should be stored in",
165
+ optional: true),
166
+ FastlaneCore::ConfigItem.new(key: :archive_path,
167
+ short_option: "-b",
168
+ env_name: "GYM_ARCHIVE_PATH",
169
+ description: "The path to the created archive",
170
+ optional: true),
171
+ FastlaneCore::ConfigItem.new(key: :derived_data_path,
172
+ short_option: "-f",
173
+ env_name: "GYM_DERIVED_DATA_PATH",
174
+ description: "The directory where built products and other derived data will go",
175
+ optional: true),
176
+ FastlaneCore::ConfigItem.new(key: :result_bundle,
177
+ short_option: "-u",
178
+ env_name: "GYM_RESULT_BUNDLE",
179
+ type: Boolean,
180
+ description: "Should an Xcode result bundle be generated in the output directory",
181
+ default_value: false,
182
+ optional: true),
183
+ FastlaneCore::ConfigItem.new(key: :result_bundle_path,
184
+ env_name: "GYM_RESULT_BUNDLE_PATH",
185
+ description: "Path to the result bundle directory to create. Ignored if `result_bundle` if false",
186
+ optional: true),
187
+ FastlaneCore::ConfigItem.new(key: :buildlog_path,
188
+ short_option: "-l",
189
+ env_name: "GYM_BUILDLOG_PATH",
190
+ description: "The directory where to store the build log",
191
+ default_value: "#{FastlaneCore::Helper.buildlog_path}/gym",
192
+ default_value_dynamic: true),
193
+ FastlaneCore::ConfigItem.new(key: :sdk,
194
+ short_option: "-k",
195
+ env_name: "GYM_SDK",
196
+ description: "The SDK that should be used for building the application",
197
+ optional: true),
198
+ FastlaneCore::ConfigItem.new(key: :toolchain,
199
+ env_name: "GYM_TOOLCHAIN",
200
+ description: "The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a)",
201
+ optional: true,
202
+ type: String),
203
+ FastlaneCore::ConfigItem.new(key: :destination,
204
+ short_option: "-d",
205
+ env_name: "GYM_DESTINATION",
206
+ description: "Use a custom destination for building the app",
207
+ optional: true),
208
+ FastlaneCore::ConfigItem.new(key: :export_team_id,
209
+ short_option: "-g",
210
+ env_name: "GYM_EXPORT_TEAM_ID",
211
+ description: "Optional: Sometimes you need to specify a team id when exporting the ipa file",
212
+ optional: true),
213
+ FastlaneCore::ConfigItem.new(key: :xcargs,
214
+ short_option: "-x",
215
+ env_name: "GYM_XCARGS",
216
+ description: "Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\"",
217
+ optional: true,
218
+ type: :shell_string),
219
+ FastlaneCore::ConfigItem.new(key: :xcconfig,
220
+ short_option: "-y",
221
+ env_name: "GYM_XCCONFIG",
222
+ description: "Use an extra XCCONFIG file to build your app",
223
+ optional: true,
224
+ verify_block: proc do |value|
225
+ UI.user_error!("File not found at path '#{File.expand_path(value)}'") unless File.exist?(value)
226
+ end),
227
+ FastlaneCore::ConfigItem.new(key: :suppress_xcode_output,
228
+ short_option: "-r",
229
+ env_name: "SUPPRESS_OUTPUT",
230
+ description: "Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path",
231
+ optional: true,
232
+ type: Boolean),
233
+ FastlaneCore::ConfigItem.new(key: :disable_xcpretty,
234
+ env_name: "DISABLE_XCPRETTY",
235
+ description: "Disable xcpretty formatting of build output",
236
+ optional: true,
237
+ type: Boolean),
238
+ FastlaneCore::ConfigItem.new(key: :xcpretty_test_format,
239
+ env_name: "XCPRETTY_TEST_FORMAT",
240
+ description: "Use the test (RSpec style) format for build output",
241
+ optional: true,
242
+ type: Boolean),
243
+ FastlaneCore::ConfigItem.new(key: :xcpretty_formatter,
244
+ env_name: "XCPRETTY_FORMATTER",
245
+ description: "A custom xcpretty formatter to use",
246
+ optional: true,
247
+ verify_block: proc do |value|
248
+ UI.user_error!("Formatter file not found at path '#{File.expand_path(value)}'") unless File.exist?(value)
249
+ end),
250
+ FastlaneCore::ConfigItem.new(key: :xcpretty_report_junit,
251
+ env_name: "XCPRETTY_REPORT_JUNIT",
252
+ description: "Have xcpretty create a JUnit-style XML report at the provided path",
253
+ optional: true),
254
+ FastlaneCore::ConfigItem.new(key: :xcpretty_report_html,
255
+ env_name: "XCPRETTY_REPORT_HTML",
256
+ description: "Have xcpretty create a simple HTML report at the provided path",
257
+ optional: true),
258
+ FastlaneCore::ConfigItem.new(key: :xcpretty_report_json,
259
+ env_name: "XCPRETTY_REPORT_JSON",
260
+ description: "Have xcpretty create a JSON compilation database at the provided path",
261
+ optional: true),
262
+ FastlaneCore::ConfigItem.new(key: :analyze_build_time,
263
+ env_name: "GYM_ANALYZE_BUILD_TIME",
264
+ description: "Analyze the project build time and store the output in 'culprits.txt' file",
265
+ optional: true,
266
+ type: Boolean),
267
+ FastlaneCore::ConfigItem.new(key: :xcpretty_utf,
268
+ env_name: "XCPRETTY_UTF",
269
+ description: "Have xcpretty use unicode encoding when reporting builds",
270
+ optional: true,
271
+ type: Boolean),
272
+ FastlaneCore::ConfigItem.new(key: :skip_profile_detection,
273
+ env_name: "GYM_SKIP_PROFILE_DETECTION",
274
+ description: "Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used",
275
+ optional: true,
276
+ type: Boolean,
277
+ default_value: false),
278
+ FastlaneCore::ConfigItem.new(key: :cloned_source_packages_path,
279
+ env_name: "GYM_CLONED_SOURCE_PACKAGES_PATH",
280
+ description: "Sets a custom path for Swift Package Manager dependencies",
281
+ type: String,
282
+ optional: true)
283
+ ]
284
+ end
285
+ end
286
+ end
@@ -0,0 +1,365 @@
1
+ require 'open3'
2
+ require 'fileutils'
3
+ require 'shellwords'
4
+ require 'terminal-table'
5
+
6
+ require 'fastlane_core/print_table'
7
+ require 'fastlane_core/command_executor'
8
+ require_relative 'module'
9
+ require_relative 'generators/package_command_generator'
10
+ require_relative 'generators/build_command_generator'
11
+ require_relative 'error_handler'
12
+
13
+ module Gym
14
+ class Runner
15
+ # @return (String) The path to the resulting ipa
16
+ def run
17
+ unless Gym.config[:skip_build_archive]
18
+ build_app
19
+ end
20
+ verify_archive unless Gym.config[:skip_archive]
21
+
22
+ return nil if Gym.config[:skip_archive]
23
+
24
+ FileUtils.mkdir_p(File.expand_path(Gym.config[:output_directory]))
25
+
26
+ # Archive
27
+ if Gym.building_for_ios?
28
+ fix_generic_archive unless Gym.project.watchos? # See https://github.com/fastlane/fastlane/pull/4325
29
+ return BuildCommandGenerator.archive_path if Gym.config[:skip_package_ipa]
30
+
31
+ package_app
32
+ compress_and_move_dsym
33
+
34
+ unless Gym.export_destination_upload?
35
+ path = move_ipa
36
+ move_manifest
37
+ move_app_thinning
38
+ move_app_thinning_size_report
39
+ move_apps_folder
40
+ move_asset_packs
41
+ move_appstore_info
42
+ end
43
+ elsif Gym.building_for_mac?
44
+ path = File.expand_path(Gym.config[:output_directory])
45
+ compress_and_move_dsym
46
+ if Gym.project.mac_app? || Gym.building_mac_catalyst_for_mac?
47
+ path = copy_mac_app
48
+ return path if Gym.config[:skip_package_pkg]
49
+
50
+ package_app
51
+ unless Gym.export_destination_upload?
52
+ path = move_pkg
53
+ move_appstore_info
54
+ end
55
+ return path
56
+ end
57
+ copy_files_from_path(File.join(BuildCommandGenerator.archive_path, "Products/usr/local/bin/*")) if Gym.project.command_line_tool?
58
+ end
59
+ return path
60
+ end
61
+ # rubocop:enable Metrics/PerceivedComplexity
62
+
63
+ #####################################################
64
+ # @!group Printing out things
65
+ #####################################################
66
+
67
+ # @param [Array] An array containing all the parts of the command
68
+ def print_command(command, title)
69
+ rows = command.map do |c|
70
+ current = c.to_s.dup
71
+ next unless current.length > 0
72
+
73
+ match_default_parameter = current.match(/(-.*) '(.*)'/)
74
+ if match_default_parameter
75
+ # That's a default parameter, like `-project 'Name'`
76
+ match_default_parameter[1, 2]
77
+ else
78
+ current.gsub!("| ", "\| ") # as the | will somehow break the terminal table
79
+ [current, ""]
80
+ end
81
+ end
82
+
83
+ puts(Terminal::Table.new(
84
+ title: title.green,
85
+ headings: ["Option", "Value"],
86
+ rows: FastlaneCore::PrintTable.transform_output(rows.delete_if { |c| c.to_s.empty? })
87
+ ))
88
+ end
89
+
90
+ private
91
+
92
+ #####################################################
93
+ # @!group The individual steps
94
+ #####################################################
95
+
96
+ def fix_generic_archive
97
+ return unless FastlaneCore::Env.truthy?("GYM_USE_GENERIC_ARCHIVE_FIX")
98
+ Gym::XcodebuildFixes.generic_archive_fix
99
+ end
100
+
101
+ def mark_archive_as_built_by_gym(archive_path)
102
+ escaped_archive_path = archive_path.shellescape
103
+ system("xattr -w info.fastlane.generated_by_gym 1 #{escaped_archive_path}")
104
+ end
105
+
106
+ # Builds the app and prepares the archive
107
+ def build_app
108
+ command = BuildCommandGenerator.generate
109
+ print_command(command, "Generated Build Command") if FastlaneCore::Globals.verbose?
110
+ FastlaneCore::CommandExecutor.execute(command: command,
111
+ print_all: true,
112
+ print_command: !Gym.config[:silent],
113
+ error: proc do |output|
114
+ ErrorHandler.handle_build_error(output)
115
+ end)
116
+
117
+ unless Gym.config[:skip_archive]
118
+ mark_archive_as_built_by_gym(BuildCommandGenerator.archive_path)
119
+ UI.success("Successfully stored the archive. You can find it in the Xcode Organizer.") unless Gym.config[:archive_path].nil?
120
+ UI.verbose("Stored the archive in: " + BuildCommandGenerator.archive_path)
121
+ end
122
+
123
+ post_build_app
124
+ end
125
+
126
+ # Post-processing of build_app
127
+ def post_build_app
128
+ command = BuildCommandGenerator.post_build
129
+
130
+ return if command.empty?
131
+
132
+ print_command(command, "Generated Post-Build Command") if FastlaneCore::Globals.verbose?
133
+ FastlaneCore::CommandExecutor.execute(command: command,
134
+ print_all: true,
135
+ print_command: !Gym.config[:silent],
136
+ error: proc do |output|
137
+ ErrorHandler.handle_build_error(output)
138
+ end)
139
+ end
140
+
141
+ # Makes sure the archive is there and valid
142
+ def verify_archive
143
+ # from https://github.com/fastlane/fastlane/issues/3179
144
+ if (Dir[BuildCommandGenerator.archive_path + "/*"]).count == 0
145
+ ErrorHandler.handle_empty_archive
146
+ end
147
+ end
148
+
149
+ def package_app
150
+ command = PackageCommandGenerator.generate
151
+ print_command(command, "Generated Package Command") if FastlaneCore::Globals.verbose?
152
+
153
+ FastlaneCore::CommandExecutor.execute(command: command,
154
+ print_all: false,
155
+ print_command: !Gym.config[:silent],
156
+ error: proc do |output|
157
+ ErrorHandler.handle_package_error(output)
158
+ end)
159
+ end
160
+
161
+ def compress_and_move_dsym
162
+ return unless PackageCommandGenerator.dsym_path
163
+
164
+ # Compress and move the dsym file
165
+ containing_directory = File.expand_path("..", PackageCommandGenerator.dsym_path)
166
+ bcsymbolmaps_directory = File.expand_path("../../BCSymbolMaps", PackageCommandGenerator.dsym_path)
167
+ available_dsyms = Dir.glob("#{containing_directory}/*.dSYM")
168
+ uuid_regex = /[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}/
169
+
170
+ if Dir.exist?(bcsymbolmaps_directory)
171
+ UI.message("Mapping dSYM(s) using generated BCSymbolMaps") unless Gym.config[:silent]
172
+ available_dsyms.each do |dsym|
173
+ dwarfdump_command = []
174
+ dwarfdump_command << "dwarfdump"
175
+ dwarfdump_command << "--uuid #{dsym.shellescape}"
176
+
177
+ # Extract uuids
178
+ dwarfdump_result = Helper.backticks(dwarfdump_command.join(" "), print: false)
179
+ architecture_infos = dwarfdump_result.split("\n")
180
+ architecture_infos.each do |info|
181
+ info_array = info.split(" ", 4)
182
+ uuid = info_array[1]
183
+ dwarf_file_path = info_array[3]
184
+
185
+ if uuid.nil? || !uuid.match(uuid_regex)
186
+ next
187
+ end
188
+
189
+ # Find bcsymbolmap file to be used:
190
+ # - if a <uuid>.plist file exists, we will extract uuid of bcsymbolmap and use it
191
+ # - if a <uuid>.bcsymbolmap file exists, we will use it
192
+ # - otherwise let dsymutil figure it out
193
+ symbol_map_path = nil
194
+ split_dwarf_file_path = File.split(dwarf_file_path)
195
+ dsym_plist_file_path = File.join(split_dwarf_file_path[0], "..", "#{uuid}.plist")
196
+ if File.exist?(dsym_plist_file_path)
197
+ dsym_plist = Plist.parse_xml(dsym_plist_file_path)
198
+ original_uuid = dsym_plist['DBGOriginalUUID']
199
+ possible_symbol_map_path = "#{bcsymbolmaps_directory}/#{original_uuid}.bcsymbolmap"
200
+ if File.exist?(possible_symbol_map_path)
201
+ symbol_map_path = possible_symbol_map_path.shellescape
202
+ end
203
+ end
204
+ if symbol_map_path.nil?
205
+ possible_symbol_map_path = File.join(bcsymbolmaps_directory, "#{uuid}.bcsymbolmap")
206
+ if File.exist?(possible_symbol_map_path)
207
+ symbol_map_path = possible_symbol_map_path.shellescape
208
+ end
209
+ end
210
+ if symbol_map_path.nil?
211
+ symbol_map_path = bcsymbolmaps_directory.shellescape
212
+ end
213
+ command = []
214
+ command << "dsymutil"
215
+ command << "--symbol-map #{symbol_map_path}"
216
+ command << dsym.shellescape
217
+ Helper.backticks(command.join(" "), print: !Gym.config[:silent])
218
+ end
219
+ end
220
+ end
221
+
222
+ UI.message("Compressing #{available_dsyms.count} dSYM(s)") unless Gym.config[:silent]
223
+
224
+ output_path = File.expand_path(File.join(Gym.config[:output_directory], Gym.config[:output_name] + ".app.dSYM.zip"))
225
+ command = "cd '#{containing_directory}' && zip -r '#{output_path}' *.dSYM"
226
+ Helper.backticks(command, print: !Gym.config[:silent])
227
+ puts("") # new line
228
+
229
+ UI.success("Successfully exported and compressed dSYM file")
230
+ end
231
+
232
+ # Moves over the binary and dsym file to the output directory
233
+ # @return (String) The path to the resulting ipa file
234
+ def move_ipa
235
+ FileUtils.mv(PackageCommandGenerator.ipa_path, File.expand_path(Gym.config[:output_directory]), force: true)
236
+ ipa_path = File.expand_path(File.join(Gym.config[:output_directory], File.basename(PackageCommandGenerator.ipa_path)))
237
+
238
+ UI.success("Successfully exported and signed the ipa file:")
239
+ UI.message(ipa_path)
240
+ ipa_path
241
+ end
242
+
243
+ # Moves over the binary and dsym file to the output directory
244
+ # @return (String) The path to the resulting pkg file
245
+ def move_pkg
246
+ FileUtils.mv(PackageCommandGenerator.pkg_path, File.expand_path(Gym.config[:output_directory]), force: true)
247
+ pkg_path = File.expand_path(File.join(Gym.config[:output_directory], File.basename(PackageCommandGenerator.pkg_path)))
248
+
249
+ UI.success("Successfully exported and signed the pkg file:")
250
+ UI.message(pkg_path)
251
+ pkg_path
252
+ end
253
+
254
+ # copys framework from temp folder:
255
+
256
+ def copy_files_from_path(path)
257
+ UI.success("Exporting Files:")
258
+ Dir[path].each do |f|
259
+ existing_file = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(f))
260
+ # If the target file already exists in output directory
261
+ # we have to remove it first, otherwise cp_r fails even with remove_destination
262
+ # e.g.: there are symlinks in the .framework
263
+ if File.exist?(existing_file)
264
+ UI.important("Removing #{File.basename(f)} from output directory") if FastlaneCore::Globals.verbose?
265
+ FileUtils.rm_rf(existing_file)
266
+ end
267
+ FileUtils.cp_r(f, File.expand_path(Gym.config[:output_directory]), remove_destination: true)
268
+ UI.message("\t ▸ #{File.basename(f)}")
269
+ end
270
+ end
271
+
272
+ # Copies the .app from the archive into the output directory
273
+ def copy_mac_app
274
+ exe_name = Gym.project.build_settings(key: "EXECUTABLE_NAME")
275
+ app_path = File.join(BuildCommandGenerator.archive_path, "Products/Applications/#{exe_name}.app")
276
+
277
+ UI.crash!("Couldn't find application in '#{BuildCommandGenerator.archive_path}'") unless File.exist?(app_path)
278
+
279
+ joined_app_path = File.join(Gym.config[:output_directory], File.basename(app_path))
280
+ FileUtils.rm_rf(joined_app_path)
281
+ FileUtils.cp_r(app_path, File.expand_path(Gym.config[:output_directory]), remove_destination: true)
282
+
283
+ UI.success("Successfully exported the .app file:")
284
+ UI.message(joined_app_path)
285
+ joined_app_path
286
+ end
287
+
288
+ # Move the manifest.plist if exists into the output directory
289
+ def move_manifest
290
+ if File.exist?(PackageCommandGenerator.manifest_path)
291
+ FileUtils.mv(PackageCommandGenerator.manifest_path, File.expand_path(Gym.config[:output_directory]), force: true)
292
+ manifest_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.manifest_path))
293
+
294
+ UI.success("Successfully exported the manifest.plist file:")
295
+ UI.message(manifest_path)
296
+ manifest_path
297
+ end
298
+ end
299
+
300
+ # Move the app-thinning.plist file into the output directory
301
+ def move_app_thinning
302
+ if File.exist?(PackageCommandGenerator.app_thinning_path)
303
+ FileUtils.mv(PackageCommandGenerator.app_thinning_path, File.expand_path(Gym.config[:output_directory]), force: true)
304
+ app_thinning_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.app_thinning_path))
305
+
306
+ UI.success("Successfully exported the app-thinning.plist file:")
307
+ UI.message(app_thinning_path)
308
+ app_thinning_path
309
+ end
310
+ end
311
+
312
+ # Move the App Thinning Size Report.txt file into the output directory
313
+ def move_app_thinning_size_report
314
+ if File.exist?(PackageCommandGenerator.app_thinning_size_report_path)
315
+ FileUtils.mv(PackageCommandGenerator.app_thinning_size_report_path, File.expand_path(Gym.config[:output_directory]), force: true)
316
+ app_thinning_size_report_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.app_thinning_size_report_path))
317
+
318
+ UI.success("Successfully exported the App Thinning Size Report.txt file:")
319
+ UI.message(app_thinning_size_report_path)
320
+ app_thinning_size_report_path
321
+ end
322
+ end
323
+
324
+ # Move the Apps folder to the output directory
325
+ def move_apps_folder
326
+ if Dir.exist?(PackageCommandGenerator.apps_path)
327
+ FileUtils.mv(PackageCommandGenerator.apps_path, File.expand_path(Gym.config[:output_directory]), force: true)
328
+ apps_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.apps_path))
329
+
330
+ UI.success("Successfully exported Apps folder:")
331
+ UI.message(apps_path)
332
+ apps_path
333
+ end
334
+ end
335
+
336
+ # Move Asset Packs folder to the output directory
337
+ # @return (String) The path to the resulting Asset Packs (aka OnDemandResources) folder
338
+ def move_asset_packs
339
+ if Dir.exist?(PackageCommandGenerator.asset_packs_path)
340
+ FileUtils.mv(PackageCommandGenerator.asset_packs_path, File.expand_path(Gym.config[:output_directory]), force: true)
341
+ asset_packs_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.asset_packs_path))
342
+
343
+ UI.success("Successfully exported Asset Pack folder:")
344
+ UI.message(asset_packs_path)
345
+ asset_packs_path
346
+ end
347
+ end
348
+
349
+ # Move the AppStoreInfo.plist folder to the output directory
350
+ def move_appstore_info
351
+ if File.exist?(PackageCommandGenerator.appstore_info_path)
352
+ FileUtils.mv(PackageCommandGenerator.appstore_info_path, File.expand_path(Gym.config[:output_directory]), force: true)
353
+ appstore_info_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.appstore_info_path))
354
+
355
+ UI.success("Successfully exported the AppStoreInfo.plist file:")
356
+ UI.message(appstore_info_path)
357
+ appstore_info_path
358
+ end
359
+ end
360
+
361
+ def find_archive_path
362
+ Dir.glob(File.join(BuildCommandGenerator.build_path, "*.ipa")).last
363
+ end
364
+ end
365
+ end