fastlane 2.74.1 → 2.75.0.beta.20180109010003

Sign up to get free protection for your applications and to get access to all the features.
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