fastlane 1.111.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (558) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +76 -111
  3. data/bin/bin-proxy +19 -0
  4. data/cert/README.md +163 -0
  5. data/cert/lib/cert.rb +18 -0
  6. data/cert/lib/cert/commands_generator.rb +51 -0
  7. data/cert/lib/cert/options.rb +67 -0
  8. data/cert/lib/cert/runner.rb +181 -0
  9. data/credentials_manager/README.md +62 -0
  10. data/credentials_manager/lib/credentials_manager.rb +12 -0
  11. data/credentials_manager/lib/credentials_manager/account_manager.rb +104 -0
  12. data/credentials_manager/lib/credentials_manager/appfile_config.rb +186 -0
  13. data/credentials_manager/lib/credentials_manager/cli.rb +65 -0
  14. data/deliver/README.md +271 -0
  15. data/deliver/lib/assets/DeliverfileDefault +10 -0
  16. data/deliver/lib/assets/ScreenshotsHelp +7 -0
  17. data/deliver/lib/assets/summary.html.erb +210 -0
  18. data/deliver/lib/deliver.rb +31 -0
  19. data/deliver/lib/deliver/app_screenshot.rb +226 -0
  20. data/deliver/lib/deliver/commands_generator.rb +150 -0
  21. data/deliver/lib/deliver/detect_values.rb +69 -0
  22. data/deliver/lib/deliver/download_screenshots.rb +46 -0
  23. data/deliver/lib/deliver/generate_summary.rb +9 -0
  24. data/deliver/lib/deliver/html_generator.rb +58 -0
  25. data/deliver/lib/deliver/loader.rb +18 -0
  26. data/deliver/lib/deliver/options.rb +269 -0
  27. data/deliver/lib/deliver/runner.rb +99 -0
  28. data/deliver/lib/deliver/setup.rb +78 -0
  29. data/deliver/lib/deliver/submit_for_review.rb +87 -0
  30. data/deliver/lib/deliver/upload_assets.rb +22 -0
  31. data/deliver/lib/deliver/upload_metadata.rb +191 -0
  32. data/deliver/lib/deliver/upload_price_tier.rb +21 -0
  33. data/deliver/lib/deliver/upload_screenshots.rb +110 -0
  34. data/fastlane/README.md +193 -0
  35. data/{lib → fastlane/lib}/assets/Actions.md.erb +0 -0
  36. data/{lib → fastlane/lib}/assets/AppfileTemplate +0 -0
  37. data/{lib → fastlane/lib}/assets/AppfileTemplateAndroid +0 -0
  38. data/{lib → fastlane/lib}/assets/AvailablePlugins.md.erb +0 -0
  39. data/{lib → fastlane/lib}/assets/DefaultFastfileTemplate +2 -2
  40. data/{lib → fastlane/lib}/assets/FastfileTemplateAndroid +2 -2
  41. data/{lib → fastlane/lib}/assets/completions/completion.bash +0 -0
  42. data/{lib → fastlane/lib}/assets/completions/completion.sh +0 -0
  43. data/{lib → fastlane/lib}/assets/completions/completion.zsh +0 -0
  44. data/{lib → fastlane/lib}/assets/custom_action_template.rb +0 -0
  45. data/{lib → fastlane/lib}/assets/mailgun_html_template.erb +0 -0
  46. data/{lib → fastlane/lib}/assets/report_template.xml.erb +0 -0
  47. data/{lib → fastlane/lib}/assets/s3_html_template.erb +0 -0
  48. data/{lib → fastlane/lib}/assets/s3_plist_template.erb +0 -0
  49. data/{lib → fastlane/lib}/assets/s3_version_template.erb +0 -0
  50. data/{lib → fastlane/lib}/fastlane.rb +3 -3
  51. data/{lib → fastlane/lib}/fastlane/action.rb +0 -0
  52. data/{lib → fastlane/lib}/fastlane/action_collector.rb +0 -0
  53. data/{lib → fastlane/lib}/fastlane/actions/README.md +0 -0
  54. data/{lib → fastlane/lib}/fastlane/actions/actions_helper.rb +16 -0
  55. data/{lib → fastlane/lib}/fastlane/actions/adb.rb +0 -0
  56. data/{lib → fastlane/lib}/fastlane/actions/adb_devices.rb +0 -0
  57. data/{lib → fastlane/lib}/fastlane/actions/add_git_tag.rb +0 -0
  58. data/{lib → fastlane/lib}/fastlane/actions/app_store_build_number.rb +0 -0
  59. data/{lib → fastlane/lib}/fastlane/actions/appaloosa.rb +1 -0
  60. data/{lib → fastlane/lib}/fastlane/actions/appetize.rb +1 -0
  61. data/{lib → fastlane/lib}/fastlane/actions/appetize_viewing_url_generator.rb +1 -0
  62. data/{lib → fastlane/lib}/fastlane/actions/appium.rb +0 -0
  63. data/{lib → fastlane/lib}/fastlane/actions/appledoc.rb +0 -0
  64. data/{lib → fastlane/lib}/fastlane/actions/appstore.rb +0 -0
  65. data/{lib → fastlane/lib}/fastlane/actions/apteligent.rb +1 -0
  66. data/{lib → fastlane/lib}/fastlane/actions/artifactory.rb +2 -0
  67. data/{lib → fastlane/lib}/fastlane/actions/backup_file.rb +0 -0
  68. data/{lib → fastlane/lib}/fastlane/actions/backup_xcarchive.rb +0 -0
  69. data/{lib → fastlane/lib}/fastlane/actions/badge.rb +0 -0
  70. data/{lib → fastlane/lib}/fastlane/actions/build_and_upload_to_appetize.rb +1 -0
  71. data/{lib → fastlane/lib}/fastlane/actions/bundle_install.rb +0 -0
  72. data/{lib → fastlane/lib}/fastlane/actions/carthage.rb +1 -1
  73. data/{lib → fastlane/lib}/fastlane/actions/cert.rb +0 -4
  74. data/{lib → fastlane/lib}/fastlane/actions/changelog_from_git_commits.rb +0 -0
  75. data/{lib → fastlane/lib}/fastlane/actions/chatwork.rb +1 -0
  76. data/{lib → fastlane/lib}/fastlane/actions/clean_build_artifacts.rb +0 -0
  77. data/{lib → fastlane/lib}/fastlane/actions/clean_cocoapods_cache.rb +0 -0
  78. data/{lib → fastlane/lib}/fastlane/actions/clear_derived_data.rb +0 -0
  79. data/{lib → fastlane/lib}/fastlane/actions/clipboard.rb +0 -0
  80. data/{lib → fastlane/lib}/fastlane/actions/cloc.rb +0 -0
  81. data/{lib → fastlane/lib}/fastlane/actions/cocoapods.rb +0 -0
  82. data/{lib → fastlane/lib}/fastlane/actions/commit_version_bump.rb +0 -0
  83. data/{lib → fastlane/lib}/fastlane/actions/copy_artifacts.rb +0 -0
  84. data/{lib → fastlane/lib}/fastlane/actions/crashlytics.rb +2 -0
  85. data/{lib → fastlane/lib}/fastlane/actions/create_keychain.rb +1 -0
  86. data/{lib → fastlane/lib}/fastlane/actions/create_pull_request.rb +1 -0
  87. data/{lib → fastlane/lib}/fastlane/actions/danger.rb +1 -0
  88. data/{lib → fastlane/lib}/fastlane/actions/debug.rb +0 -0
  89. data/{lib → fastlane/lib}/fastlane/actions/default_platform.rb +0 -0
  90. data/{lib → fastlane/lib}/fastlane/actions/delete_keychain.rb +0 -0
  91. data/{lib → fastlane/lib}/fastlane/actions/deliver.rb +0 -4
  92. data/{lib → fastlane/lib}/fastlane/actions/deploygate.rb +34 -19
  93. data/{lib → fastlane/lib}/fastlane/actions/device_grid/README.md +0 -0
  94. data/{lib → fastlane/lib}/fastlane/actions/dotgpg_environment.rb +0 -0
  95. data/{lib → fastlane/lib}/fastlane/actions/download.rb +0 -0
  96. data/{lib → fastlane/lib}/fastlane/actions/download_dsyms.rb +0 -0
  97. data/{lib → fastlane/lib}/fastlane/actions/dsym_zip.rb +0 -0
  98. data/{lib → fastlane/lib}/fastlane/actions/ensure_git_branch.rb +0 -0
  99. data/{lib → fastlane/lib}/fastlane/actions/ensure_git_status_clean.rb +0 -0
  100. data/{lib → fastlane/lib}/fastlane/actions/ensure_no_debug_code.rb +10 -2
  101. data/{lib → fastlane/lib}/fastlane/actions/ensure_xcode_version.rb +0 -0
  102. data/{lib → fastlane/lib}/fastlane/actions/erb.rb +0 -0
  103. data/{lib → fastlane/lib}/fastlane/actions/fastlane_version.rb +0 -0
  104. data/{lib → fastlane/lib}/fastlane/actions/flock.rb +1 -0
  105. data/{lib → fastlane/lib}/fastlane/actions/frameit.rb +6 -10
  106. data/{lib → fastlane/lib}/fastlane/actions/gcovr.rb +0 -0
  107. data/{lib → fastlane/lib}/fastlane/actions/get_build_number.rb +0 -0
  108. data/{lib → fastlane/lib}/fastlane/actions/get_build_number_repository.rb +0 -0
  109. data/{lib → fastlane/lib}/fastlane/actions/get_github_release.rb +1 -0
  110. data/{lib → fastlane/lib}/fastlane/actions/get_info_plist_value.rb +0 -0
  111. data/{lib → fastlane/lib}/fastlane/actions/get_ipa_info_plist_value.rb +0 -0
  112. data/{lib → fastlane/lib}/fastlane/actions/get_version_number.rb +0 -0
  113. data/{lib → fastlane/lib}/fastlane/actions/git_add.rb +0 -0
  114. data/{lib → fastlane/lib}/fastlane/actions/git_branch.rb +0 -0
  115. data/{lib → fastlane/lib}/fastlane/actions/git_commit.rb +0 -0
  116. data/{lib → fastlane/lib}/fastlane/actions/git_pull.rb +0 -0
  117. data/{lib → fastlane/lib}/fastlane/actions/git_tag_exists.rb +0 -0
  118. data/{lib → fastlane/lib}/fastlane/actions/gradle.rb +0 -0
  119. data/fastlane/lib/fastlane/actions/gym.rb +84 -0
  120. data/{lib → fastlane/lib}/fastlane/actions/hg_add_tag.rb +0 -0
  121. data/{lib → fastlane/lib}/fastlane/actions/hg_commit_version_bump.rb +0 -0
  122. data/{lib → fastlane/lib}/fastlane/actions/hg_ensure_clean_status.rb +0 -0
  123. data/{lib → fastlane/lib}/fastlane/actions/hg_push.rb +0 -0
  124. data/{lib → fastlane/lib}/fastlane/actions/hipchat.rb +1 -0
  125. data/{lib → fastlane/lib}/fastlane/actions/hockey.rb +37 -11
  126. data/{lib → fastlane/lib}/fastlane/actions/ifttt.rb +1 -0
  127. data/{lib → fastlane/lib}/fastlane/actions/import.rb +0 -0
  128. data/{lib → fastlane/lib}/fastlane/actions/import_certificate.rb +2 -0
  129. data/{lib → fastlane/lib}/fastlane/actions/import_from_git.rb +0 -0
  130. data/{lib → fastlane/lib}/fastlane/actions/increment_build_number.rb +0 -0
  131. data/{lib → fastlane/lib}/fastlane/actions/increment_version_number.rb +0 -0
  132. data/{lib → fastlane/lib}/fastlane/actions/install_on_device.rb +0 -0
  133. data/{lib → fastlane/lib}/fastlane/actions/install_xcode_plugin.rb +0 -0
  134. data/{lib → fastlane/lib}/fastlane/actions/installr.rb +1 -0
  135. data/{lib → fastlane/lib}/fastlane/actions/ipa.rb +12 -4
  136. data/{lib → fastlane/lib}/fastlane/actions/is_ci.rb +0 -0
  137. data/{lib → fastlane/lib}/fastlane/actions/jazzy.rb +0 -0
  138. data/{lib → fastlane/lib}/fastlane/actions/jira.rb +1 -0
  139. data/{lib → fastlane/lib}/fastlane/actions/lane_context.rb +0 -0
  140. data/{lib → fastlane/lib}/fastlane/actions/last_git_commit.rb +0 -0
  141. data/{lib → fastlane/lib}/fastlane/actions/last_git_tag.rb +0 -0
  142. data/{lib → fastlane/lib}/fastlane/actions/latest_testflight_build_number.rb +0 -0
  143. data/{lib → fastlane/lib}/fastlane/actions/lcov.rb +0 -0
  144. data/{lib → fastlane/lib}/fastlane/actions/mailgun.rb +2 -0
  145. data/{lib → fastlane/lib}/fastlane/actions/make_changelog_from_jenkins.rb +0 -0
  146. data/{lib → fastlane/lib}/fastlane/actions/match.rb +3 -9
  147. data/{lib → fastlane/lib}/fastlane/actions/nexus_upload.rb +1 -0
  148. data/{lib → fastlane/lib}/fastlane/actions/notification.rb +0 -0
  149. data/{lib → fastlane/lib}/fastlane/actions/notify.rb +0 -0
  150. data/{lib → fastlane/lib}/fastlane/actions/number_of_commits.rb +0 -0
  151. data/{lib → fastlane/lib}/fastlane/actions/oclint.rb +0 -0
  152. data/{lib → fastlane/lib}/fastlane/actions/onesignal.rb +3 -0
  153. data/{lib → fastlane/lib}/fastlane/actions/opt_out_usage.rb +0 -0
  154. data/{lib → fastlane/lib}/fastlane/actions/pem.rb +9 -15
  155. data/{lib → fastlane/lib}/fastlane/actions/pilot.rb +6 -12
  156. data/{lib → fastlane/lib}/fastlane/actions/pod_lib_lint.rb +0 -0
  157. data/{lib → fastlane/lib}/fastlane/actions/pod_push.rb +0 -0
  158. data/{lib → fastlane/lib}/fastlane/actions/podio_item.rb +2 -0
  159. data/{lib → fastlane/lib}/fastlane/actions/produce.rb +7 -11
  160. data/{lib → fastlane/lib}/fastlane/actions/prompt.rb +5 -2
  161. data/{lib → fastlane/lib}/fastlane/actions/push_git_tags.rb +0 -0
  162. data/{lib → fastlane/lib}/fastlane/actions/push_to_git_remote.rb +0 -0
  163. data/{lib → fastlane/lib}/fastlane/actions/puts.rb +8 -0
  164. data/{lib → fastlane/lib}/fastlane/actions/read_podspec.rb +0 -0
  165. data/{lib → fastlane/lib}/fastlane/actions/recreate_schemes.rb +0 -0
  166. data/{lib → fastlane/lib}/fastlane/actions/register_devices.rb +0 -0
  167. data/{lib → fastlane/lib}/fastlane/actions/reset_git_repo.rb +0 -0
  168. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +62 -0
  169. data/{lib → fastlane/lib}/fastlane/actions/resign.rb +0 -0
  170. data/{lib → fastlane/lib}/fastlane/actions/restore_file.rb +0 -0
  171. data/{lib → fastlane/lib}/fastlane/actions/rocket.rb +0 -0
  172. data/{lib → fastlane/lib}/fastlane/actions/rsync.rb +0 -0
  173. data/{lib → fastlane/lib}/fastlane/actions/s3.rb +2 -1
  174. data/{lib → fastlane/lib}/fastlane/actions/say.rb +0 -0
  175. data/{lib → fastlane/lib}/fastlane/actions/scan.rb +0 -4
  176. data/{lib → fastlane/lib}/fastlane/actions/scp.rb +1 -0
  177. data/{lib → fastlane/lib}/fastlane/actions/screengrab.rb +7 -13
  178. data/{lib → fastlane/lib}/fastlane/actions/set_build_number_repository.rb +0 -0
  179. data/{lib → fastlane/lib}/fastlane/actions/set_changelog.rb +0 -0
  180. data/{lib → fastlane/lib}/fastlane/actions/set_github_release.rb +1 -0
  181. data/{lib → fastlane/lib}/fastlane/actions/set_info_plist_value.rb +0 -0
  182. data/{lib → fastlane/lib}/fastlane/actions/set_pod_key.rb +0 -0
  183. data/{lib → fastlane/lib}/fastlane/actions/setup_jenkins.rb +0 -0
  184. data/{lib → fastlane/lib}/fastlane/actions/sigh.rb +9 -15
  185. data/{lib → fastlane/lib}/fastlane/actions/skip_docs.rb +0 -0
  186. data/{lib → fastlane/lib}/fastlane/actions/slack.rb +1 -0
  187. data/{lib → fastlane/lib}/fastlane/actions/slather.rb +0 -0
  188. data/{lib → fastlane/lib}/fastlane/actions/snapshot.rb +5 -11
  189. data/{lib → fastlane/lib}/fastlane/actions/sonar.rb +0 -0
  190. data/{lib → fastlane/lib}/fastlane/actions/splunkmint.rb +3 -0
  191. data/{lib → fastlane/lib}/fastlane/actions/ssh.rb +1 -0
  192. data/{lib → fastlane/lib}/fastlane/actions/supply.rb +9 -13
  193. data/{lib → fastlane/lib}/fastlane/actions/swiftlint.rb +0 -0
  194. data/{lib → fastlane/lib}/fastlane/actions/team_id.rb +0 -0
  195. data/{lib → fastlane/lib}/fastlane/actions/team_name.rb +0 -0
  196. data/{lib → fastlane/lib}/fastlane/actions/testfairy.rb +28 -9
  197. data/{lib → fastlane/lib}/fastlane/actions/testflight.rb +0 -0
  198. data/{lib → fastlane/lib}/fastlane/actions/tryouts.rb +1 -0
  199. data/{lib → fastlane/lib}/fastlane/actions/twitter.rb +4 -0
  200. data/{lib → fastlane/lib}/fastlane/actions/typetalk.rb +0 -0
  201. data/{lib → fastlane/lib}/fastlane/actions/unlock_keychain.rb +1 -0
  202. data/{lib → fastlane/lib}/fastlane/actions/update_app_group_identifiers.rb +0 -0
  203. data/{lib → fastlane/lib}/fastlane/actions/update_app_identifier.rb +0 -0
  204. data/{lib → fastlane/lib}/fastlane/actions/update_fastlane.rb +1 -20
  205. data/{lib → fastlane/lib}/fastlane/actions/update_icloud_container_identifiers.rb +0 -0
  206. data/{lib → fastlane/lib}/fastlane/actions/update_info_plist.rb +0 -0
  207. data/{lib → fastlane/lib}/fastlane/actions/update_project_code_signing.rb +0 -0
  208. data/{lib → fastlane/lib}/fastlane/actions/update_project_provisioning.rb +0 -0
  209. data/{lib → fastlane/lib}/fastlane/actions/update_project_team.rb +0 -0
  210. data/{lib → fastlane/lib}/fastlane/actions/update_urban_airship_configuration.rb +4 -0
  211. data/{lib → fastlane/lib}/fastlane/actions/update_url_schemes.rb +0 -0
  212. data/{lib → fastlane/lib}/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -0
  213. data/{lib → fastlane/lib}/fastlane/actions/upload_symbols_to_sentry.rb +2 -0
  214. data/{lib → fastlane/lib}/fastlane/actions/verify_build.rb +0 -0
  215. data/{lib → fastlane/lib}/fastlane/actions/verify_pod_keys.rb +0 -0
  216. data/{lib → fastlane/lib}/fastlane/actions/verify_xcode.rb +0 -0
  217. data/{lib → fastlane/lib}/fastlane/actions/version_bump_podspec.rb +0 -0
  218. data/{lib → fastlane/lib}/fastlane/actions/version_get_podspec.rb +0 -0
  219. data/{lib → fastlane/lib}/fastlane/actions/xcode_install.rb +0 -0
  220. data/{lib → fastlane/lib}/fastlane/actions/xcode_select.rb +0 -0
  221. data/{lib → fastlane/lib}/fastlane/actions/xcode_server_get_assets.rb +1 -0
  222. data/{lib → fastlane/lib}/fastlane/actions/xcodebuild.rb +0 -0
  223. data/{lib → fastlane/lib}/fastlane/actions/xcov.rb +0 -0
  224. data/{lib → fastlane/lib}/fastlane/actions/xctool.rb +1 -1
  225. data/{lib → fastlane/lib}/fastlane/actions/xcversion.rb +0 -0
  226. data/{lib → fastlane/lib}/fastlane/actions/zip.rb +0 -0
  227. data/{lib → fastlane/lib}/fastlane/auto_complete.rb +0 -0
  228. data/fastlane/lib/fastlane/cli_tools_distributor.rb +125 -0
  229. data/{lib → fastlane/lib}/fastlane/command_line_handler.rb +0 -0
  230. data/{lib → fastlane/lib}/fastlane/commands_generator.rb +5 -4
  231. data/{lib → fastlane/lib}/fastlane/configuration_helper.rb +0 -1
  232. data/{lib → fastlane/lib}/fastlane/core_ext/bundler_monkey_patch.rb +0 -0
  233. data/{lib → fastlane/lib}/fastlane/documentation/actions_list.rb +1 -1
  234. data/{lib → fastlane/lib}/fastlane/documentation/docs_generator.rb +1 -1
  235. data/{lib → fastlane/lib}/fastlane/documentation/markdown_docs_generator.rb +0 -0
  236. data/{lib → fastlane/lib}/fastlane/environment_printer.rb +1 -1
  237. data/{lib → fastlane/lib}/fastlane/erb_template_helper.rb +0 -0
  238. data/{lib → fastlane/lib}/fastlane/fast_file.rb +1 -1
  239. data/{lib → fastlane/lib}/fastlane/fastlane_require.rb +27 -3
  240. data/{lib → fastlane/lib}/fastlane/features.rb +0 -0
  241. data/{lib → fastlane/lib}/fastlane/helper/README.md +0 -0
  242. data/{lib → fastlane/lib}/fastlane/helper/adb_helper.rb +0 -0
  243. data/{lib → fastlane/lib}/fastlane/helper/cocoapod_helper.rb +0 -0
  244. data/{lib → fastlane/lib}/fastlane/helper/crashlytics_helper.rb +0 -0
  245. data/{lib → fastlane/lib}/fastlane/helper/gem_helper.rb +0 -0
  246. data/{lib → fastlane/lib}/fastlane/helper/git_helper.rb +0 -0
  247. data/{lib → fastlane/lib}/fastlane/helper/gradle_helper.rb +0 -0
  248. data/{lib → fastlane/lib}/fastlane/helper/podspec_helper.rb +0 -0
  249. data/{lib → fastlane/lib}/fastlane/helper/sh_helper.rb +0 -0
  250. data/{lib → fastlane/lib}/fastlane/helper/xcversion_helper.rb +0 -0
  251. data/{lib → fastlane/lib}/fastlane/junit_generator.rb +1 -1
  252. data/{lib → fastlane/lib}/fastlane/lane.rb +0 -0
  253. data/{lib → fastlane/lib}/fastlane/lane_list.rb +0 -0
  254. data/{lib → fastlane/lib}/fastlane/lane_manager.rb +25 -6
  255. data/{lib → fastlane/lib}/fastlane/markdown_table_formatter.rb +0 -0
  256. data/{lib → fastlane/lib}/fastlane/new_action.rb +1 -1
  257. data/{lib → fastlane/lib}/fastlane/one_off.rb +0 -0
  258. data/{lib → fastlane/lib}/fastlane/other_action.rb +0 -0
  259. data/{lib → fastlane/lib}/fastlane/plugins/plugin_fetcher.rb +0 -0
  260. data/{lib → fastlane/lib}/fastlane/plugins/plugin_generator.rb +0 -0
  261. data/{lib → fastlane/lib}/fastlane/plugins/plugin_generator_ui.rb +0 -0
  262. data/{lib → fastlane/lib}/fastlane/plugins/plugin_info.rb +0 -0
  263. data/{lib → fastlane/lib}/fastlane/plugins/plugin_info_collector.rb +0 -0
  264. data/{lib → fastlane/lib}/fastlane/plugins/plugin_manager.rb +4 -4
  265. data/{lib → fastlane/lib}/fastlane/plugins/plugin_search.rb +0 -0
  266. data/{lib → fastlane/lib}/fastlane/plugins/plugin_update_manager.rb +0 -0
  267. data/{lib → fastlane/lib}/fastlane/plugins/plugins.rb +0 -0
  268. data/{lib → fastlane/lib}/fastlane/plugins/template/%gem_name%.gemspec.erb +3 -0
  269. data/{lib → fastlane/lib}/fastlane/plugins/template/.gitignore +0 -0
  270. data/{lib → fastlane/lib}/fastlane/plugins/template/.rspec +0 -0
  271. data/{lib → fastlane/lib}/fastlane/plugins/template/.rubocop.yml +0 -0
  272. data/{lib → fastlane/lib}/fastlane/plugins/template/.travis.yml +0 -0
  273. data/{lib → fastlane/lib}/fastlane/plugins/template/Gemfile +0 -0
  274. data/{lib → fastlane/lib}/fastlane/plugins/template/LICENSE.erb +0 -0
  275. data/{lib → fastlane/lib}/fastlane/plugins/template/README.md.erb +2 -2
  276. data/{lib → fastlane/lib}/fastlane/plugins/template/Rakefile +0 -0
  277. data/{lib → fastlane/lib}/fastlane/plugins/template/circle.yml +0 -0
  278. data/{lib → fastlane/lib}/fastlane/plugins/template/fastlane/Fastfile.erb +0 -0
  279. data/{lib → fastlane/lib}/fastlane/plugins/template/fastlane/Pluginfile.erb +0 -0
  280. data/{lib → fastlane/lib}/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%.rb.erb +0 -0
  281. data/{lib → fastlane/lib}/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +0 -0
  282. data/{lib → fastlane/lib}/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +0 -0
  283. data/{lib → fastlane/lib}/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/version.rb.erb +0 -0
  284. data/{lib → fastlane/lib}/fastlane/plugins/template/spec/%plugin_name%_action_spec.rb.erb +0 -0
  285. data/{lib → fastlane/lib}/fastlane/plugins/template/spec/spec_helper.rb.erb +0 -0
  286. data/{lib → fastlane/lib}/fastlane/runner.rb +25 -2
  287. data/{lib → fastlane/lib}/fastlane/setup/crashlytics_beta.rb +1 -1
  288. data/{lib → fastlane/lib}/fastlane/setup/crashlytics_beta_command_line_handler.rb +0 -0
  289. data/{lib → fastlane/lib}/fastlane/setup/crashlytics_beta_info.rb +0 -0
  290. data/{lib → fastlane/lib}/fastlane/setup/crashlytics_beta_info_collector.rb +0 -0
  291. data/{lib → fastlane/lib}/fastlane/setup/crashlytics_beta_ui.rb +0 -0
  292. data/{lib → fastlane/lib}/fastlane/setup/crashlytics_beta_user_email_fetcher.rb +0 -0
  293. data/{lib → fastlane/lib}/fastlane/setup/crashlytics_project_parser.rb +0 -0
  294. data/{lib → fastlane/lib}/fastlane/setup/setup.rb +2 -2
  295. data/{lib → fastlane/lib}/fastlane/setup/setup_android.rb +2 -2
  296. data/{lib → fastlane/lib}/fastlane/setup/setup_ios.rb +3 -3
  297. data/{lib → fastlane/lib}/fastlane/supported_platforms.rb +0 -0
  298. data/{lib → fastlane/lib}/fastlane/tools.rb +0 -0
  299. data/{lib → fastlane/lib}/fastlane/version.rb +2 -2
  300. data/fastlane_core/README.md +54 -0
  301. data/fastlane_core/lib/assets/XMLTemplate.xml.erb +12 -0
  302. data/fastlane_core/lib/fastlane_core.rb +48 -0
  303. data/fastlane_core/lib/fastlane_core/cert_checker.rb +94 -0
  304. data/fastlane_core/lib/fastlane_core/command_executor.rb +98 -0
  305. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +82 -0
  306. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +133 -0
  307. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +266 -0
  308. data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +82 -0
  309. data/fastlane_core/lib/fastlane_core/core_ext/string.rb +17 -0
  310. data/fastlane_core/lib/fastlane_core/device_manager.rb +231 -0
  311. data/fastlane_core/lib/fastlane_core/env.rb +9 -0
  312. data/{lib/fastlane → fastlane_core/lib/fastlane_core}/fastlane_folder.rb +1 -11
  313. data/fastlane_core/lib/fastlane_core/feature/feature.rb +49 -0
  314. data/fastlane_core/lib/fastlane_core/features.rb +2 -0
  315. data/fastlane_core/lib/fastlane_core/helper.rb +240 -0
  316. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +55 -0
  317. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +44 -0
  318. data/fastlane_core/lib/fastlane_core/itunes_search_api.rb +48 -0
  319. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +409 -0
  320. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +27 -0
  321. data/fastlane_core/lib/fastlane_core/languages.rb +11 -0
  322. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +42 -0
  323. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +44 -0
  324. data/fastlane_core/lib/fastlane_core/print_table.rb +63 -0
  325. data/fastlane_core/lib/fastlane_core/project.rb +450 -0
  326. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +69 -0
  327. data/fastlane_core/lib/fastlane_core/string_filters.rb +34 -0
  328. data/fastlane_core/lib/fastlane_core/tool_collector.rb +179 -0
  329. data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +17 -0
  330. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +190 -0
  331. data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +50 -0
  332. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +122 -0
  333. data/fastlane_core/lib/fastlane_core/ui/interface.rb +159 -0
  334. data/fastlane_core/lib/fastlane_core/ui/ui.rb +26 -0
  335. data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +37 -0
  336. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +198 -0
  337. data/fastlane_core/lib/fastlane_core/xcodebuild_list_output_parser.rb +28 -0
  338. data/frameit/README.md +284 -0
  339. data/frameit/lib/assets/empty.png +0 -0
  340. data/frameit/lib/frameit.rb +52 -0
  341. data/frameit/lib/frameit/commands_generator.rb +99 -0
  342. data/frameit/lib/frameit/config_parser.rb +98 -0
  343. data/frameit/lib/frameit/dependency_checker.rb +20 -0
  344. data/frameit/lib/frameit/device_types.rb +13 -0
  345. data/frameit/lib/frameit/editor.rb +351 -0
  346. data/frameit/lib/frameit/frame_downloader.rb +71 -0
  347. data/frameit/lib/frameit/mac_editor.rb +32 -0
  348. data/frameit/lib/frameit/offsets.rb +19 -0
  349. data/frameit/lib/frameit/options.rb +46 -0
  350. data/frameit/lib/frameit/runner.rb +45 -0
  351. data/frameit/lib/frameit/screenshot.rb +89 -0
  352. data/frameit/lib/frameit/strings_parser.rb +35 -0
  353. data/frameit/lib/frameit/template_finder.rb +36 -0
  354. data/gym/README.md +288 -0
  355. data/gym/lib/assets/GymfileTemplate +13 -0
  356. data/gym/lib/assets/package_application_patches/0001_codesign_args_patch.diff +38 -0
  357. data/gym/lib/assets/package_application_patches/0002_no_strict_parameter_patch.diff +42 -0
  358. data/gym/lib/assets/package_application_patches/PackageApplication_MD5 +2 -0
  359. data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +58 -0
  360. data/gym/lib/gym.rb +49 -0
  361. data/gym/lib/gym/commands_generator.rb +62 -0
  362. data/gym/lib/gym/detect_values.rb +105 -0
  363. data/gym/lib/gym/error_handler.rb +186 -0
  364. data/gym/lib/gym/generators/README.md +1 -0
  365. data/gym/lib/gym/generators/build_command_generator.rb +136 -0
  366. data/gym/lib/gym/generators/package_command_generator.rb +58 -0
  367. data/gym/lib/gym/generators/package_command_generator_legacy.rb +102 -0
  368. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +191 -0
  369. data/gym/lib/gym/manager.rb +17 -0
  370. data/gym/lib/gym/options.rb +254 -0
  371. data/gym/lib/gym/runner.rb +256 -0
  372. data/gym/lib/gym/xcode.rb +21 -0
  373. data/gym/lib/gym/xcodebuild_fixes/README.md +9 -0
  374. data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +32 -0
  375. data/gym/lib/gym/xcodebuild_fixes/package_application_fix.rb +53 -0
  376. data/gym/lib/gym/xcodebuild_fixes/swift_fix.rb +99 -0
  377. data/gym/lib/gym/xcodebuild_fixes/watchkit2_fix.rb +35 -0
  378. data/gym/lib/gym/xcodebuild_fixes/watchkit_fix.rb +40 -0
  379. data/match/README.md +414 -0
  380. data/match/lib/assets/MatchfileTemplate +9 -0
  381. data/match/lib/assets/READMETemplate.md +49 -0
  382. data/match/lib/match.rb +57 -0
  383. data/match/lib/match/change_password.rb +30 -0
  384. data/match/lib/match/commands_generator.rb +120 -0
  385. data/match/lib/match/encrypt.rb +93 -0
  386. data/match/lib/match/generator.rb +74 -0
  387. data/match/lib/match/git_helper.rb +139 -0
  388. data/match/lib/match/nuke.rb +190 -0
  389. data/match/lib/match/options.rb +124 -0
  390. data/match/lib/match/runner.rb +172 -0
  391. data/match/lib/match/setup.rb +20 -0
  392. data/match/lib/match/spaceship_ensure.rb +78 -0
  393. data/match/lib/match/table_printer.rb +43 -0
  394. data/match/lib/match/utils.rb +59 -0
  395. data/pem/README.md +175 -0
  396. data/pem/lib/pem.rb +21 -0
  397. data/pem/lib/pem/commands_generator.rb +41 -0
  398. data/pem/lib/pem/manager.rb +93 -0
  399. data/pem/lib/pem/options.rb +79 -0
  400. data/pilot/README.md +285 -0
  401. data/pilot/lib/pilot.rb +22 -0
  402. data/pilot/lib/pilot/build_manager.rb +209 -0
  403. data/pilot/lib/pilot/commands_generator.rb +136 -0
  404. data/pilot/lib/pilot/features.rb +0 -0
  405. data/pilot/lib/pilot/manager.rb +71 -0
  406. data/pilot/lib/pilot/options.rb +161 -0
  407. data/pilot/lib/pilot/tester_exporter.rb +37 -0
  408. data/pilot/lib/pilot/tester_importer.rb +51 -0
  409. data/pilot/lib/pilot/tester_manager.rb +212 -0
  410. data/pilot/lib/pilot/tester_util.rb +23 -0
  411. data/produce/README.md +232 -0
  412. data/produce/lib/produce.rb +21 -0
  413. data/produce/lib/produce/available_default_languages.rb +36 -0
  414. data/produce/lib/produce/commands_generator.rb +134 -0
  415. data/produce/lib/produce/developer_center.rb +58 -0
  416. data/produce/lib/produce/group.rb +89 -0
  417. data/produce/lib/produce/itunes_connect.rb +87 -0
  418. data/produce/lib/produce/manager.rb +11 -0
  419. data/produce/lib/produce/options.rb +114 -0
  420. data/produce/lib/produce/service.rb +227 -0
  421. data/scan/README.md +219 -0
  422. data/scan/lib/assets/ScanfileTemplate +13 -0
  423. data/scan/lib/scan.rb +40 -0
  424. data/scan/lib/scan/commands_generator.rb +61 -0
  425. data/scan/lib/scan/detect_values.rb +184 -0
  426. data/scan/lib/scan/error_handler.rb +43 -0
  427. data/scan/lib/scan/manager.rb +17 -0
  428. data/scan/lib/scan/options.rb +189 -0
  429. data/scan/lib/scan/report_collector.rb +70 -0
  430. data/scan/lib/scan/runner.rb +103 -0
  431. data/scan/lib/scan/slack_poster.rb +59 -0
  432. data/scan/lib/scan/test_command_generator.rb +130 -0
  433. data/scan/lib/scan/test_result_parser.rb +21 -0
  434. data/screengrab/README.md +190 -0
  435. data/screengrab/lib/assets/ScreengrabfileTemplate +15 -0
  436. data/screengrab/lib/screengrab.rb +32 -0
  437. data/screengrab/lib/screengrab/android_environment.rb +88 -0
  438. data/screengrab/lib/screengrab/commands_generator.rb +60 -0
  439. data/screengrab/lib/screengrab/dependency_checker.rb +56 -0
  440. data/screengrab/lib/screengrab/detect_values.rb +16 -0
  441. data/screengrab/lib/screengrab/options.rb +109 -0
  442. data/screengrab/lib/screengrab/page.html.erb +206 -0
  443. data/screengrab/lib/screengrab/runner.rb +336 -0
  444. data/screengrab/lib/screengrab/setup.rb +16 -0
  445. data/sigh/README.md +256 -0
  446. data/sigh/lib/assets/resign.sh +774 -0
  447. data/sigh/lib/sigh.rb +19 -0
  448. data/sigh/lib/sigh/commands_generator.rb +133 -0
  449. data/sigh/lib/sigh/download_all.rb +36 -0
  450. data/sigh/lib/sigh/local_manage.rb +140 -0
  451. data/sigh/lib/sigh/manager.rb +44 -0
  452. data/sigh/lib/sigh/options.rb +117 -0
  453. data/sigh/lib/sigh/repair.rb +30 -0
  454. data/sigh/lib/sigh/resign.rb +201 -0
  455. data/sigh/lib/sigh/runner.rb +235 -0
  456. data/snapshot/README.md +400 -0
  457. data/snapshot/lib/assets/SnapfileTemplate +36 -0
  458. data/snapshot/lib/assets/SnapshotHelper.swift +138 -0
  459. data/snapshot/lib/assets/SnapshotHelper2-3.swift +140 -0
  460. data/snapshot/lib/snapshot.rb +59 -0
  461. data/snapshot/lib/snapshot/collector.rb +92 -0
  462. data/snapshot/lib/snapshot/commands_generator.rb +108 -0
  463. data/snapshot/lib/snapshot/dependency_checker.rb +50 -0
  464. data/snapshot/lib/snapshot/detect_values.rb +53 -0
  465. data/snapshot/lib/snapshot/error_handler.rb +22 -0
  466. data/snapshot/lib/snapshot/fixes/README.md +5 -0
  467. data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +14 -0
  468. data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +25 -0
  469. data/snapshot/lib/snapshot/latest_os_version.rb +31 -0
  470. data/snapshot/lib/snapshot/options.rb +161 -0
  471. data/snapshot/lib/snapshot/page.html.erb +206 -0
  472. data/snapshot/lib/snapshot/reports_generator.rb +64 -0
  473. data/snapshot/lib/snapshot/reset_simulators.rb +88 -0
  474. data/snapshot/lib/snapshot/runner.rb +294 -0
  475. data/snapshot/lib/snapshot/screenshot_flatten.rb +18 -0
  476. data/snapshot/lib/snapshot/screenshot_rotate.rb +38 -0
  477. data/snapshot/lib/snapshot/setup.rb +35 -0
  478. data/snapshot/lib/snapshot/test_command_generator.rb +118 -0
  479. data/snapshot/lib/snapshot/update.rb +29 -0
  480. data/spaceship/README.md +191 -0
  481. data/spaceship/lib/assets/languageMapping.json +240 -0
  482. data/spaceship/lib/assets/languageMappingReadable.json +30 -0
  483. data/spaceship/lib/spaceship.rb +31 -0
  484. data/spaceship/lib/spaceship/babosa_fix.rb +30 -0
  485. data/spaceship/lib/spaceship/base.rb +236 -0
  486. data/spaceship/lib/spaceship/client.rb +487 -0
  487. data/spaceship/lib/spaceship/commands_generator.rb +48 -0
  488. data/spaceship/lib/spaceship/du/du_client.rb +122 -0
  489. data/spaceship/lib/spaceship/du/upload_file.rb +56 -0
  490. data/spaceship/lib/spaceship/du/utilities.rb +81 -0
  491. data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +14 -0
  492. data/spaceship/lib/spaceship/helper/plist_middleware.rb +15 -0
  493. data/spaceship/lib/spaceship/launcher.rb +94 -0
  494. data/spaceship/lib/spaceship/playground.rb +72 -0
  495. data/spaceship/lib/spaceship/portal/app.rb +148 -0
  496. data/spaceship/lib/spaceship/portal/app_group.rb +77 -0
  497. data/spaceship/lib/spaceship/portal/app_service.rb +278 -0
  498. data/spaceship/lib/spaceship/portal/certificate.rb +333 -0
  499. data/spaceship/lib/spaceship/portal/device.rb +192 -0
  500. data/spaceship/lib/spaceship/portal/portal.rb +8 -0
  501. data/spaceship/lib/spaceship/portal/portal_base.rb +13 -0
  502. data/spaceship/lib/spaceship/portal/portal_client.rb +491 -0
  503. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +467 -0
  504. data/spaceship/lib/spaceship/portal/spaceship.rb +112 -0
  505. data/spaceship/lib/spaceship/portal/ui/select_team.rb +83 -0
  506. data/spaceship/lib/spaceship/spaceauth_runner.rb +50 -0
  507. data/spaceship/lib/spaceship/tunes/app_details.rb +139 -0
  508. data/spaceship/lib/spaceship/tunes/app_image.rb +55 -0
  509. data/spaceship/lib/spaceship/tunes/app_ratings.rb +107 -0
  510. data/spaceship/lib/spaceship/tunes/app_screenshot.rb +17 -0
  511. data/spaceship/lib/spaceship/tunes/app_status.rb +60 -0
  512. data/spaceship/lib/spaceship/tunes/app_submission.rb +136 -0
  513. data/spaceship/lib/spaceship/tunes/app_trailer.rb +68 -0
  514. data/spaceship/lib/spaceship/tunes/app_version.rb +766 -0
  515. data/spaceship/lib/spaceship/tunes/app_version_common.rb +33 -0
  516. data/spaceship/lib/spaceship/tunes/app_version_generated_promocodes.rb +35 -0
  517. data/spaceship/lib/spaceship/tunes/app_version_history.rb +59 -0
  518. data/spaceship/lib/spaceship/tunes/app_version_promocodes.rb +34 -0
  519. data/spaceship/lib/spaceship/tunes/app_version_ref.rb +19 -0
  520. data/spaceship/lib/spaceship/tunes/app_version_states_history.rb +34 -0
  521. data/spaceship/lib/spaceship/tunes/application.rb +437 -0
  522. data/spaceship/lib/spaceship/tunes/build.rb +269 -0
  523. data/spaceship/lib/spaceship/tunes/build_details.rb +48 -0
  524. data/spaceship/lib/spaceship/tunes/build_train.rb +182 -0
  525. data/spaceship/lib/spaceship/tunes/device_type.rb +14 -0
  526. data/spaceship/lib/spaceship/tunes/language_converter.rb +63 -0
  527. data/spaceship/lib/spaceship/tunes/language_item.rb +56 -0
  528. data/spaceship/lib/spaceship/tunes/pricing_tier.rb +81 -0
  529. data/spaceship/lib/spaceship/tunes/recovery_device.rb +69 -0
  530. data/spaceship/lib/spaceship/tunes/spaceship.rb +34 -0
  531. data/spaceship/lib/spaceship/tunes/tester.rb +283 -0
  532. data/spaceship/lib/spaceship/tunes/transit_app_file.rb +27 -0
  533. data/spaceship/lib/spaceship/tunes/tunes.rb +35 -0
  534. data/spaceship/lib/spaceship/tunes/tunes_base.rb +15 -0
  535. data/spaceship/lib/spaceship/tunes/tunes_client.rb +1068 -0
  536. data/spaceship/lib/spaceship/tunes/user_detail.rb +19 -0
  537. data/spaceship/lib/spaceship/tunes/version_set.rb +35 -0
  538. data/spaceship/lib/spaceship/two_step_client.rb +195 -0
  539. data/spaceship/lib/spaceship/ui.rb +27 -0
  540. data/supply/README.md +214 -0
  541. data/supply/lib/supply.rb +29 -0
  542. data/supply/lib/supply/apk_listing.rb +14 -0
  543. data/supply/lib/supply/client.rb +345 -0
  544. data/supply/lib/supply/commands_generator.rb +62 -0
  545. data/supply/lib/supply/listing.rb +32 -0
  546. data/supply/lib/supply/options.rb +135 -0
  547. data/supply/lib/supply/setup.rb +102 -0
  548. data/supply/lib/supply/uploader.rb +221 -0
  549. metadata +699 -428
  550. data/bin//360/237/232/200 +0 -5
  551. data/lib/.DS_Store +0 -0
  552. data/lib/assets/.DS_Store +0 -0
  553. data/lib/assets/completions/.DS_Store +0 -0
  554. data/lib/fastlane/.DS_Store +0 -0
  555. data/lib/fastlane/actions/gym.rb +0 -90
  556. data/lib/fastlane/actions/reset_simulators.rb +0 -44
  557. data/lib/fastlane/cli_tools_distributor.rb +0 -100
  558. data/lib/fastlane/setup/.DS_Store +0 -0
@@ -0,0 +1,38 @@
1
+ require 'shellwords'
2
+
3
+ module Snapshot
4
+ # This class takes care of rotating images
5
+ class ScreenshotRotate
6
+ # @param (String) The path in which the screenshots are located in
7
+ def run(path)
8
+ UI.verbose "Rotating the screenshots (if necessary)"
9
+ rotate(path)
10
+ end
11
+
12
+ def rotate(path)
13
+ Dir.glob([path, '/**/*.png'].join('/')).each do |file|
14
+ UI.verbose "Rotating '#{file}'"
15
+
16
+ command = nil
17
+ if file.end_with? "landscapeleft.png"
18
+ command = "sips -r -90 '#{file}'"
19
+ elsif file.end_with? "landscaperight.png"
20
+ command = "sips -r 90 '#{file}'"
21
+ elsif file.end_with? "portrait_upsidedown.png"
22
+ command = "sips -r 180 '#{file}'"
23
+ end
24
+
25
+ next unless command
26
+
27
+ # Only rotate if we need to
28
+ PTY.spawn(command) do |r, w, pid|
29
+ r.sync
30
+ r.each do |line|
31
+ # We need to read this otherwise things hang
32
+ end
33
+ ::Process.wait pid
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,35 @@
1
+ module Snapshot
2
+ class Setup
3
+ # This method will take care of creating a Snapfile and other necessary files
4
+ def self.create(path)
5
+ snapfile_path = File.join(path, 'Snapfile')
6
+
7
+ if File.exist?(snapfile_path)
8
+ UI.user_error!("Snapfile already exists at path '#{snapfile_path}'. Run 'snapshot' to use snapshot.")
9
+ end
10
+
11
+ File.write(snapfile_path, File.read("#{Snapshot::ROOT}/lib/assets/SnapfileTemplate"))
12
+ File.write(File.join(path, 'SnapshotHelper.swift'), File.read("#{Snapshot::ROOT}/lib/assets/SnapshotHelper.swift"))
13
+ File.write(File.join(path, 'SnapshotHelper2-3.swift'), File.read("#{Snapshot::ROOT}/lib/assets/SnapshotHelper2-3.swift"))
14
+
15
+ puts "✅ Successfully created SnapshotHelper.swift '#{File.join(path, 'SnapshotHelper.swift')}'".green
16
+ puts "✅ Successfully created SnapshotHelper2-3.swift '#{File.join(path, 'SnapshotHelper2-3.swift')} (if your UI tests are written in Swift 2.3)'".green
17
+ puts "✅ Successfully created new Snapfile at '#{snapfile_path}'".green
18
+
19
+ puts "-------------------------------------------------------".yellow
20
+ puts "Open your Xcode project and make sure to do the following:".yellow
21
+ puts "1) Add a new UI Test target to your project".yellow
22
+ puts "2) Add the ./fastlane/SnapshotHelper.swift to your UI Test target".yellow
23
+ puts " You can move the file anywhere you want".yellow
24
+ puts "3) Call `setupSnapshot(app)` when launching your app".yellow
25
+ puts ""
26
+ puts " let app = XCUIApplication()"
27
+ puts " setupSnapshot(app)"
28
+ puts " app.launch()"
29
+ puts ""
30
+ puts "4) Add `snapshot(\"0Launch\")` to wherever you want to create the screenshots".yellow
31
+ puts ""
32
+ puts "More information on GitHub: https://github.com/fastlane/fastlane/tree/master/snapshot".green
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,118 @@
1
+ module Snapshot
2
+ # Responsible for building the fully working xcodebuild command
3
+ class TestCommandGenerator
4
+ class << self
5
+ def generate(device_type: nil)
6
+ parts = prefix
7
+ parts << "xcodebuild"
8
+ parts += options
9
+ parts += destination(device_type)
10
+ parts += build_settings
11
+ parts += actions
12
+ parts += suffix
13
+ parts += pipe
14
+
15
+ parts
16
+ end
17
+
18
+ def prefix
19
+ ["set -o pipefail &&"]
20
+ end
21
+
22
+ # Path to the project or workspace as parameter
23
+ # This will also include the scheme (if given)
24
+ # @return [Array] The array with all the components to join
25
+ def project_path_array
26
+ proj = Snapshot.project.xcodebuild_parameters
27
+ return proj if proj.count > 0
28
+ UI.user_error!("No project/workspace found")
29
+ end
30
+
31
+ def options
32
+ config = Snapshot.config
33
+
34
+ options = []
35
+ options += project_path_array
36
+ options << "-sdk '#{config[:sdk]}'" if config[:sdk]
37
+ options << "-derivedDataPath '#{derived_data_path}'"
38
+
39
+ options
40
+ end
41
+
42
+ def build_settings
43
+ build_settings = []
44
+ build_settings << "FASTLANE_SNAPSHOT=YES"
45
+
46
+ build_settings
47
+ end
48
+
49
+ def actions
50
+ actions = []
51
+ actions << :clean if Snapshot.config[:clean]
52
+ actions << :build # https://github.com/fastlane/snapshot/issues/246
53
+ actions << :test
54
+
55
+ actions
56
+ end
57
+
58
+ def suffix
59
+ []
60
+ end
61
+
62
+ def pipe
63
+ ["| tee #{xcodebuild_log_path.shellescape} | xcpretty #{Snapshot.config[:xcpretty_args]}"]
64
+ end
65
+
66
+ def find_device(device_name, os_version = Snapshot.config[:ios_version])
67
+ # We might get this error message
68
+ # > The requested device could not be found because multiple devices matched the request.
69
+ #
70
+ # This happens when you have multiple simulators for a given device type / iOS combination
71
+ # { platform:iOS Simulator, id:1685B071-AFB2-4DC1-BE29-8370BA4A6EBD, OS:9.0, name:iPhone 5 }
72
+ # { platform:iOS Simulator, id:A141F23B-96B3-491A-8949-813B376C28A7, OS:9.0, name:iPhone 5 }
73
+ #
74
+ simulators = FastlaneCore::DeviceManager.simulators
75
+ # Sort devices with matching names by OS version, largest first, so that we can
76
+ # pick the device with the newest OS in case an exact OS match is not available
77
+ name_matches = simulators.find_all { |sim| sim.name.strip == device_name.strip }
78
+ .sort_by { |sim| Gem::Version.new(sim.os_version) }
79
+ .reverse
80
+ name_matches.find { |sim| sim.os_version == os_version } || name_matches.first
81
+ end
82
+
83
+ def device_udid(device_name, os_version = Snapshot.config[:ios_version])
84
+ device = find_device(device_name, os_version)
85
+
86
+ device ? device.udid : nil
87
+ end
88
+
89
+ def destination(device_name)
90
+ os = device_name =~ /^Apple TV/ ? "tvOS" : "iOS"
91
+ os_version = Snapshot.config[:ios_version] || Snapshot::LatestOsVersion.version(os)
92
+
93
+ device = find_device(device_name, os_version)
94
+ if device.nil?
95
+ UI.user_error!("No device found named '#{device_name}' for version '#{os_version}'")
96
+ return
97
+ elsif device.os_version != os_version
98
+ UI.important("Using device named '#{device_name}' with version '#{device.os_version}' because no match was found for version '#{os_version}'")
99
+ end
100
+ value = "platform=#{os} Simulator,id=#{device.udid},OS=#{os_version}"
101
+
102
+ return ["-destination '#{value}'"]
103
+ end
104
+
105
+ def xcodebuild_log_path
106
+ file_name = "#{Snapshot.project.app_name}-#{Snapshot.config[:scheme]}.log"
107
+ containing = File.expand_path(Snapshot.config[:buildlog_path])
108
+ FileUtils.mkdir_p(containing)
109
+
110
+ return File.join(containing, file_name)
111
+ end
112
+
113
+ def derived_data_path
114
+ Snapshot.cache[:derived_data_path] ||= (Snapshot.config[:derived_data_path] || Dir.mktmpdir("snapshot_derived"))
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,29 @@
1
+ module Snapshot
2
+ # Migrate helper files
3
+ class Update
4
+ # @return [Array] A list of helper files (usually just one)
5
+ def self.find_helper
6
+ Dir["./**/SnapshotHelper.swift"]
7
+ end
8
+
9
+ def update
10
+ paths = self.class.find_helper
11
+
12
+ UI.message "Found the following SnapshotHelper:"
13
+ paths.each { |p| UI.message "\t#{p}" }
14
+ UI.important "Are you sure you want to automatically update the helpers listed above?"
15
+ UI.message "This will overwrite all its content with the latest code."
16
+ UI.message "The underlying API will not change. You can always migrate manually by looking at"
17
+ UI.message "https://github.com/fastlane/fastlane/blob/master/snapshot/lib/assets/SnapshotHelper.swift"
18
+
19
+ return 1 unless UI.confirm("Overwrite configuration files?")
20
+
21
+ paths.each do |path|
22
+ UI.message "Updating '#{path}'..."
23
+ File.write(path, File.read("#{Snapshot::ROOT}/lib/assets/SnapshotHelper.swift"))
24
+ end
25
+
26
+ UI.success "Successfully updated helper files"
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,191 @@
1
+ <h3 align="center">
2
+ <a href="https://github.com/fastlane/fastlane/tree/master/fastlane">
3
+ <img src="../fastlane/assets/fastlane.png" width="100" />
4
+ <br />
5
+ fastlane
6
+ </a>
7
+ </h3>
8
+ <p align="center">
9
+ <a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> &bull;
10
+ <a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> &bull;
11
+ <a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> &bull;
12
+ <a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> &bull;
13
+ <a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> &bull;
14
+ <a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> &bull;
15
+ <a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> &bull;
16
+ <b>spaceship</b> &bull;
17
+ <a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> &bull;
18
+ <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
+ <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
+ <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
22
+ </p>
23
+ -------
24
+
25
+ <p align="center">
26
+ <img src="assets/spaceship.png" width="470">
27
+ </p>
28
+ -------
29
+
30
+ [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
31
+ [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/spaceship/LICENSE)
32
+ [![Gem](https://img.shields.io/gem/v/spaceship.svg?style=flat)](http://rubygems.org/gems/spaceship)
33
+
34
+ `spaceship` exposes both the Apple Developer Center and the iTunes Connect API. This fast and powerful API powers parts of fastlane, and can be leveraged for more advanced fastlane features. Scripting your Developer Center workflow has never been easier!
35
+
36
+ Get in contact with the creators on Twitter: [@FastlaneTools](https://twitter.com/fastlanetools)
37
+
38
+ -------
39
+ <p align="center">
40
+ <a href="#whats-spaceship">Why?</a> &bull;
41
+ <a href="#usage">Usage</a> &bull;
42
+ <a href="#installation">Installation</a> &bull;
43
+ <a href="#technical-details">Technical Details</a> &bull;
44
+ <a href="#need-help">Need help?</a>
45
+ </p>
46
+
47
+ -------
48
+
49
+ <h5 align="center"><code>spaceship</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
50
+
51
+ # What's spaceship?
52
+
53
+ Up until now, the [fastlane tools](https://fastlane.tools) used web scraping to interact with Apple's web services. With spaceship it is possible to directly access the underlying APIs using a simple HTTP client only.
54
+
55
+ Using spaceship, the execution time of [sigh](https://github.com/fastlane/fastlane/tree/master/sigh) was reduced from over 1 minute to less than 5 seconds.
56
+
57
+ spaceship uses a combination of 3 different API endpoints, used by the Apple Developer Portal and Xcode. As no API offers everything we need, spaceship combines all APIs for you. [More details about the APIs](#technical-details).
58
+
59
+ More details about why spaceship is useful on [spaceship.airforce](https://spaceship.airforce).
60
+
61
+ > No matter how many apps or certificates you have, spaceship **can** handle your scale.
62
+
63
+ Enough words, here is some code:
64
+
65
+ ```ruby
66
+ Spaceship.login
67
+
68
+ # Create a new app
69
+ app = Spaceship.app.create!(bundle_id: "com.krausefx.app", name: "Spaceship App")
70
+
71
+ # Use an existing certificate
72
+ cert = Spaceship.certificate.production.all.first
73
+
74
+ # Create a new provisioning profile
75
+ profile = Spaceship.provisioning_profile.app_store.create!(bundle_id: app.bundle_id,
76
+ certificate: cert)
77
+
78
+ # Print the name and download the new profile
79
+ puts "Created Profile " + profile.name
80
+ profile.download
81
+ ```
82
+
83
+ ## Speed
84
+
85
+ How fast are tools using `spaceship` compared to web scraping?
86
+
87
+ ![assets/SpaceshipRecording.gif](assets/SpaceshipRecording.gif)
88
+
89
+ # Installation
90
+
91
+ sudo gem install fastlane
92
+
93
+ # Usage
94
+
95
+ ## Playground
96
+
97
+ To try `spaceship`, just run `fastlane spaceship`. It will automatically start the `spaceship playground`. It makes it super easy to try `spaceship` :rocket:
98
+
99
+ ![assets/docs/Playground.png](assets/docs/Playground.png)
100
+
101
+ This requires you to install `pry` using `sudo gem install pry`. `pry` is not installed by default, as most [fastlane](https://fastlane.tools) users won't need the `spaceship playground`. You can add the `pry` dependency to your `Gemfile`.
102
+
103
+ ## Apple Developer Portal API
104
+
105
+ ##### Open [DeveloperPortal.md](docs/DeveloperPortal.md) for code samples
106
+
107
+ ## iTunes Connect API
108
+
109
+ ##### Open [iTunesConnect.md](docs/iTunesConnect.md) for code samples
110
+
111
+ ## 2 Step Verification
112
+
113
+ When your Apple account has 2 factor verification enabled, you'll automatically be asked to verify your identity using your phone. The resulting session will be stored in `~/.spaceship/[email]/cookie`. The session should be valid for about one month, however there is no way to test this without actually waiting for over a month.
114
+
115
+ Since your CI system probably doesn't allow you to input values (like the verification code), you can use `spaceauth`:
116
+
117
+ ```sh
118
+ spaceauth -u apple@krausefx.com
119
+ ```
120
+
121
+ This will authenticate you and provide a string that can be transferred to your CI system:
122
+
123
+ ```
124
+ export FASTLANE_SESSION='---\n- !ruby/object:HTTP::Cookie\n name: DES5c148586dfd451e55afbaaa5f62418f91\n value: HSARMTKNSRVTWFla1+yO4gVPowH17VaaaxPFnUdMUegQZxqy1Ie1c2v6bM1vSOzIbuOmrl/FNenlScsd/NbF7/Lw4cpnL15jsyg0TOJwP32tC/NguPiyOaaaU+jrj4tf4uKdIywVaaaFSRVT\n domain: idmsa.apple.com\n for_domain: true\n path: "/"\n secure: true\n httponly: true\n expires: 2016-04-27 23:55:56.000000000 Z\n max_age: \n created_at: 2016-03-28 16:55:57.032086000 -07:00\n accessed_at: 2016-03-28 19:11:17.828141000 -07:00\n'
125
+ ```
126
+
127
+ Copy everything from `---\n` to your CI server and provide it as environment variable named `FASTLANE_SESSION`.
128
+
129
+ ### _spaceship_ in use
130
+
131
+ All [fastlane tools](https://fastlane.tools) that communicate with Apple's web services in some way, use _spaceship_ to do so.
132
+
133
+ # Technical Details
134
+
135
+ ## HTTP Client
136
+
137
+ Up until now all [fastlane tools](https://fastlane.tools) used web scraping to interact with Apple's web services. `spaceship` uses a simple HTTP client only, resulting in much less overhead and extremely improved speed.
138
+
139
+ Advantages of `spaceship` (HTTP client) over web scraping:
140
+
141
+ - Blazing fast :rocket: 90% faster than previous methods
142
+ - No more overhead by loading images, HTML, JS and CSS files on each page load
143
+ - Great test coverage by stubbing server responses
144
+ - Resistant against design changes of the Apple Developer Portal
145
+ - Automatic re-trying of requests in case a timeout occurs
146
+
147
+ ## API Endpoints
148
+
149
+ Overview of the used API endpoints
150
+
151
+ - `https://idmsa.apple.com`: Used to authenticate to get a valid session
152
+ - `https://developerservices2.apple.com`:
153
+ - Get a list of all available provisioning profiles
154
+ - Register new devices
155
+ - `https://developer.apple.com`:
156
+ - List all devices, certificates, apps and app groups
157
+ - Create new certificates, provisioning profiles and apps
158
+ - Disable/enable services on apps and assign them to app groups
159
+ - Delete certificates and apps
160
+ - Repair provisioning profiles
161
+ - Download provisioning profiles
162
+ - Team selection
163
+ - `https://itunesconnect.apple.com`:
164
+ - Managing apps
165
+ - Managing beta testers
166
+ - Submitting updates to review
167
+ - Managing app metadata
168
+ - `https://du-itc.itunesconnect.apple.com`:
169
+ - Upload icons, screenshots, trailers ...
170
+
171
+ `spaceship` uses all those API points to offer this seamless experience.
172
+
173
+ ## Magic involved
174
+
175
+ `spaceship` does a lot of magic to get everything working so neatly:
176
+
177
+ - **Sensible Defaults**: You only have to provide the mandatory information (e.g. new provisioning profiles contain all devices by default)
178
+ - **Local Validation**: When pushing changes back to the Apple Dev Portal `spaceship` will make sure only valid data is sent to Apple (e.g. automatic repairing of provisioning profiles)
179
+ - **Various request/response types**: When working with the different API endpoints, `spaceship` has to deal with `JSON`, `XML`, `txt`, `plist` and sometimes even `HTML` responses and requests.
180
+ - **Automatic Pagination**: Even if you have thousands of apps, profiles or certificates, `spaceship` **can** handle your scale. It was heavily tested by first using `spaceship` to create hundreds of profiles and then accessing them using `spaceship`.
181
+ - **Session, Cookie and CSRF token**: All the security aspects are handled by `spaceship`.
182
+ - **Profile Magic**: Create and upload code signing requests, all managed by `spaceship`
183
+ - **Multiple Spaceship**: You can launch multiple `spaceships` with different Apple accounts to do things like syncing the registered devices.
184
+
185
+ # Code of Conduct
186
+ Help us keep `fastlane` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
187
+
188
+ # License
189
+ This project is licensed under the terms of the MIT license. See the LICENSE file.
190
+
191
+ > This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
@@ -0,0 +1,240 @@
1
+ [
2
+ {
3
+ "locale": "cmn-Hans",
4
+ "name": "Simplified Chinese",
5
+ "game-center": true,
6
+ "itc_locale": "zh-Hans"
7
+ },
8
+ {
9
+ "locale": "cmn-Hant",
10
+ "name": "Traditional Chinese",
11
+ "game-center": true,
12
+ "itc_locale": "zh-Hant"
13
+ },
14
+ {
15
+ "locale": "da-DK",
16
+ "name": "Danish",
17
+ "game-center": true,
18
+ "alternatives": [
19
+ "da"
20
+ ],
21
+ "itc_locale": "da"
22
+ },
23
+ {
24
+ "locale": "nl-NL",
25
+ "name": "Dutch",
26
+ "game-center": true,
27
+ "alternatives": [
28
+ "nl"
29
+ ]
30
+ },
31
+ {
32
+ "locale": "en-AU",
33
+ "name": "Australian English",
34
+ "game-center": false
35
+ },
36
+ {
37
+ "locale": "en-AU",
38
+ "name": "English_Australian",
39
+ "game-center": false
40
+ },
41
+ {
42
+ "locale": "en-CA",
43
+ "name": "Canadian English",
44
+ "game-center": false
45
+ },
46
+ {
47
+ "locale": "en-CA",
48
+ "name": "English_CA",
49
+ "game-center": false
50
+ },
51
+ {
52
+ "locale": "en-GB",
53
+ "name": "UK English",
54
+ "game-center": true
55
+ },
56
+ {
57
+ "locale": "en-GB",
58
+ "name": "English_UK",
59
+ "game-center": true
60
+ },
61
+ {
62
+ "locale": "en-US",
63
+ "name": "English",
64
+ "game-center": true
65
+ },
66
+ {
67
+ "locale": "fi-FI",
68
+ "name": "Finnish",
69
+ "game-center": true,
70
+ "alternatives": [
71
+ "fi"
72
+ ],
73
+ "itc_locale": "fin"
74
+ },
75
+ {
76
+ "locale": "fr-CA",
77
+ "name": "Canadian French",
78
+ "game-center": false
79
+ },
80
+ {
81
+ "locale": "fr-CA",
82
+ "name": "French_CA",
83
+ "game-center": false
84
+ },
85
+ {
86
+ "locale": "fr-FR",
87
+ "name": "French",
88
+ "game-center": true,
89
+ "alternatives": [
90
+ "fr"
91
+ ]
92
+ },
93
+ {
94
+ "locale": "de-DE",
95
+ "name": "German",
96
+ "game-center": true,
97
+ "alternatives": [
98
+ "de"
99
+ ]
100
+ },
101
+ {
102
+ "locale": "el-GR",
103
+ "name": "Greek",
104
+ "game-center": true,
105
+ "alternatives": [
106
+ "el"
107
+ ],
108
+ "itc_locale": "el"
109
+ },
110
+ {
111
+ "locale": "id-ID",
112
+ "name": "Indonesian",
113
+ "game-center": true,
114
+ "alternatives": [
115
+ "id"
116
+ ],
117
+ "itc_locale": "id"
118
+ },
119
+ {
120
+ "locale": "it-IT",
121
+ "name": "Italian",
122
+ "game-center": true,
123
+ "alternatives": [
124
+ "it"
125
+ ],
126
+ "itc_locale": "it"
127
+ },
128
+ {
129
+ "locale": "ja-JP",
130
+ "name": "Japanese",
131
+ "game-center": true,
132
+ "alternatives": [
133
+ "ja"
134
+ ],
135
+ "itc_locale": "ja"
136
+ },
137
+ {
138
+ "locale": "ko-KR",
139
+ "name": "Korean",
140
+ "game-center": true,
141
+ "alternatives": [
142
+ "ko"
143
+ ],
144
+ "itc_locale": "ko"
145
+ },
146
+ {
147
+ "locale": "ms-MY",
148
+ "name": "Malay",
149
+ "game-center": true,
150
+ "alternatives": [
151
+ "ms"
152
+ ],
153
+ "itc_locale": "ms"
154
+ },
155
+ {
156
+ "locale": "no-NO",
157
+ "name": "Norwegian",
158
+ "game-center": true,
159
+ "alternatives": [
160
+ "no"
161
+ ],
162
+ "itc_locale": "no"
163
+ },
164
+ {
165
+ "locale": "pt-BR",
166
+ "name": "Brazilian Portuguese",
167
+ "game-center": true
168
+ },
169
+ {
170
+ "locale": "pt-PT",
171
+ "name": "Portuguese",
172
+ "game-center": true,
173
+ "alternatives": [
174
+ "pt"
175
+ ]
176
+ },
177
+ {
178
+ "locale": "ru-RU",
179
+ "name": "Russian",
180
+ "game-center": true,
181
+ "alternatives": [
182
+ "ru"
183
+ ],
184
+ "itc_locale": "ru"
185
+ },
186
+ {
187
+ "locale": "es-MX",
188
+ "name": "Mexican Spanish",
189
+ "game-center": false
190
+ },
191
+ {
192
+ "locale": "es-MX",
193
+ "name": "Spanish_MX",
194
+ "game-center": false
195
+ },
196
+ {
197
+ "locale": "es-ES",
198
+ "name": "Spanish",
199
+ "game-center": true,
200
+ "alternatives": [
201
+ "es"
202
+ ]
203
+ },
204
+ {
205
+ "locale": "sv-SE",
206
+ "name": "Swedish",
207
+ "game-center": true,
208
+ "alternatives": [
209
+ "sv"
210
+ ],
211
+ "itc_locale": "sv"
212
+ },
213
+ {
214
+ "locale": "th-TH",
215
+ "name": "Thai",
216
+ "game-center": true,
217
+ "alternatives": [
218
+ "th"
219
+ ],
220
+ "itc_locale": "th"
221
+ },
222
+ {
223
+ "locale": "tr-TR",
224
+ "name": "Turkish",
225
+ "game-center": true,
226
+ "alternatives": [
227
+ "tr"
228
+ ],
229
+ "itc_locale": "tr"
230
+ },
231
+ {
232
+ "locale": "vi-VI",
233
+ "name": "Vietnamese",
234
+ "game-center": true,
235
+ "alternatives": [
236
+ "vi"
237
+ ],
238
+ "itc_locale": "vi"
239
+ }
240
+ ]