fastlane 2.74.1 → 2.75.0.beta.20180109010003

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 (312) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bin-proxy +2 -2
  3. data/bin/fastlane +5 -5
  4. data/cert/lib/cert/commands_generator.rb +1 -1
  5. data/cert/lib/cert/runner.rb +14 -14
  6. data/credentials_manager/lib/credentials_manager/account_manager.rb +11 -11
  7. data/credentials_manager/lib/credentials_manager/appfile_config.rb +11 -11
  8. data/credentials_manager/lib/credentials_manager/cli.rb +4 -4
  9. data/deliver/lib/deliver/app_screenshot.rb +19 -2
  10. data/deliver/lib/deliver/commands_generator.rb +2 -2
  11. data/deliver/lib/deliver/loader.rb +2 -2
  12. data/deliver/lib/deliver/options.rb +2 -2
  13. data/deliver/lib/deliver/setup.rb +1 -1
  14. data/deliver/lib/deliver/submit_for_review.rb +1 -1
  15. data/fastlane/lib/fastlane/action.rb +2 -2
  16. data/fastlane/lib/fastlane/actions/actions_helper.rb +5 -5
  17. data/fastlane/lib/fastlane/actions/add_extra_platforms.rb +2 -2
  18. data/fastlane/lib/fastlane/actions/add_git_tag.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/appaloosa.rb +4 -4
  21. data/fastlane/lib/fastlane/actions/appetize.rb +3 -3
  22. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +2 -2
  23. data/fastlane/lib/fastlane/actions/appium.rb +2 -2
  24. data/fastlane/lib/fastlane/actions/appledoc.rb +3 -3
  25. data/fastlane/lib/fastlane/actions/apteligent.rb +2 -2
  26. data/fastlane/lib/fastlane/actions/artifactory.rb +2 -2
  27. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
  28. data/fastlane/lib/fastlane/actions/build_ios_app.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +1 -1
  30. data/fastlane/lib/fastlane/actions/carthage.rb +4 -4
  31. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +4 -4
  32. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +1 -1
  33. data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +1 -1
  34. data/fastlane/lib/fastlane/actions/cloc.rb +1 -1
  35. data/fastlane/lib/fastlane/actions/cocoapods.rb +1 -1
  36. data/fastlane/lib/fastlane/actions/commit_github_file.rb +4 -4
  37. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +7 -7
  38. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
  39. data/fastlane/lib/fastlane/actions/crashlytics.rb +2 -2
  40. data/fastlane/lib/fastlane/actions/debug.rb +2 -2
  41. data/fastlane/lib/fastlane/actions/delete_keychain.rb +1 -1
  42. data/fastlane/lib/fastlane/actions/deploygate.rb +7 -7
  43. data/fastlane/lib/fastlane/actions/docs/cert.md +2 -2
  44. data/fastlane/lib/fastlane/actions/docs/deliver.md +1 -1
  45. data/fastlane/lib/fastlane/actions/docs/frameit.md +2 -2
  46. data/fastlane/lib/fastlane/actions/docs/gym.md +1 -3
  47. data/fastlane/lib/fastlane/actions/docs/match.md +4 -4
  48. data/fastlane/lib/fastlane/actions/docs/pem.md +1 -1
  49. data/fastlane/lib/fastlane/actions/docs/precheck.md +2 -2
  50. data/fastlane/lib/fastlane/actions/docs/produce.md +1 -1
  51. data/fastlane/lib/fastlane/actions/docs/scan.md +0 -2
  52. data/fastlane/lib/fastlane/actions/docs/sigh.md +6 -6
  53. data/fastlane/lib/fastlane/actions/docs/snapshot.md +4 -4
  54. data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -1
  55. data/fastlane/lib/fastlane/actions/dsym_zip.rb +1 -1
  56. data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +1 -1
  57. data/fastlane/lib/fastlane/actions/flock.rb +7 -7
  58. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +1 -1
  59. data/fastlane/lib/fastlane/actions/gcovr.rb +5 -5
  60. data/fastlane/lib/fastlane/actions/get_build_number.rb +2 -2
  61. data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +9 -9
  62. data/fastlane/lib/fastlane/actions/get_github_release.rb +2 -2
  63. data/fastlane/lib/fastlane/actions/get_info_plist_value.rb +1 -1
  64. data/fastlane/lib/fastlane/actions/get_version_number.rb +7 -7
  65. data/fastlane/lib/fastlane/actions/github_api.rb +2 -2
  66. data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +2 -2
  67. data/fastlane/lib/fastlane/actions/hockey.rb +5 -5
  68. data/fastlane/lib/fastlane/actions/ifttt.rb +4 -4
  69. data/fastlane/lib/fastlane/actions/increment_build_number.rb +3 -3
  70. data/fastlane/lib/fastlane/actions/increment_version_number.rb +4 -4
  71. data/fastlane/lib/fastlane/actions/install_on_device.rb +2 -2
  72. data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +2 -2
  73. data/fastlane/lib/fastlane/actions/installr.rb +6 -6
  74. data/fastlane/lib/fastlane/actions/ipa.rb +1 -1
  75. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
  76. data/fastlane/lib/fastlane/actions/lcov.rb +1 -1
  77. data/fastlane/lib/fastlane/actions/mailgun.rb +3 -3
  78. data/fastlane/lib/fastlane/actions/modify_services.rb +1 -1
  79. data/fastlane/lib/fastlane/actions/notification.rb +1 -1
  80. data/fastlane/lib/fastlane/actions/number_of_commits.rb +1 -1
  81. data/fastlane/lib/fastlane/actions/onesignal.rb +1 -1
  82. data/fastlane/lib/fastlane/actions/pod_push.rb +1 -1
  83. data/fastlane/lib/fastlane/actions/podio_item.rb +6 -6
  84. data/fastlane/lib/fastlane/actions/puts.rb +1 -1
  85. data/fastlane/lib/fastlane/actions/read_podspec.rb +1 -1
  86. data/fastlane/lib/fastlane/actions/recreate_schemes.rb +1 -1
  87. data/fastlane/lib/fastlane/actions/reset_git_repo.rb +1 -1
  88. data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
  89. data/fastlane/lib/fastlane/actions/rocket.rb +2 -2
  90. data/fastlane/lib/fastlane/actions/run_tests.rb +1 -1
  91. data/fastlane/lib/fastlane/actions/s3.rb +1 -1
  92. data/fastlane/lib/fastlane/actions/scp.rb +2 -2
  93. data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +1 -1
  94. data/fastlane/lib/fastlane/actions/set_changelog.rb +2 -2
  95. data/fastlane/lib/fastlane/actions/set_github_release.rb +4 -4
  96. data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +2 -2
  97. data/fastlane/lib/fastlane/actions/set_pod_key.rb +1 -1
  98. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +4 -4
  99. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +6 -6
  100. data/fastlane/lib/fastlane/actions/setup_travis.rb +2 -2
  101. data/fastlane/lib/fastlane/actions/slack.rb +3 -3
  102. data/fastlane/lib/fastlane/actions/slather.rb +2 -2
  103. data/fastlane/lib/fastlane/actions/spm.rb +2 -2
  104. data/fastlane/lib/fastlane/actions/ssh.rb +1 -1
  105. data/fastlane/lib/fastlane/actions/team_id.rb +1 -1
  106. data/fastlane/lib/fastlane/actions/team_name.rb +1 -1
  107. data/fastlane/lib/fastlane/actions/testfairy.rb +7 -7
  108. data/fastlane/lib/fastlane/actions/tryouts.rb +6 -6
  109. data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +2 -2
  110. data/fastlane/lib/fastlane/actions/update_fastlane.rb +5 -5
  111. data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +10 -10
  112. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  113. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -1
  114. data/fastlane/lib/fastlane/actions/update_url_schemes.rb +1 -1
  115. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -4
  116. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +4 -4
  117. data/fastlane/lib/fastlane/actions/verify_build.rb +6 -6
  118. data/fastlane/lib/fastlane/actions/verify_pod_keys.rb +1 -1
  119. data/fastlane/lib/fastlane/actions/version_bump_podspec.rb +3 -3
  120. data/fastlane/lib/fastlane/actions/version_get_podspec.rb +2 -2
  121. data/fastlane/lib/fastlane/actions/xcode_select.rb +2 -2
  122. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +3 -3
  123. data/fastlane/lib/fastlane/actions/xcov.rb +1 -1
  124. data/fastlane/lib/fastlane/actions/xctool.rb +1 -1
  125. data/fastlane/lib/fastlane/actions/xcversion.rb +1 -1
  126. data/fastlane/lib/fastlane/actions/zip.rb +3 -3
  127. data/fastlane/lib/fastlane/auto_complete.rb +15 -15
  128. data/fastlane/lib/fastlane/cli_tools_distributor.rb +15 -15
  129. data/fastlane/lib/fastlane/command_line_handler.rb +1 -1
  130. data/fastlane/lib/fastlane/commands_generator.rb +26 -26
  131. data/fastlane/lib/fastlane/configuration_helper.rb +2 -2
  132. data/fastlane/lib/fastlane/documentation/actions_list.rb +47 -47
  133. data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
  134. data/fastlane/lib/fastlane/environment_printer.rb +5 -5
  135. data/fastlane/lib/fastlane/fast_file.rb +5 -5
  136. data/fastlane/lib/fastlane/fastlane_require.rb +2 -2
  137. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +3 -3
  138. data/fastlane/lib/fastlane/helper/podspec_helper.rb +1 -1
  139. data/fastlane/lib/fastlane/helper/sh_helper.rb +2 -2
  140. data/fastlane/lib/fastlane/helper/xcversion_helper.rb +1 -1
  141. data/fastlane/lib/fastlane/lane.rb +6 -6
  142. data/fastlane/lib/fastlane/lane_list.rb +3 -3
  143. data/fastlane/lib/fastlane/lane_manager.rb +7 -7
  144. data/fastlane/lib/fastlane/lane_manager_base.rb +15 -15
  145. data/fastlane/lib/fastlane/markdown_table_formatter.rb +2 -2
  146. data/fastlane/lib/fastlane/new_action.rb +5 -5
  147. data/fastlane/lib/fastlane/one_off.rb +1 -1
  148. data/fastlane/lib/fastlane/plugins/plugin_generator.rb +5 -5
  149. data/fastlane/lib/fastlane/plugins/plugin_generator_ui.rb +2 -2
  150. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +7 -7
  151. data/fastlane/lib/fastlane/plugins/plugin_search.rb +5 -5
  152. data/fastlane/lib/fastlane/plugins/plugin_update_manager.rb +4 -4
  153. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +9 -8
  154. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +37 -2
  155. data/fastlane/lib/fastlane/plugins/template/Gemfile +1 -1
  156. data/fastlane/lib/fastlane/plugins/template/Rakefile +1 -1
  157. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +3 -0
  158. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +4 -0
  159. data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +1 -1
  160. data/fastlane/lib/fastlane/runner.rb +9 -9
  161. data/fastlane/lib/fastlane/setup/crashlytics_beta.rb +9 -9
  162. data/fastlane/lib/fastlane/setup/crashlytics_beta_command_line_handler.rb +7 -7
  163. data/fastlane/lib/fastlane/setup/crashlytics_beta_info_collector.rb +19 -19
  164. data/fastlane/lib/fastlane/setup/crashlytics_beta_ui.rb +3 -3
  165. data/fastlane/lib/fastlane/setup/setup_android.rb +4 -4
  166. data/fastlane/lib/fastlane/setup/setup_ios.rb +9 -9
  167. data/fastlane/lib/fastlane/supported_platforms.rb +1 -1
  168. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +10 -6
  169. data/fastlane/lib/fastlane/swift_lane_manager.rb +1 -1
  170. data/fastlane/lib/fastlane/version.rb +1 -1
  171. data/fastlane_core/README.md +0 -26
  172. data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +2 -2
  173. data/fastlane_core/lib/fastlane_core/build_watcher.rb +1 -1
  174. data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -2
  175. data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -3
  176. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +4 -4
  177. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +4 -4
  178. data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +4 -4
  179. data/fastlane_core/lib/fastlane_core/core_ext/cfpropertylist.rb +3 -3
  180. data/fastlane_core/lib/fastlane_core/device_manager.rb +2 -4
  181. data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +1 -1
  182. data/fastlane_core/lib/fastlane_core/globals.rb +3 -3
  183. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  184. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -1
  185. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +2 -2
  186. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +2 -2
  187. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +1 -1
  188. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +1 -1
  189. data/fastlane_core/lib/fastlane_core/print_table.rb +5 -5
  190. data/fastlane_core/lib/fastlane_core/project.rb +7 -7
  191. data/fastlane_core/lib/fastlane_core/swag.rb +9 -9
  192. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +49 -49
  193. data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +18 -18
  194. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +1 -1
  195. data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +7 -7
  196. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +11 -11
  197. data/frameit/lib/frameit/commands_generator.rb +2 -2
  198. data/frameit/lib/frameit/config_parser.rb +11 -11
  199. data/frameit/lib/frameit/dependency_checker.rb +7 -7
  200. data/frameit/lib/frameit/editor.rb +41 -41
  201. data/frameit/lib/frameit/frame_downloader.rb +12 -12
  202. data/frameit/lib/frameit/mac_editor.rb +2 -2
  203. data/frameit/lib/frameit/options.rb +1 -1
  204. data/frameit/lib/frameit/runner.rb +7 -7
  205. data/frameit/lib/frameit/screenshot.rb +5 -5
  206. data/frameit/lib/frameit/strings_parser.rb +6 -6
  207. data/frameit/lib/frameit/template_finder.rb +3 -3
  208. data/gym/lib/gym/commands_generator.rb +4 -4
  209. data/gym/lib/gym/detect_values.rb +1 -1
  210. data/gym/lib/gym/error_handler.rb +84 -84
  211. data/gym/lib/gym/generators/build_command_generator.rb +1 -1
  212. data/gym/lib/gym/runner.rb +24 -24
  213. data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +2 -2
  214. data/match/lib/assets/READMETemplate.md +3 -3
  215. data/match/lib/match/commands_generator.rb +3 -3
  216. data/match/lib/match/encrypt.rb +10 -10
  217. data/match/lib/match/git_helper.rb +5 -5
  218. data/match/lib/match/nuke.rb +29 -29
  219. data/match/lib/match/runner.rb +13 -13
  220. data/match/lib/match/setup.rb +7 -7
  221. data/match/lib/match/table_printer.rb +6 -6
  222. data/match/lib/match/utils.rb +2 -2
  223. data/pem/lib/pem/commands_generator.rb +1 -1
  224. data/pem/lib/pem/manager.rb +9 -9
  225. data/pem/lib/pem/module.rb +1 -1
  226. data/pilot/lib/pilot/build_manager.rb +8 -8
  227. data/pilot/lib/pilot/commands_generator.rb +1 -1
  228. data/pilot/lib/pilot/manager.rb +1 -1
  229. data/pilot/lib/pilot/options.rb +4 -4
  230. data/pilot/lib/pilot/tester_manager.rb +10 -10
  231. data/precheck/lib/precheck/commands_generator.rb +4 -4
  232. data/precheck/lib/precheck/rule.rb +2 -2
  233. data/precheck/lib/precheck/rule_processor.rb +7 -7
  234. data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +2 -2
  235. data/precheck/lib/precheck/rules/curse_words_rule.rb +3 -3
  236. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +3 -3
  237. data/precheck/lib/precheck/runner.rb +7 -7
  238. data/produce/lib/produce/commands_generator.rb +48 -48
  239. data/produce/lib/produce/developer_center.rb +4 -4
  240. data/produce/lib/produce/group.rb +2 -2
  241. data/produce/lib/produce/itunes_connect.rb +4 -4
  242. data/produce/lib/produce/options.rb +3 -3
  243. data/produce/lib/produce/service.rb +1 -1
  244. data/scan/lib/scan/commands_generator.rb +2 -2
  245. data/scan/lib/scan/error_handler.rb +12 -12
  246. data/scan/lib/scan/runner.rb +3 -3
  247. data/scan/lib/scan/slack_poster.rb +2 -2
  248. data/scan/lib/scan/test_command_generator.rb +1 -1
  249. data/screengrab/lib/screengrab/commands_generator.rb +1 -1
  250. data/screengrab/lib/screengrab/dependency_checker.rb +9 -9
  251. data/screengrab/lib/screengrab/options.rb +3 -3
  252. data/screengrab/lib/screengrab/reports_generator.rb +2 -2
  253. data/screengrab/lib/screengrab/runner.rb +32 -32
  254. data/sigh/lib/sigh/commands_generator.rb +18 -18
  255. data/sigh/lib/sigh/download_all.rb +4 -4
  256. data/sigh/lib/sigh/local_manage.rb +27 -27
  257. data/sigh/lib/sigh/manager.rb +1 -1
  258. data/sigh/lib/sigh/repair.rb +6 -6
  259. data/sigh/lib/sigh/resign.rb +7 -7
  260. data/sigh/lib/sigh/runner.rb +26 -26
  261. data/snapshot/lib/snapshot/collector.rb +7 -7
  262. data/snapshot/lib/snapshot/commands_generator.rb +7 -7
  263. data/snapshot/lib/snapshot/dependency_checker.rb +34 -19
  264. data/snapshot/lib/snapshot/detect_values.rb +2 -0
  265. data/snapshot/lib/snapshot/error_handler.rb +1 -1
  266. data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +1 -1
  267. data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +1 -1
  268. data/snapshot/lib/snapshot/reports_generator.rb +2 -2
  269. data/snapshot/lib/snapshot/reset_simulators.rb +2 -2
  270. data/snapshot/lib/snapshot/runner.rb +14 -14
  271. data/snapshot/lib/snapshot/screenshot_flatten.rb +1 -1
  272. data/snapshot/lib/snapshot/screenshot_rotate.rb +6 -6
  273. data/snapshot/lib/snapshot/setup.rb +16 -16
  274. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
  275. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +7 -7
  276. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +4 -4
  277. data/snapshot/lib/snapshot/update.rb +8 -8
  278. data/spaceship/lib/spaceship/base.rb +3 -3
  279. data/spaceship/lib/spaceship/client.rb +17 -17
  280. data/spaceship/lib/spaceship/commands_generator.rb +1 -1
  281. data/spaceship/lib/spaceship/du/du_client.rb +6 -3
  282. data/spaceship/lib/spaceship/globals.rb +1 -1
  283. data/spaceship/lib/spaceship/playground.rb +18 -18
  284. data/spaceship/lib/spaceship/portal/certificate.rb +5 -5
  285. data/spaceship/lib/spaceship/portal/device.rb +2 -2
  286. data/spaceship/lib/spaceship/portal/portal_client.rb +7 -7
  287. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +7 -9
  288. data/spaceship/lib/spaceship/portal/ui/select_team.rb +13 -13
  289. data/spaceship/lib/spaceship/spaceauth_runner.rb +16 -16
  290. data/spaceship/lib/spaceship/test_flight/client.rb +9 -9
  291. data/spaceship/lib/spaceship/tunes/app_details.rb +1 -1
  292. data/spaceship/lib/spaceship/tunes/app_version.rb +7 -7
  293. data/spaceship/lib/spaceship/tunes/app_version_common.rb +1 -1
  294. data/spaceship/lib/spaceship/tunes/application.rb +1 -1
  295. data/spaceship/lib/spaceship/tunes/device_type.rb +2 -2
  296. data/spaceship/lib/spaceship/tunes/iap_detail.rb +1 -1
  297. data/spaceship/lib/spaceship/tunes/tunes_client.rb +54 -54
  298. data/spaceship/lib/spaceship/two_step_client.rb +19 -19
  299. data/spaceship/lib/spaceship/ui.rb +1 -1
  300. data/supply/lib/supply/client.rb +1 -1
  301. data/supply/lib/supply/commands_generator.rb +1 -1
  302. data/supply/lib/supply/options.rb +14 -14
  303. data/supply/lib/supply/uploader.rb +3 -3
  304. metadata +31 -25
  305. data/fastlane/lib/.DS_Store +0 -0
  306. data/fastlane/lib/assets/.DS_Store +0 -0
  307. data/fastlane/lib/fastlane/.DS_Store +0 -0
  308. data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
  309. data/fastlane/lib/fastlane/actions/docs/.DS_Store +0 -0
  310. data/fastlane/lib/fastlane/setup/.DS_Store +0 -0
  311. data/fastlane_core/lib/.DS_Store +0 -0
  312. data/fastlane_core/lib/fastlane_core/.DS_Store +0 -0
@@ -59,7 +59,7 @@ module Frameit
59
59
  output_path = screenshot.path.gsub('.png', '_framed.png').gsub('.PNG', '_framed.png')
60
60
  image.format("png")
61
61
  image.write(output_path)
62
- UI.success "Added frame: '#{File.expand_path(output_path)}'"
62
+ UI.success("Added frame: '#{File.expand_path(output_path)}'")
63
63
  end
64
64
 
65
65
  # puts the screenshot into the frame
@@ -72,8 +72,8 @@ module Frameit
72
72
  @image.rotate(-rotation)
73
73
 
74
74
  @image = frame.composite(image, "png") do |c|
75
- c.compose "DstOver"
76
- c.geometry offset['offset']
75
+ c.compose("DstOver")
76
+ c.geometry(offset['offset'])
77
77
  end
78
78
 
79
79
  # Revert the rotation from above
@@ -89,7 +89,7 @@ module Frameit
89
89
  if @offset_information and (@offset_information['offset'] or @offset_information['offset'])
90
90
  return @offset_information
91
91
  end
92
- UI.user_error! "Could not find offset_information for '#{screenshot}'"
92
+ UI.user_error!("Could not find offset_information for '#{screenshot}'")
93
93
  end
94
94
 
95
95
  #########################################################################################
@@ -139,11 +139,11 @@ module Frameit
139
139
  image_width = [frame_width, @image.width].min
140
140
  image_height = [frame_height, image_width / image_aspect_ratio].min
141
141
  image_width = image_height * image_aspect_ratio
142
- @image.resize "#{image_width}x#{image_height}" if image_width < @image.width || image_height < @image.height
142
+ @image.resize("#{image_width}x#{image_height}") if image_width < @image.width || image_height < @image.height
143
143
  else
144
144
  # the screenshot size is only limited by width.
145
145
  # If higher than the frame, the screenshot is cut off at the bottom
146
- @image.resize "#{frame_width}x" if frame_width < @image.width
146
+ @image.resize("#{frame_width}x") if frame_width < @image.width
147
147
  end
148
148
  end
149
149
 
@@ -184,8 +184,8 @@ module Frameit
184
184
  background = MiniMagick::Image.open(fetch_config['background'])
185
185
 
186
186
  if background.height != screenshot.size[1]
187
- background.resize "#{screenshot.size[0]}x#{screenshot.size[1]}^" # `^` says it should fill area
188
- background.merge! ["-gravity", "center", "-crop", "#{screenshot.size[0]}x#{screenshot.size[1]}+0+0"] # crop from center
187
+ background.resize("#{screenshot.size[0]}x#{screenshot.size[1]}^") # `^` says it should fill area
188
+ background.merge!(["-gravity", "center", "-crop", "#{screenshot.size[0]}x#{screenshot.size[1]}+0+0"]) # crop from center
189
189
  end
190
190
  background
191
191
  end
@@ -195,13 +195,13 @@ module Frameit
195
195
  title_below_image = fetch_config['title_below_image']
196
196
 
197
197
  @image = background.composite(image, "png") do |c|
198
- c.compose "Over"
198
+ c.compose("Over")
199
199
  if title_below_image
200
200
  show_complete_frame = fetch_config['show_complete_frame']
201
- c.geometry "+#{left_space}+#{background.height - image.height - space_to_device}" unless show_complete_frame
202
- c.geometry "+#{left_space}+#{vertical_frame_padding}" if show_complete_frame
201
+ c.geometry("+#{left_space}+#{background.height - image.height - space_to_device}") unless show_complete_frame
202
+ c.geometry("+#{left_space}+#{vertical_frame_padding}") if show_complete_frame
203
203
  else
204
- c.geometry "+#{left_space}+#{space_to_device}"
204
+ c.geometry("+#{left_space}+#{space_to_device}")
205
205
  end
206
206
  end
207
207
 
@@ -214,7 +214,7 @@ module Frameit
214
214
 
215
215
  multiplicator = (screenshot_width.to_f / offset['width'].to_f) # by how much do we have to change this?
216
216
  new_frame_width = multiplicator * frame.width # the new width for the frame
217
- frame.resize "#{new_frame_width.round}x" # resize it to the calculated width
217
+ frame.resize("#{new_frame_width.round}x") # resize it to the calculated width
218
218
  modify_offset(multiplicator) # modify the offset to properly insert the screenshot into the frame later
219
219
  end
220
220
 
@@ -224,7 +224,7 @@ module Frameit
224
224
  if ratio > 1.0
225
225
  # too large - resizing now
226
226
  smaller = (1.0 / ratio)
227
- text.resize "#{(smaller * text.width).round}x"
227
+ text.resize("#{(smaller * text.width).round}x")
228
228
  end
229
229
  end
230
230
 
@@ -248,16 +248,16 @@ module Frameit
248
248
  title_below_image = fetch_config['title_below_image']
249
249
  # keyword
250
250
  background = background.composite(keyword, "png") do |c|
251
- c.compose "Over"
252
- c.geometry "+#{keyword_left_space}+#{keyword_top_space}" unless title_below_image
253
- c.geometry "+#{keyword_left_space}+#{background.height - space_to_device + keyword_top_space}" if title_below_image
251
+ c.compose("Over")
252
+ c.geometry("+#{keyword_left_space}+#{keyword_top_space}") unless title_below_image
253
+ c.geometry("+#{keyword_left_space}+#{background.height - space_to_device + keyword_top_space}") if title_below_image
254
254
  end
255
255
  # Then, put the title on top of the screenshot next to the keyword
256
256
  # Then, put the title above/below of the screenshot next to the keyword
257
257
  background = background.composite(title, "png") do |c|
258
- c.compose "Over"
259
- c.geometry "+#{title_left_space}+#{title_top_space}" unless title_below_image
260
- c.geometry "+#{title_left_space}+#{background.height - space_to_device + title_top_space}" if title_below_image
258
+ c.compose("Over")
259
+ c.geometry("+#{title_left_space}+#{title_top_space}") unless title_below_image
260
+ c.geometry("+#{title_left_space}+#{background.height - space_to_device + title_top_space}") if title_below_image
261
261
  end
262
262
  background
263
263
  end
@@ -286,8 +286,8 @@ module Frameit
286
286
 
287
287
  UI.verbose("Text for image #{self.screenshot.path} is quite long, reducing font size by #{(ratio - 1.0).round(2)}")
288
288
 
289
- title.resize "#{(smaller * title.width).round}x"
290
- keyword.resize "#{(smaller * keyword.width).round}x" if keyword
289
+ title.resize("#{(smaller * title.width).round}x")
290
+ keyword.resize("#{(smaller * keyword.width).round}x") if keyword
291
291
  sum_width *= smaller
292
292
  end
293
293
 
@@ -301,9 +301,9 @@ module Frameit
301
301
  # First, put the keyword on top of the screenshot, if we have one
302
302
  if keyword
303
303
  background = background.composite(keyword, "png") do |c|
304
- c.compose "Over"
305
- c.geometry "+#{left_space}+#{top_space}" unless title_below_image
306
- c.geometry "+#{left_space}+#{background.height - space_to_device + top_space}" if title_below_image
304
+ c.compose("Over")
305
+ c.geometry("+#{left_space}+#{top_space}") unless title_below_image
306
+ c.geometry("+#{left_space}+#{background.height - space_to_device + top_space}") if title_below_image
307
307
  end
308
308
 
309
309
  left_space += keyword.width + (keyword_padding * smaller)
@@ -311,9 +311,9 @@ module Frameit
311
311
 
312
312
  # Then, put the title on top of the screenshot next to the keyword
313
313
  background = background.composite(title, "png") do |c|
314
- c.compose "Over"
315
- c.geometry "+#{left_space}+#{top_space}" unless title_below_image
316
- c.geometry "+#{left_space}+#{background.height - space_to_device + top_space}" if title_below_image
314
+ c.compose("Over")
315
+ c.geometry("+#{left_space}+#{top_space}") unless title_below_image
316
+ c.geometry("+#{left_space}+#{background.height - space_to_device + top_space}") if title_below_image
317
317
  end
318
318
  background
319
319
  end
@@ -342,7 +342,7 @@ module Frameit
342
342
  image_height = max_height # gets trimmed afterwards anyway, and on the iPad the `y` would get cut
343
343
  title_image.combine_options do |i|
344
344
  # Oversize as the text might be larger than the actual image. We're trimming afterwards anyway
345
- i.resize "#{max_width * 5.0}x#{image_height}!" # `!` says it should ignore the ratio
345
+ i.resize("#{max_width * 5.0}x#{image_height}!") # `!` says it should ignore the ratio
346
346
  end
347
347
 
348
348
  current_font = font(key)
@@ -350,19 +350,19 @@ module Frameit
350
350
  UI.verbose("Using #{current_font} as font the #{key} of #{screenshot.path}") if current_font
351
351
  UI.verbose("Adding text '#{text}'")
352
352
 
353
- text.gsub! '\n', "\n"
353
+ text.gsub!('\n', "\n")
354
354
  text.gsub!(/(?<!\\)(')/) { |s| "\\#{s}" } # escape unescaped apostrophes with a backslash
355
355
 
356
356
  interline_spacing = fetch_config['interline_spacing']
357
357
 
358
358
  # Add the actual title
359
359
  title_image.combine_options do |i|
360
- i.font current_font if current_font
361
- i.gravity "Center"
362
- i.pointsize actual_font_size
363
- i.draw "text 0,0 '#{text}'"
364
- i.interline_spacing interline_spacing if interline_spacing
365
- i.fill fetch_config[key.to_s]['color']
360
+ i.font(current_font) if current_font
361
+ i.gravity("Center")
362
+ i.pointsize(actual_font_size)
363
+ i.draw("text 0,0 '#{text}'")
364
+ i.interline_spacing(interline_spacing) if interline_spacing
365
+ i.fill(fetch_config[key.to_s]['color'])
366
366
  end
367
367
 
368
368
  results[key] = title_image
@@ -435,13 +435,13 @@ module Frameit
435
435
 
436
436
  # Fetches the title + keyword for this particular screenshot
437
437
  def fetch_text(type)
438
- UI.user_error! "Valid parameters :keyword, :title" unless [:keyword, :title].include? type
438
+ UI.user_error!("Valid parameters :keyword, :title") unless [:keyword, :title].include?(type)
439
439
 
440
440
  # Try to get it from a keyword.strings or title.strings file
441
441
  strings_path = File.join(File.expand_path("..", screenshot.path), "#{type}.strings")
442
- if File.exist? strings_path
442
+ if File.exist?(strings_path)
443
443
  parsed = StringsParser.parse(strings_path)
444
- result = parsed.find { |k, v| screenshot.path.upcase.include? k.upcase }
444
+ result = parsed.find { |k, v| screenshot.path.upcase.include?(k.upcase) }
445
445
  return result.last if result
446
446
  end
447
447
 
@@ -451,7 +451,7 @@ module Frameit
451
451
 
452
452
  if type == :title and !result
453
453
  # title is mandatory
454
- UI.user_error! "Could not get title for screenshot #{screenshot.path}. Please provide one in your Framefile.json"
454
+ UI.user_error!("Could not get title for screenshot #{screenshot.path}. Please provide one in your Framefile.json")
455
455
  end
456
456
 
457
457
  return result
@@ -467,7 +467,7 @@ module Frameit
467
467
  fonts.each do |font|
468
468
  if font['supported']
469
469
  font['supported'].each do |language|
470
- if screenshot.path.include? language
470
+ if screenshot.path.include?(language)
471
471
  return font["font"]
472
472
  end
473
473
  end
@@ -52,18 +52,18 @@ module Frameit
52
52
  end
53
53
 
54
54
  def print_disclaimer
55
- UI.header "Device frames disclaimer"
56
- UI.important "All used device frames are available via Facebook Design: http://facebook.design/devices"
57
- UI.message "----------------------------------------"
58
- UI.message "While Facebook has redrawn and shares these assets for the benefit"
59
- UI.message "of the design community, Facebook does not own any of the underlying"
60
- UI.message "product or user interface designs."
61
- UI.message "By accessing these assets, you agree to obtain all necessary permissions"
62
- UI.message "from the underlying rights holders and/or adhere to any applicable brand"
63
- UI.message "use guidelines before using them."
64
- UI.message "Facebook disclaims all express or implied warranties with respect to these assets, including"
65
- UI.message "non-infringement of intellectual property rights."
66
- UI.message "----------------------------------------"
55
+ UI.header("Device frames disclaimer")
56
+ UI.important("All used device frames are available via Facebook Design: http://facebook.design/devices")
57
+ UI.message("----------------------------------------")
58
+ UI.message("While Facebook has redrawn and shares these assets for the benefit")
59
+ UI.message("of the design community, Facebook does not own any of the underlying")
60
+ UI.message("product or user interface designs.")
61
+ UI.message("By accessing these assets, you agree to obtain all necessary permissions")
62
+ UI.message("from the underlying rights holders and/or adhere to any applicable brand")
63
+ UI.message("use guidelines before using them.")
64
+ UI.message("Facebook disclaims all express or implied warranties with respect to these assets, including")
65
+ UI.message("non-infringement of intellectual property rights.")
66
+ UI.message("----------------------------------------")
67
67
  end
68
68
 
69
69
  private
@@ -13,8 +13,8 @@ module Frameit
13
13
  self.top_space_above_device = offset['titleHeight'] # needed for centering the title
14
14
 
15
15
  @image = background.composite(image, "png") do |c|
16
- c.compose "Over"
17
- c.geometry offset['offset']
16
+ c.compose("Over")
17
+ c.geometry(offset['offset'])
18
18
  end
19
19
 
20
20
  return image
@@ -30,7 +30,7 @@ module Frameit
30
30
  optional: true,
31
31
  verify_block: proc do |value|
32
32
  available = ['iPhone_6_Plus', 'iPhone_5s', 'iPhone_4', 'iPad_mini', 'Mac']
33
- unless available.include? value
33
+ unless available.include?(value)
34
34
  UI.user_error!("Invalid device type '#{value}'. Available values: #{available}")
35
35
  end
36
36
  end),
@@ -26,11 +26,11 @@ module Frameit
26
26
 
27
27
  if screenshots.count > 0
28
28
  screenshots.each do |full_path|
29
- next if full_path.include? "_framed.png"
30
- next if full_path.include? ".itmsp/" # a package file, we don't want to modify that
31
- next if full_path.include? "device_frames/" # these are the device frames the user is using
29
+ next if full_path.include?("_framed.png")
30
+ next if full_path.include?(".itmsp/") # a package file, we don't want to modify that
31
+ next if full_path.include?("device_frames/") # these are the device frames the user is using
32
32
  device = full_path.rpartition('/').last.partition('-').first # extract device name
33
- if device.downcase.include? "watch"
33
+ if device.downcase.include?("watch")
34
34
  UI.error("Apple Watch screenshots are not framed: '#{full_path}'")
35
35
  next # we don't care about watches right now
36
36
  end
@@ -41,12 +41,12 @@ module Frameit
41
41
  screenshot = Screenshot.new(full_path, color)
42
42
  screenshot.frame!
43
43
  rescue => ex
44
- UI.error ex.to_s
45
- UI.error "Backtrace:\n\t#{ex.backtrace.join("\n\t")}" if FastlaneCore::Globals.verbose?
44
+ UI.error(ex.to_s)
45
+ UI.error("Backtrace:\n\t#{ex.backtrace.join("\n\t")}") if FastlaneCore::Globals.verbose?
46
46
  end
47
47
  end
48
48
  else
49
- UI.error "Could not find screenshots in current directory: '#{File.expand_path(path)}'"
49
+ UI.error("Could not find screenshots in current directory: '#{File.expand_path(path)}'")
50
50
  end
51
51
  end
52
52
  end
@@ -16,7 +16,7 @@ module Frameit
16
16
  # path: Path to screenshot
17
17
  # color: Color to use for the frame
18
18
  def initialize(path, color)
19
- UI.user_error!("Couldn't find file at path '#{path}'") unless File.exist? path
19
+ UI.user_error!("Couldn't find file at path '#{path}'") unless File.exist?(path)
20
20
  @color = color
21
21
  @path = path
22
22
  @size = FastImage.size(path)
@@ -26,7 +26,7 @@ module Frameit
26
26
 
27
27
  # Device name for a given screen size. Used to use the correct template
28
28
  def device_name
29
- # rubocop:disable Lint/MissingRequireStatement
29
+ # rubocop:disable Require/MissingRequireStatement
30
30
  sizes = Deliver::AppScreenshot::ScreenSize
31
31
  case @screen_size
32
32
  when sizes::IOS_58
@@ -46,9 +46,9 @@ module Frameit
46
46
  when sizes::MAC
47
47
  return 'MacBook'
48
48
  else
49
- UI.error "Unknown device type for size #{@screen_size} for path '#{path}'"
49
+ UI.error("Unknown device type for size #{@screen_size} for path '#{path}'")
50
50
  end
51
- # rubocop:enable Lint/MissingRequireStatement
51
+ # rubocop:enable Require/MissingRequireStatement
52
52
  end
53
53
 
54
54
  def color
@@ -89,7 +89,7 @@ module Frameit
89
89
  valid = [:landscape_left, :landscape_right, :portrait, nil]
90
90
  UI.user_error("orientation_block must return #{valid[0..-2].join(', ')} or nil") unless valid.include?(orientation)
91
91
 
92
- puts "Forced orientation: #{orientation}"
92
+ puts("Forced orientation: #{orientation}")
93
93
  end
94
94
 
95
95
  return orientation unless orientation.nil?
@@ -4,8 +4,8 @@ module Frameit
4
4
  # This class will parse the .string files
5
5
  class StringsParser
6
6
  def self.parse(path)
7
- UI.user_error! "Couldn't find strings file at path '#{path}'" unless File.exist? path
8
- UI.user_error! "Must be .strings file, only got '#{path}'" unless path.end_with? ".strings"
7
+ UI.user_error!("Couldn't find strings file at path '#{path}'") unless File.exist?(path)
8
+ UI.user_error!("Must be .strings file, only got '#{path}'") unless path.end_with?(".strings")
9
9
 
10
10
  result = {}
11
11
 
@@ -15,20 +15,20 @@ module Frameit
15
15
  content.split("\n").each_with_index do |line, index|
16
16
  begin
17
17
  # We don't care about comments and empty lines
18
- if line.start_with? '"'
18
+ if line.start_with?('"')
19
19
  key = line.match(/"(.*)" \= /)[1]
20
20
  value = line.match(/ \= "(.*)"/)[1]
21
21
 
22
22
  result[key] = value
23
23
  end
24
24
  rescue => ex
25
- UI.error "Error parsing #{path} line #{index + 1}: '#{line}'"
26
- UI.verbose "#{ex.message}\n#{ex.backtrace.join('\n')}"
25
+ UI.error("Error parsing #{path} line #{index + 1}: '#{line}'")
26
+ UI.verbose("#{ex.message}\n#{ex.backtrace.join('\n')}")
27
27
  end
28
28
  end
29
29
 
30
30
  if result.empty?
31
- UI.error "Empty parsing result for #{path}. Please make sure the file is valid and UTF16 Big-endian encoded"
31
+ UI.error("Empty parsing result for #{path}. Please make sure the file is valid and UTF16 Big-endian encoded")
32
32
  end
33
33
 
34
34
  result
@@ -15,12 +15,12 @@ module Frameit
15
15
 
16
16
  templates = Dir["#{FrameDownloader.templates_path}/#{filename}.{png,jpg}"] # ~/.frameit folder
17
17
 
18
- UI.verbose "Looking for #{filename} and found #{templates.count} template(s)"
18
+ UI.verbose("Looking for #{filename} and found #{templates.count} template(s)")
19
19
 
20
20
  if templates.count == 0
21
21
  if screenshot.screen_size == Deliver::AppScreenshot::ScreenSize::IOS_35
22
- UI.important "Unfortunately 3.5\" device frames were discontinued. Skipping screen '#{screenshot.path}'"
23
- UI.error "Looked for: '#{filename}.png'"
22
+ UI.important("Unfortunately 3.5\" device frames were discontinued. Skipping screen '#{screenshot.path}'")
23
+ UI.error("Looked for: '#{filename}.png'")
24
24
  elsif screenshot.color == Frameit::Color::ROSE_GOLD || screenshot.color == Frameit::Color::GOLD
25
25
  # Unfortunately not every device type is available in rose gold or gold
26
26
  # This is why we can't have nice things #yatusabes
@@ -51,12 +51,12 @@ module Gym
51
51
  c.action do |args, options|
52
52
  containing = FastlaneCore::Helper.fastlane_enabled_folder_path
53
53
  path = File.join(containing, Gym.gymfile_name)
54
- UI.user_error! "Gymfile already exists" if File.exist?(path)
54
+ UI.user_error!("Gymfile already exists") if File.exist?(path)
55
55
 
56
56
  is_swift_fastfile = args.include?("swift")
57
57
  if is_swift_fastfile
58
58
  path = File.join(containing, Gym.gymfile_name + ".swift")
59
- UI.user_error! "Gymfile.swift already exists" if File.exist?(path)
59
+ UI.user_error!("Gymfile.swift already exists") if File.exist?(path)
60
60
  end
61
61
 
62
62
  if is_swift_fastfile
@@ -66,11 +66,11 @@ module Gym
66
66
  end
67
67
 
68
68
  File.write(path, template)
69
- UI.success "Successfully created '#{path}'. Open the file using a code editor."
69
+ UI.success("Successfully created '#{path}'. Open the file using a code editor.")
70
70
  end
71
71
  end
72
72
 
73
- default_command :build
73
+ default_command(:build)
74
74
 
75
75
  run!
76
76
  end
@@ -126,7 +126,7 @@ module Gym
126
126
  if config[:configuration]
127
127
  # Verify the configuration is available
128
128
  unless configurations.include?(config[:configuration])
129
- UI.error "Couldn't find specified configuration '#{config[:configuration]}'."
129
+ UI.error("Couldn't find specified configuration '#{config[:configuration]}'.")
130
130
  config[:configuration] = nil
131
131
  end
132
132
  end
@@ -13,46 +13,46 @@ module Gym
13
13
  # The order of the handling below is important
14
14
  case output
15
15
  when /Your build settings specify a provisioning profile with the UUID/
16
- print "Invalid code signing settings"
17
- print "Your project defines a provisioning profile which doesn't exist on your local machine"
18
- print "You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile"
19
- print "Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/"
16
+ print("Invalid code signing settings")
17
+ print("Your project defines a provisioning profile which doesn't exist on your local machine")
18
+ print("You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile")
19
+ print("Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
20
20
  when /Provisioning profile does not match bundle identifier/
21
- print "Invalid code signing settings"
22
- print "Your project defines a provisioning profile that doesn't match the bundle identifier of your app"
23
- print "Make sure you use the correct provisioning profile for this app"
24
- print "Take a look at the ouptput above for more information"
25
- print "You can follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/"
21
+ print("Invalid code signing settings")
22
+ print("Your project defines a provisioning profile that doesn't match the bundle identifier of your app")
23
+ print("Make sure you use the correct provisioning profile for this app")
24
+ print("Take a look at the ouptput above for more information")
25
+ print("You can follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
26
26
  when /provisioning profiles matching the bundle identifier .(.*)./ # the . around the (.*) are for the strange "
27
- print "You don't have the provisioning profile for '#{$1}' installed on the local machine"
28
- print "Make sure you have the profile on this computer and it's properly installed"
29
- print "You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile"
30
- print "Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/"
27
+ print("You don't have the provisioning profile for '#{$1}' installed on the local machine")
28
+ print("Make sure you have the profile on this computer and it's properly installed")
29
+ print("You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile")
30
+ print("Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
31
31
  when /matching the bundle identifier .(.*). were found/ # the . around the (.*) are for the strange "
32
- print "You don't have a provisioning profile for the bundle identifier '#{$1}' installed on the local machine"
33
- print "Make sure you have the profile on this computer and it's properly installed"
34
- print "You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile"
35
- print "Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/"
32
+ print("You don't have a provisioning profile for the bundle identifier '#{$1}' installed on the local machine")
33
+ print("Make sure you have the profile on this computer and it's properly installed")
34
+ print("You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile")
35
+ print("Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
36
36
 
37
37
  # Insert more code signing specific errors here
38
38
  when /code signing is required/
39
- print "Your project settings define invalid code signing settings"
40
- print "To generate an ipa file you need to enable code signing for your project"
41
- print "Additionally make sure you have a code signing identity set"
42
- print "Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/"
39
+ print("Your project settings define invalid code signing settings")
40
+ print("To generate an ipa file you need to enable code signing for your project")
41
+ print("Additionally make sure you have a code signing identity set")
42
+ print("Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
43
43
  when /US\-ASCII/
44
- print "Your shell environment is not correctly configured"
45
- print "Instead of UTF-8 your shell uses US-ASCII"
46
- print "Please add the following to your '~/.bashrc':"
47
- print ""
48
- print " export LANG=en_US.UTF-8"
49
- print " export LANGUAGE=en_US.UTF-8"
50
- print " export LC_ALL=en_US.UTF-8"
51
- print ""
52
- print "You'll have to restart your shell session after updating the file."
53
- print "If you are using zshell or another shell, make sure to edit the correct bash file."
54
- print "For more information visit this stackoverflow answer:"
55
- print "https://stackoverflow.com/a/17031697/445598"
44
+ print("Your shell environment is not correctly configured")
45
+ print("Instead of UTF-8 your shell uses US-ASCII")
46
+ print("Please add the following to your '~/.bashrc':")
47
+ print("")
48
+ print(" export LANG=en_US.UTF-8")
49
+ print(" export LANGUAGE=en_US.UTF-8")
50
+ print(" export LC_ALL=en_US.UTF-8")
51
+ print("")
52
+ print("You'll have to restart your shell session after updating the file.")
53
+ print("If you are using zshell or another shell, make sure to edit the correct bash file.")
54
+ print("For more information visit this stackoverflow answer:")
55
+ print("https://stackoverflow.com/a/17031697/445598")
56
56
  end
57
57
  print_xcode_path_instructions
58
58
  print_xcode_version
@@ -63,11 +63,11 @@ module Gym
63
63
  # This error is rather common and should be below the other (a little noisy) output
64
64
  case output
65
65
  when /Code signing is required for product/
66
- print "Seems like Xcode is not happy with the code signing setup"
67
- print "Please make sure to check out the raw `xcodebuild` output"
66
+ print("Seems like Xcode is not happy with the code signing setup")
67
+ print("Please make sure to check out the raw `xcodebuild` output")
68
68
  UI.important(Gym::BuildCommandGenerator.xcodebuild_log_path)
69
- print "The very bottom of the file will tell you the raw Xcode error message"
70
- print "indicating on why the code signing step failed"
69
+ print("The very bottom of the file will tell you the raw Xcode error message")
70
+ print("indicating on why the code signing step failed")
71
71
  end
72
72
 
73
73
  UI.build_failure!("Error building the application - see the log above", error_info: output)
@@ -78,31 +78,31 @@ module Gym
78
78
  def handle_package_error(output)
79
79
  case output
80
80
  when /single\-bundle/
81
- print "Your project does not contain a single–bundle application or contains multiple products"
82
- print "Please read the documentation provided by Apple: https://developer.apple.com/library/ios/technotes/tn2215/_index.html"
81
+ print("Your project does not contain a single–bundle application or contains multiple products")
82
+ print("Please read the documentation provided by Apple: https://developer.apple.com/library/ios/technotes/tn2215/_index.html")
83
83
  when /no signing identity matches '(.*)'/
84
- print "Could not find code signing identity '#{$1}'"
85
- print "Make sure the name of the code signing identity is correct"
86
- print "and it matches a locally installed code signing identity"
87
- print "You can pass the name of the code signing identity using the"
88
- print "`codesigning_identity` option"
84
+ print("Could not find code signing identity '#{$1}'")
85
+ print("Make sure the name of the code signing identity is correct")
86
+ print("and it matches a locally installed code signing identity")
87
+ print("You can pass the name of the code signing identity using the")
88
+ print("`codesigning_identity` option")
89
89
  when /no provisioning profile matches '(.*)'/
90
- print "Could not find provisioning profile with the name '#{$1}'"
91
- print "Make sure the name of the provisioning profile is correct"
92
- print "and it matches a locally installed profile"
90
+ print("Could not find provisioning profile with the name '#{$1}'")
91
+ print("Make sure the name of the provisioning profile is correct")
92
+ print("and it matches a locally installed profile")
93
93
  when /mismatch between specified provisioning profile and signing identity/
94
- print "Mismatch between provisioning profile and code signing identity"
95
- print "This means, the specified provisioning profile was not created using"
96
- print "the specified certificate."
97
- print "Run cert and sigh before gym to make sure to have all signing resources ready"
94
+ print("Mismatch between provisioning profile and code signing identity")
95
+ print("This means, the specified provisioning profile was not created using")
96
+ print("the specified certificate.")
97
+ print("Run cert and sigh before gym to make sure to have all signing resources ready")
98
98
  when /requires a provisioning profile/
99
- print "No provisioning profile provided"
100
- print "Make sure to pass a valid provisioning for each required target"
101
- print "Check out the docs on how to fix this: https://docs.fastlane.tools/actions/gym/#export-options"
99
+ print("No provisioning profile provided")
100
+ print("Make sure to pass a valid provisioning for each required target")
101
+ print("Check out the docs on how to fix this: https://docs.fastlane.tools/actions/gym/#export-options")
102
102
  # insert more specific code signing errors here
103
103
  when /Codesign check fails/
104
- print "A general code signing error occurred. Make sure you passed a valid"
105
- print "provisioning profile and code signing identity."
104
+ print("A general code signing error occurred. Make sure you passed a valid")
105
+ print("provisioning profile and code signing identity.")
106
106
  end
107
107
  print_xcode_version
108
108
  print_full_log_path
@@ -113,17 +113,17 @@ module Gym
113
113
  end
114
114
 
115
115
  def handle_empty_archive
116
- print "The generated archive is invalid, this can have various reasons:"
117
- print "Usually it's caused by the `Skip Install` option in Xcode, set it to `NO`"
118
- print "For more information visit https://developer.apple.com/library/ios/technotes/tn2215/_index.html"
119
- print "Also, make sure to have a valid code signing identity and provisioning profile installed"
120
- print "Follow this guide to setup code signing https://docs.fastlane.tools/codesigning/GettingStarted/"
121
- print "If your intention was only to export an ipa be sure to provide a valid archive at the archive path."
122
- print "This error might also happen if your workspace/project file is not in the root directory of your project."
123
- print "To workaround that issue, you can wrap your calls to gym with"
124
- print "`Dir.chdir('../path/to/dir/containing/proj') do`"
125
- print "For an example you can check out"
126
- print "https://github.com/artsy/emission-nebula/commit/44fe51a7fea8f7d52f0f77d6c3084827fe5dd59e"
116
+ print("The generated archive is invalid, this can have various reasons:")
117
+ print("Usually it's caused by the `Skip Install` option in Xcode, set it to `NO`")
118
+ print("For more information visit https://developer.apple.com/library/ios/technotes/tn2215/_index.html")
119
+ print("Also, make sure to have a valid code signing identity and provisioning profile installed")
120
+ print("Follow this guide to setup code signing https://docs.fastlane.tools/codesigning/GettingStarted/")
121
+ print("If your intention was only to export an ipa be sure to provide a valid archive at the archive path.")
122
+ print("This error might also happen if your workspace/project file is not in the root directory of your project.")
123
+ print("To workaround that issue, you can wrap your calls to gym with")
124
+ print("`Dir.chdir('../path/to/dir/containing/proj') do`")
125
+ print("For an example you can check out")
126
+ print("https://github.com/artsy/emission-nebula/commit/44fe51a7fea8f7d52f0f77d6c3084827fe5dd59e")
127
127
  UI.build_failure!("Archive invalid")
128
128
  end
129
129
 
@@ -131,7 +131,7 @@ module Gym
131
131
 
132
132
  # Just to make things easier
133
133
  def print(text)
134
- UI.error text
134
+ UI.error(text)
135
135
  end
136
136
 
137
137
  def print_full_log_path
@@ -196,25 +196,25 @@ module Gym
196
196
 
197
197
  xcode_installations_in_default_path = Dir[File.join(default_xcode_path, "Xcode*.app")]
198
198
  return unless xcode_installations_in_default_path.count > 1
199
- UI.message ""
200
- UI.important "Maybe the error shown is caused by using the wrong version of Xcode"
201
- UI.important "Found multiple versions of Xcode in '#{default_xcode_path}'"
202
- UI.important "Make sure you selected the right version for your project"
203
- UI.important "This build process was executed using '#{xcode_path}'"
204
- UI.important "If you want to update your Xcode path, either"
205
- UI.message ""
199
+ UI.message("")
200
+ UI.important("Maybe the error shown is caused by using the wrong version of Xcode")
201
+ UI.important("Found multiple versions of Xcode in '#{default_xcode_path}'")
202
+ UI.important("Make sure you selected the right version for your project")
203
+ UI.important("This build process was executed using '#{xcode_path}'")
204
+ UI.important("If you want to update your Xcode path, either")
205
+ UI.message("")
206
206
 
207
- UI.message "- Specify the Xcode version in your Fastfile"
208
- UI.command_output "xcversion(version: \"8.1\") # Selects Xcode 8.1.0"
209
- UI.message ""
207
+ UI.message("- Specify the Xcode version in your Fastfile")
208
+ UI.command_output("xcversion(version: \"8.1\") # Selects Xcode 8.1.0")
209
+ UI.message("")
210
210
 
211
- UI.message "- Specify an absolute path to your Xcode installation in your Fastfile"
212
- UI.command_output "xcode_select \"/Applications/Xcode8.app\""
213
- UI.message ""
211
+ UI.message("- Specify an absolute path to your Xcode installation in your Fastfile")
212
+ UI.command_output("xcode_select \"/Applications/Xcode8.app\"")
213
+ UI.message("")
214
214
 
215
- UI.message "- Manually update the path using"
216
- UI.command_output "sudo xcode-select -s /Applications/Xcode.app"
217
- UI.message ""
215
+ UI.message("- Manually update the path using")
216
+ UI.command_output("sudo xcode-select -s /Applications/Xcode.app")
217
+ UI.message("")
218
218
  end
219
219
 
220
220
  def print_environment_information