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
@@ -58,14 +58,14 @@ module Sigh
58
58
  ipa.shellescape # Output path must always be last argument
59
59
  ].join(' ')
60
60
 
61
- puts command.magenta
62
- puts `#{command}`
61
+ puts(command.magenta)
62
+ puts(`#{command}`)
63
63
 
64
64
  if $?.to_i == 0
65
- UI.success "Successfully signed #{ipa}!"
65
+ UI.success("Successfully signed #{ipa}!")
66
66
  true
67
67
  else
68
- UI.error "Something went wrong while code signing #{ipa}"
68
+ UI.error("Something went wrong while code signing #{ipa}")
69
69
  false
70
70
  end
71
71
  end
@@ -84,7 +84,7 @@ module Sigh
84
84
  keychain_path = options.keychain_path || nil
85
85
 
86
86
  if options.provisioning_name
87
- UI.important "The provisioning_name (-n) option is not applicable to resign. You should use provisioning_profile (-p) instead"
87
+ UI.important("The provisioning_name (-n) option is not applicable to resign. You should use provisioning_profile (-p) instead")
88
88
  end
89
89
 
90
90
  return ipa, signing_identity, provisioning_profiles, entitlements, version, display_name, short_version, bundle_version, new_bundle_id, use_app_entitlements, keychain_path
@@ -104,7 +104,7 @@ module Sigh
104
104
 
105
105
  def find_signing_identity(signing_identity)
106
106
  until (signing_identity = sha1_for_signing_identity(signing_identity))
107
- UI.error "Couldn't find signing identity '#{signing_identity}'."
107
+ UI.error("Couldn't find signing identity '#{signing_identity}'.")
108
108
  signing_identity = ask_for_signing_identity
109
109
  end
110
110
 
@@ -160,7 +160,7 @@ module Sigh
160
160
  end
161
161
 
162
162
  def print_available_identities
163
- UI.message "Available identities: \n\t#{installed_identity_descriptions.join("\n\t")}\n"
163
+ UI.message("Available identities: \n\t#{installed_identity_descriptions.join("\n\t")}\n")
164
164
  end
165
165
 
166
166
  def ask_for_signing_identity
@@ -15,27 +15,27 @@ module Sigh
15
15
  hide_keys: [:output_path],
16
16
  title: "Summary for sigh #{Fastlane::VERSION}")
17
17
 
18
- UI.message "Starting login with user '#{Sigh.config[:username]}'"
18
+ UI.message("Starting login with user '#{Sigh.config[:username]}'")
19
19
  Spaceship.login(Sigh.config[:username], nil)
20
20
  Spaceship.select_team
21
- UI.message "Successfully logged in"
21
+ UI.message("Successfully logged in")
22
22
 
23
23
  profiles = [] if Sigh.config[:skip_fetch_profiles]
24
24
  profiles ||= fetch_profiles # download the profile if it's there
25
25
 
26
26
  if profiles.count > 0
27
- UI.success "Found #{profiles.count} matching profile(s)"
27
+ UI.success("Found #{profiles.count} matching profile(s)")
28
28
  profile = profiles.first
29
29
 
30
30
  if Sigh.config[:force]
31
31
  # Recreating the profile ensures it has all of the requested properties (cert, name, etc.)
32
- UI.important "Recreating the profile"
32
+ UI.important("Recreating the profile")
33
33
  profile.delete!
34
34
  profile = create_profile!
35
35
  end
36
36
  else
37
37
  UI.user_error!("No matching provisioning profile found and can not create a new one because you enabled `readonly`") if Sigh.config[:readonly]
38
- UI.important "No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you"
38
+ UI.important("No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you")
39
39
  ensure_app_exists!
40
40
  profile = create_profile!
41
41
  end
@@ -65,7 +65,7 @@ module Sigh
65
65
 
66
66
  # Fetches a profile matching the user's search requirements
67
67
  def fetch_profiles
68
- UI.message "Fetching profiles..."
68
+ UI.message("Fetching profiles...")
69
69
  results = profile_type.find_by_bundle_id(bundle_id: Sigh.config[:app_identifier],
70
70
  mac: Sigh.config[:platform].to_s == 'macos',
71
71
  sub_platform: Sigh.config[:platform].to_s == 'tvos' ? 'tvOS' : nil)
@@ -89,7 +89,7 @@ module Sigh
89
89
 
90
90
  return results if Sigh.config[:skip_certificate_verification]
91
91
 
92
- UI.message "Verifying certificates..."
92
+ UI.message("Verifying certificates...")
93
93
  return results.find_all do |current_profile|
94
94
  installed = false
95
95
 
@@ -132,12 +132,12 @@ module Sigh
132
132
 
133
133
  unless Sigh.config[:skip_fetch_profiles]
134
134
  if Spaceship.provisioning_profile.all.find { |p| p.name == name }
135
- UI.error "The name '#{name}' is already taken, using another one."
135
+ UI.error("The name '#{name}' is already taken, using another one.")
136
136
  name += " #{Time.now.to_i}"
137
137
  end
138
138
  end
139
139
 
140
- UI.important "Creating new provisioning profile for '#{Sigh.config[:app_identifier]}' with name '#{name}' for '#{Sigh.config[:platform]}' platform"
140
+ UI.important("Creating new provisioning profile for '#{Sigh.config[:app_identifier]}' with name '#{name}' for '#{Sigh.config[:platform]}' platform")
141
141
  profile = profile_type.create!(name: name,
142
142
  bundle_id: bundle_id,
143
143
  certificate: cert,
@@ -223,11 +223,11 @@ module Sigh
223
223
  end
224
224
 
225
225
  if certificates.count > 1 and !Sigh.config[:development]
226
- UI.important "Found more than one code signing identity. Choosing the first one. Check out `fastlane sigh --help` to see all available options."
227
- UI.important "Available Code Signing Identities for current filters:"
226
+ UI.important("Found more than one code signing identity. Choosing the first one. Check out `fastlane sigh --help` to see all available options.")
227
+ UI.important("Available Code Signing Identities for current filters:")
228
228
  certificates.each do |c|
229
229
  str = ["\t- Name:", c.owner_name, "- ID:", c.id + " - Expires", c.expires.strftime("%d/%m/%Y")].join(" ")
230
- UI.message str.green
230
+ UI.message(str.green)
231
231
  end
232
232
  end
233
233
 
@@ -235,7 +235,7 @@ module Sigh
235
235
  filters = ""
236
236
  filters << "Owner Name: '#{Sigh.config[:cert_owner_name]}' " if Sigh.config[:cert_owner_name]
237
237
  filters << "Certificate ID: '#{Sigh.config[:cert_id]}' " if Sigh.config[:cert_id]
238
- UI.important "No certificates for filter: #{filters}" if filters.length > 0
238
+ UI.important("No certificates for filter: #{filters}") if filters.length > 0
239
239
  message = "Could not find a matching code signing identity for type '#{profile_type.to_s.split(':').last}'. "
240
240
  message += "It is recommended to use match to manage code signing for you, more information on https://codesigning.guide."
241
241
  message += "If you don't want to do so, you can also use cert to generate a new one: https://fastlane.tools/cert"
@@ -248,7 +248,7 @@ module Sigh
248
248
 
249
249
  # Downloads and stores the provisioning profile
250
250
  def download_profile(profile)
251
- UI.important "Downloading provisioning profile..."
251
+ UI.important("Downloading provisioning profile...")
252
252
  profile_name ||= "#{profile_type.pretty_type}_#{Sigh.config[:app_identifier]}"
253
253
 
254
254
  if Sigh.config[:platform].to_s == 'tvos'
@@ -263,7 +263,7 @@ module Sigh
263
263
  f.write(profile.download)
264
264
  end
265
265
 
266
- UI.success "Successfully downloaded provisioning profile..."
266
+ UI.success("Successfully downloaded provisioning profile...")
267
267
  return output_path
268
268
  end
269
269
 
@@ -275,17 +275,17 @@ module Sigh
275
275
  end
276
276
 
277
277
  def print_produce_command(config)
278
- UI.message ""
279
- UI.message "==========================================".yellow
280
- UI.message "Could not find App ID with bundle identifier '#{config[:app_identifier]}'"
281
- UI.message "You can easily generate a new App ID on the Developer Portal using 'produce':"
282
- UI.message ""
283
- UI.message "fastlane produce -u #{config[:username]} -a #{config[:app_identifier]} --skip_itc".yellow
284
- UI.message ""
285
- UI.message "You will be asked for any missing information, like the full name of your app"
286
- UI.message "If the app should also be created on iTunes Connect, remove the " + "--skip_itc".yellow + " from the command above"
287
- UI.message "==========================================".yellow
288
- UI.message ""
278
+ UI.message("")
279
+ UI.message("==========================================".yellow)
280
+ UI.message("Could not find App ID with bundle identifier '#{config[:app_identifier]}'")
281
+ UI.message("You can easily generate a new App ID on the Developer Portal using 'produce':")
282
+ UI.message("")
283
+ UI.message("fastlane produce -u #{config[:username]} -a #{config[:app_identifier]} --skip_itc".yellow)
284
+ UI.message("")
285
+ UI.message("You will be asked for any missing information, like the full name of your app")
286
+ UI.message("If the app should also be created on iTunes Connect, remove the " + "--skip_itc".yellow + " from the command above")
287
+ UI.message("==========================================".yellow)
288
+ UI.message("")
289
289
  end
290
290
  end
291
291
  end
@@ -30,7 +30,7 @@ module Snapshot
30
30
  end
31
31
 
32
32
  if matches.count != to_store.count
33
- UI.error "Looks like the number of screenshots (#{to_store.count}) doesn't match the number of names (#{matches.count})"
33
+ UI.error("Looks like the number of screenshots (#{to_store.count}) doesn't match the number of names (#{matches.count})")
34
34
  end
35
35
 
36
36
  matches.each_with_index do |current, index|
@@ -65,21 +65,21 @@ module Snapshot
65
65
 
66
66
  def self.copy(from_path, to_path)
67
67
  if FastlaneCore::Globals.verbose?
68
- UI.success "Copying file '#{from_path}' to '#{to_path}'..."
68
+ UI.success("Copying file '#{from_path}' to '#{to_path}'...")
69
69
  else
70
- UI.success "Copying '#{to_path}'..."
70
+ UI.success("Copying '#{to_path}'...")
71
71
  end
72
72
  FileUtils.cp(from_path, to_path)
73
73
  end
74
74
 
75
75
  def self.attachments(containing)
76
- UI.message "Collecting screenshots..."
76
+ UI.message("Collecting screenshots...")
77
77
  plist_path = Dir[File.join(containing, "*.plist")].last # we clean the folder before each run
78
78
  return attachments_in_file(plist_path)
79
79
  end
80
80
 
81
81
  def self.attachments_in_file(plist_path)
82
- UI.verbose "Loading up '#{plist_path}'..."
82
+ UI.verbose("Loading up '#{plist_path}'...")
83
83
  report = Plist.parse_xml(plist_path)
84
84
 
85
85
  to_store = [] # contains the names of all the attachments we want to use
@@ -98,8 +98,8 @@ module Snapshot
98
98
  end
99
99
  end
100
100
 
101
- UI.message "Found #{to_store.count} screenshots..."
102
- UI.verbose "Found #{to_store.join(', ')}"
101
+ UI.message("Found #{to_store.count} screenshots...")
102
+ UI.verbose("Found #{to_store.join(', ')}")
103
103
  return to_store
104
104
  end
105
105
 
@@ -66,11 +66,11 @@ module Snapshot
66
66
  command :reset_simulators do |c|
67
67
  c.syntax = 'fastlane snapshot reset_simulators'
68
68
  c.description = "This will remove all your existing simulators and re-create new ones"
69
- c.option '-i', '--ios_version String', String, 'The comma separated list of iOS Versions you want to use'
70
- c.option '--force', 'Disables confirmation prompts'
69
+ c.option('-i', '--ios_version String', String, 'The comma separated list of iOS Versions you want to use')
70
+ c.option('--force', 'Disables confirmation prompts')
71
71
 
72
72
  c.action do |args, options|
73
- options.default ios_version: Snapshot::LatestOsVersion.ios_version
73
+ options.default(ios_version: Snapshot::LatestOsVersion.ios_version)
74
74
  versions = options.ios_version.split(',') if options.ios_version
75
75
  require 'snapshot/reset_simulators'
76
76
 
@@ -89,17 +89,17 @@ module Snapshot
89
89
  derived_data_path = Snapshot.config[:derived_data_path]
90
90
 
91
91
  if !derived_data_path
92
- Snapshot::UI.user_error! "No derived_data_path"
92
+ Snapshot::UI.user_error!("No derived_data_path")
93
93
  elsif !Dir.exist?(derived_data_path)
94
- Snapshot::UI.important "Path #{derived_data_path} does not exist"
94
+ Snapshot::UI.important("Path #{derived_data_path} does not exist")
95
95
  else
96
96
  FileUtils.rm_rf(derived_data_path)
97
- Snapshot::UI.success "Removed #{derived_data_path}"
97
+ Snapshot::UI.success("Removed #{derived_data_path}")
98
98
  end
99
99
  end
100
100
  end
101
101
 
102
- default_command :run
102
+ default_command(:run)
103
103
 
104
104
  run!
105
105
  end
@@ -6,28 +6,36 @@ module Snapshot
6
6
  class DependencyChecker
7
7
  def self.check_dependencies
8
8
  return if FastlaneCore::Helper.test?
9
+ return unless FastlaneCore::Helper.mac?
9
10
 
10
11
  self.check_xcode_select
11
12
  self.check_simctl
12
13
  end
13
14
 
14
15
  def self.check_xcode_select
15
- unless `xcode-select -v`.include? "xcode-select version"
16
- FastlaneCore::UI.error '#############################################################'
17
- FastlaneCore::UI.error "# You have to install Xcode command line tools to use snapshot"
18
- FastlaneCore::UI.error "# Install the latest version of Xcode from the AppStore"
19
- FastlaneCore::UI.error "# Run xcode-select --install to install the developer tools"
20
- FastlaneCore::UI.error '#############################################################'
16
+ xcode_available = nil
17
+ begin
18
+ xcode_available = `xcode-select -v`.include?("xcode-select version")
19
+ rescue
20
+ xcode_available = true
21
+ end
22
+
23
+ unless xcode_available
24
+ FastlaneCore::UI.error('#############################################################')
25
+ FastlaneCore::UI.error("# You have to install Xcode command line tools to use snapshot")
26
+ FastlaneCore::UI.error("# Install the latest version of Xcode from the AppStore")
27
+ FastlaneCore::UI.error("# Run xcode-select --install to install the developer tools")
28
+ FastlaneCore::UI.error('#############################################################')
21
29
  FastlaneCore::UI.user_error!("Run 'xcode-select --install' and start snapshot again")
22
30
  end
23
31
 
24
32
  if Snapshot::LatestOsVersion.ios_version.to_f < 9 # to_f is bad, but should be good enough
25
- FastlaneCore::UI.error '#############################################################'
26
- FastlaneCore::UI.error "# Your xcode-select Xcode version is below 7.0"
27
- FastlaneCore::UI.error "# To use snapshot 1.0 and above you need at least iOS 9"
28
- FastlaneCore::UI.error "# Set the path to the Xcode version that supports UI Tests"
29
- FastlaneCore::UI.error "# or downgrade to versions older than snapshot 1.0"
30
- FastlaneCore::UI.error '#############################################################'
33
+ FastlaneCore::UI.error('#############################################################')
34
+ FastlaneCore::UI.error("# Your xcode-select Xcode version is below 7.0")
35
+ FastlaneCore::UI.error("# To use snapshot 1.0 and above you need at least iOS 9")
36
+ FastlaneCore::UI.error("# Set the path to the Xcode version that supports UI Tests")
37
+ FastlaneCore::UI.error("# or downgrade to versions older than snapshot 1.0")
38
+ FastlaneCore::UI.error('#############################################################')
31
39
  FastlaneCore::UI.user_error!("Run 'sudo xcode-select -s /Applications/Xcode-beta.app'")
32
40
  end
33
41
  end
@@ -35,18 +43,25 @@ module Snapshot
35
43
  def self.check_simulators
36
44
  FastlaneCore::UI.verbose("Found #{FastlaneCore::Simulator.all.count} simulators.")
37
45
  if FastlaneCore::Simulator.all.count == 0
38
- FastlaneCore::UI.error '#############################################################'
39
- FastlaneCore::UI.error "# You have to add new simulators using Xcode"
40
- FastlaneCore::UI.error "# You can let snapshot create new simulators: 'fastlane snapshot reset_simulators'"
41
- FastlaneCore::UI.error "# Manually: Xcode => Window => Devices"
42
- FastlaneCore::UI.error "# Please run `instruments -s` to verify your xcode path"
43
- FastlaneCore::UI.error '#############################################################'
46
+ FastlaneCore::UI.error('#############################################################')
47
+ FastlaneCore::UI.error("# You have to add new simulators using Xcode")
48
+ FastlaneCore::UI.error("# You can let snapshot create new simulators: 'fastlane snapshot reset_simulators'")
49
+ FastlaneCore::UI.error("# Manually: Xcode => Window => Devices")
50
+ FastlaneCore::UI.error("# Please run `instruments -s` to verify your xcode path")
51
+ FastlaneCore::UI.error('#############################################################')
44
52
  FastlaneCore::UI.user_error!("Create the new simulators and run this script again")
45
53
  end
46
54
  end
47
55
 
48
56
  def self.check_simctl
49
- unless `xcrun simctl`.include? "openurl"
57
+ simctl_available = nil
58
+ begin
59
+ simctl_available = `xcrun simctl`.include?("openurl")
60
+ rescue
61
+ simctl_available = true
62
+ end
63
+
64
+ unless simctl_available
50
65
  FastlaneCore::UI.user_error!("Could not find `xcrun simctl`. Make sure you have the latest version of Xcode and macOS installed.")
51
66
  end
52
67
  end
@@ -1,6 +1,8 @@
1
1
  require 'fastlane_core/project'
2
2
  require 'fastlane_core/device_manager'
3
3
 
4
+ require_relative 'module'
5
+
4
6
  module Snapshot
5
7
  class DetectValues
6
8
  # This is needed as these are more complex default values
@@ -14,7 +14,7 @@ module Snapshot
14
14
 
15
15
  case output
16
16
  when /com\.apple\.CoreSimulator\.SimError/
17
- UI.important "The simulator failed to launch - retrying..."
17
+ UI.important("The simulator failed to launch - retrying...")
18
18
  when /is not configured for Running/
19
19
  UI.user_error!("Scheme is not properly configured, make sure to check out the snapshot README")
20
20
  end
@@ -7,7 +7,7 @@ module Snapshot
7
7
 
8
8
  class HardwareKeyboardFix
9
9
  def self.patch
10
- UI.verbose "Patching simulator to work with secure text fields"
10
+ UI.verbose("Patching simulator to work with secure text fields")
11
11
 
12
12
  Helper.backticks("defaults write com.apple.iphonesimulator ConnectHardwareKeyboard 0", print: FastlaneCore::Globals.verbose?)
13
13
  end
@@ -9,7 +9,7 @@ module Snapshot
9
9
 
10
10
  class SimulatorZoomFix
11
11
  def self.patch
12
- UI.message "Patching simulators '#{config_path}' to scale to 100%"
12
+ UI.message("Patching simulators '#{config_path}' to scale to 100%")
13
13
 
14
14
  FastlaneCore::DeviceManager.simulators.each do |simulator|
15
15
  simulator_name = simulator.name.tr("\s", "-")
@@ -6,7 +6,7 @@ module Snapshot
6
6
  require 'fastimage'
7
7
 
8
8
  def generate
9
- UI.message "Generating HTML Report"
9
+ UI.message("Generating HTML Report")
10
10
 
11
11
  screens_path = Snapshot.config[:output_directory]
12
12
 
@@ -35,7 +35,7 @@ module Snapshot
35
35
  File.write(export_path, html)
36
36
 
37
37
  export_path = File.expand_path(export_path)
38
- UI.success "Successfully created HTML file with an overview of all the screenshots: '#{export_path}'"
38
+ UI.success("Successfully created HTML file with an overview of all the screenshots: '#{export_path}'")
39
39
  system("open '#{export_path}'") unless Snapshot.config[:skip_open_summary]
40
40
  end
41
41
 
@@ -68,7 +68,7 @@ module Snapshot
68
68
 
69
69
  def self.create(device_type, os_versions, os_name = 'iOS')
70
70
  os_versions.each do |os_version|
71
- puts "Creating #{device_type[0]} for #{os_name} version #{os_version[0]}"
71
+ puts("Creating #{device_type[0]} for #{os_name} version #{os_version[0]}")
72
72
  command = "xcrun simctl create '#{device_type[0]}' #{device_type[1]} #{os_version[1]}"
73
73
  UI.command(command) if FastlaneCore::Globals.verbose?
74
74
  `#{command}`
@@ -110,7 +110,7 @@ module Snapshot
110
110
  end
111
111
 
112
112
  if phones.any? && watches.any?
113
- puts "Creating device pair of #{phones.last} and #{watches.last}"
113
+ puts("Creating device pair of #{phones.last} and #{watches.last}")
114
114
  Helper.backticks("xcrun simctl pair #{watches.last} #{phones.last}", print: FastlaneCore::Globals.verbose?)
115
115
  end
116
116
  end
@@ -17,11 +17,11 @@ module Snapshot
17
17
  class Runner
18
18
  def work
19
19
  if File.exist?("./fastlane/snapshot.js") or File.exist?("./snapshot.js")
20
- UI.error "Found old snapshot configuration file 'snapshot.js'"
21
- UI.error "You updated to snapshot 1.0 which now uses UI Automation"
22
- UI.error "Please follow the migration guide: https://github.com/fastlane/fastlane/blob/master/snapshot/MigrationGuide.md"
23
- UI.error "And read the updated documentation: https://docs.fastlane.tools/actions/snapshot/"
24
- sleep 3 # to be sure the user sees this, as compiling clears the screen
20
+ UI.error("Found old snapshot configuration file 'snapshot.js'")
21
+ UI.error("You updated to snapshot 1.0 which now uses UI Automation")
22
+ UI.error("Please follow the migration guide: https://github.com/fastlane/fastlane/blob/master/snapshot/MigrationGuide.md")
23
+ UI.error("And read the updated documentation: https://docs.fastlane.tools/actions/snapshot/")
24
+ sleep(3) # to be sure the user sees this, as compiling clears the screen
25
25
  end
26
26
 
27
27
  Snapshot.config[:output_directory] = File.expand_path(Snapshot.config[:output_directory])
@@ -36,7 +36,7 @@ module Snapshot
36
36
 
37
37
  clear_previous_screenshots if Snapshot.config[:clear_previous_screenshots]
38
38
 
39
- UI.success "Building and running project - this might take some time..."
39
+ UI.success("Building and running project - this might take some time...")
40
40
 
41
41
  launcher_config = SimulatorLauncherConfiguration.new(snapshot_config: Snapshot.config)
42
42
 
@@ -79,16 +79,16 @@ module Snapshot
79
79
  headings: ["Device"] + results.values.first.keys,
80
80
  title: "snapshot results"
81
81
  }
82
- puts ""
83
- puts Terminal::Table.new(params)
84
- puts ""
82
+ puts("")
83
+ puts(Terminal::Table.new(params))
84
+ puts("")
85
85
  end
86
86
 
87
87
  def clear_previous_screenshots
88
- UI.important "Clearing previously generated screenshots"
88
+ UI.important("Clearing previously generated screenshots")
89
89
  path = File.join(Snapshot.config[:output_directory], "*", "*.png")
90
90
  Dir[path].each do |current|
91
- UI.verbose "Deleting #{current}"
91
+ UI.verbose("Deleting #{current}")
92
92
  File.delete(current)
93
93
  end
94
94
  end
@@ -119,15 +119,15 @@ module Snapshot
119
119
  def verify_helper_is_current
120
120
  return if Snapshot.config[:skip_helper_version_check]
121
121
  current_version = version_of_bundled_helper
122
- UI.verbose "Checking that helper files contain #{current_version}"
122
+ UI.verbose("Checking that helper files contain #{current_version}")
123
123
 
124
124
  helper_files = Update.find_helper
125
125
  helper_files.each do |path|
126
126
  content = File.read(path)
127
127
 
128
128
  unless content.include?(current_version)
129
- UI.error "Your '#{path}' is outdated, please run `fastlane snapshot update`"
130
- UI.error "to update your Helper file"
129
+ UI.error("Your '#{path}' is outdated, please run `fastlane snapshot update`")
130
+ UI.error("to update your Helper file")
131
131
  UI.user_error!("Please update your Snapshot Helper file using `fastlane snapshot update`")
132
132
  end
133
133
  end