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.
- checksums.yaml +4 -4
- data/bin/bin-proxy +2 -2
- data/bin/fastlane +5 -5
- data/cert/lib/cert/commands_generator.rb +1 -1
- data/cert/lib/cert/runner.rb +14 -14
- data/credentials_manager/lib/credentials_manager/account_manager.rb +11 -11
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +11 -11
- data/credentials_manager/lib/credentials_manager/cli.rb +4 -4
- data/deliver/lib/deliver/app_screenshot.rb +19 -2
- data/deliver/lib/deliver/commands_generator.rb +2 -2
- data/deliver/lib/deliver/loader.rb +2 -2
- data/deliver/lib/deliver/options.rb +2 -2
- data/deliver/lib/deliver/setup.rb +1 -1
- data/deliver/lib/deliver/submit_for_review.rb +1 -1
- data/fastlane/lib/fastlane/action.rb +2 -2
- data/fastlane/lib/fastlane/actions/actions_helper.rb +5 -5
- data/fastlane/lib/fastlane/actions/add_extra_platforms.rb +2 -2
- data/fastlane/lib/fastlane/actions/add_git_tag.rb +1 -1
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/appaloosa.rb +4 -4
- data/fastlane/lib/fastlane/actions/appetize.rb +3 -3
- data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +2 -2
- data/fastlane/lib/fastlane/actions/appium.rb +2 -2
- data/fastlane/lib/fastlane/actions/appledoc.rb +3 -3
- data/fastlane/lib/fastlane/actions/apteligent.rb +2 -2
- data/fastlane/lib/fastlane/actions/artifactory.rb +2 -2
- data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
- data/fastlane/lib/fastlane/actions/build_ios_app.rb +1 -1
- data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +1 -1
- data/fastlane/lib/fastlane/actions/carthage.rb +4 -4
- data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +4 -4
- data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +1 -1
- data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +1 -1
- data/fastlane/lib/fastlane/actions/cloc.rb +1 -1
- data/fastlane/lib/fastlane/actions/cocoapods.rb +1 -1
- data/fastlane/lib/fastlane/actions/commit_github_file.rb +4 -4
- data/fastlane/lib/fastlane/actions/commit_version_bump.rb +7 -7
- data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
- data/fastlane/lib/fastlane/actions/crashlytics.rb +2 -2
- data/fastlane/lib/fastlane/actions/debug.rb +2 -2
- data/fastlane/lib/fastlane/actions/delete_keychain.rb +1 -1
- data/fastlane/lib/fastlane/actions/deploygate.rb +7 -7
- data/fastlane/lib/fastlane/actions/docs/cert.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/deliver.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/frameit.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/gym.md +1 -3
- data/fastlane/lib/fastlane/actions/docs/match.md +4 -4
- data/fastlane/lib/fastlane/actions/docs/pem.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/precheck.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/produce.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/scan.md +0 -2
- data/fastlane/lib/fastlane/actions/docs/sigh.md +6 -6
- data/fastlane/lib/fastlane/actions/docs/snapshot.md +4 -4
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -1
- data/fastlane/lib/fastlane/actions/dsym_zip.rb +1 -1
- data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +1 -1
- data/fastlane/lib/fastlane/actions/flock.rb +7 -7
- data/fastlane/lib/fastlane/actions/frame_screenshots.rb +1 -1
- data/fastlane/lib/fastlane/actions/gcovr.rb +5 -5
- data/fastlane/lib/fastlane/actions/get_build_number.rb +2 -2
- data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +9 -9
- data/fastlane/lib/fastlane/actions/get_github_release.rb +2 -2
- data/fastlane/lib/fastlane/actions/get_info_plist_value.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_version_number.rb +7 -7
- data/fastlane/lib/fastlane/actions/github_api.rb +2 -2
- data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +2 -2
- data/fastlane/lib/fastlane/actions/hockey.rb +5 -5
- data/fastlane/lib/fastlane/actions/ifttt.rb +4 -4
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +3 -3
- data/fastlane/lib/fastlane/actions/increment_version_number.rb +4 -4
- data/fastlane/lib/fastlane/actions/install_on_device.rb +2 -2
- data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +2 -2
- data/fastlane/lib/fastlane/actions/installr.rb +6 -6
- data/fastlane/lib/fastlane/actions/ipa.rb +1 -1
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/lcov.rb +1 -1
- data/fastlane/lib/fastlane/actions/mailgun.rb +3 -3
- data/fastlane/lib/fastlane/actions/modify_services.rb +1 -1
- data/fastlane/lib/fastlane/actions/notification.rb +1 -1
- data/fastlane/lib/fastlane/actions/number_of_commits.rb +1 -1
- data/fastlane/lib/fastlane/actions/onesignal.rb +1 -1
- data/fastlane/lib/fastlane/actions/pod_push.rb +1 -1
- data/fastlane/lib/fastlane/actions/podio_item.rb +6 -6
- data/fastlane/lib/fastlane/actions/puts.rb +1 -1
- data/fastlane/lib/fastlane/actions/read_podspec.rb +1 -1
- data/fastlane/lib/fastlane/actions/recreate_schemes.rb +1 -1
- data/fastlane/lib/fastlane/actions/reset_git_repo.rb +1 -1
- data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
- data/fastlane/lib/fastlane/actions/rocket.rb +2 -2
- data/fastlane/lib/fastlane/actions/run_tests.rb +1 -1
- data/fastlane/lib/fastlane/actions/s3.rb +1 -1
- data/fastlane/lib/fastlane/actions/scp.rb +2 -2
- data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_changelog.rb +2 -2
- data/fastlane/lib/fastlane/actions/set_github_release.rb +4 -4
- data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +2 -2
- data/fastlane/lib/fastlane/actions/set_pod_key.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +4 -4
- data/fastlane/lib/fastlane/actions/setup_jenkins.rb +6 -6
- data/fastlane/lib/fastlane/actions/setup_travis.rb +2 -2
- data/fastlane/lib/fastlane/actions/slack.rb +3 -3
- data/fastlane/lib/fastlane/actions/slather.rb +2 -2
- data/fastlane/lib/fastlane/actions/spm.rb +2 -2
- data/fastlane/lib/fastlane/actions/ssh.rb +1 -1
- data/fastlane/lib/fastlane/actions/team_id.rb +1 -1
- data/fastlane/lib/fastlane/actions/team_name.rb +1 -1
- data/fastlane/lib/fastlane/actions/testfairy.rb +7 -7
- data/fastlane/lib/fastlane/actions/tryouts.rb +6 -6
- data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +2 -2
- data/fastlane/lib/fastlane/actions/update_fastlane.rb +5 -5
- data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +10 -10
- data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_url_schemes.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -4
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +4 -4
- data/fastlane/lib/fastlane/actions/verify_build.rb +6 -6
- data/fastlane/lib/fastlane/actions/verify_pod_keys.rb +1 -1
- data/fastlane/lib/fastlane/actions/version_bump_podspec.rb +3 -3
- data/fastlane/lib/fastlane/actions/version_get_podspec.rb +2 -2
- data/fastlane/lib/fastlane/actions/xcode_select.rb +2 -2
- data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +3 -3
- data/fastlane/lib/fastlane/actions/xcov.rb +1 -1
- data/fastlane/lib/fastlane/actions/xctool.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcversion.rb +1 -1
- data/fastlane/lib/fastlane/actions/zip.rb +3 -3
- data/fastlane/lib/fastlane/auto_complete.rb +15 -15
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +15 -15
- data/fastlane/lib/fastlane/command_line_handler.rb +1 -1
- data/fastlane/lib/fastlane/commands_generator.rb +26 -26
- data/fastlane/lib/fastlane/configuration_helper.rb +2 -2
- data/fastlane/lib/fastlane/documentation/actions_list.rb +47 -47
- data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
- data/fastlane/lib/fastlane/environment_printer.rb +5 -5
- data/fastlane/lib/fastlane/fast_file.rb +5 -5
- data/fastlane/lib/fastlane/fastlane_require.rb +2 -2
- data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +3 -3
- data/fastlane/lib/fastlane/helper/podspec_helper.rb +1 -1
- data/fastlane/lib/fastlane/helper/sh_helper.rb +2 -2
- data/fastlane/lib/fastlane/helper/xcversion_helper.rb +1 -1
- data/fastlane/lib/fastlane/lane.rb +6 -6
- data/fastlane/lib/fastlane/lane_list.rb +3 -3
- data/fastlane/lib/fastlane/lane_manager.rb +7 -7
- data/fastlane/lib/fastlane/lane_manager_base.rb +15 -15
- data/fastlane/lib/fastlane/markdown_table_formatter.rb +2 -2
- data/fastlane/lib/fastlane/new_action.rb +5 -5
- data/fastlane/lib/fastlane/one_off.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_generator.rb +5 -5
- data/fastlane/lib/fastlane/plugins/plugin_generator_ui.rb +2 -2
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +7 -7
- data/fastlane/lib/fastlane/plugins/plugin_search.rb +5 -5
- data/fastlane/lib/fastlane/plugins/plugin_update_manager.rb +4 -4
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +9 -8
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +37 -2
- data/fastlane/lib/fastlane/plugins/template/Gemfile +1 -1
- data/fastlane/lib/fastlane/plugins/template/Rakefile +1 -1
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +3 -0
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +4 -0
- data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +1 -1
- data/fastlane/lib/fastlane/runner.rb +9 -9
- data/fastlane/lib/fastlane/setup/crashlytics_beta.rb +9 -9
- data/fastlane/lib/fastlane/setup/crashlytics_beta_command_line_handler.rb +7 -7
- data/fastlane/lib/fastlane/setup/crashlytics_beta_info_collector.rb +19 -19
- data/fastlane/lib/fastlane/setup/crashlytics_beta_ui.rb +3 -3
- data/fastlane/lib/fastlane/setup/setup_android.rb +4 -4
- data/fastlane/lib/fastlane/setup/setup_ios.rb +9 -9
- data/fastlane/lib/fastlane/supported_platforms.rb +1 -1
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +10 -6
- data/fastlane/lib/fastlane/swift_lane_manager.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/README.md +0 -26
- data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +2 -2
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +1 -1
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -2
- data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -3
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +4 -4
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +4 -4
- data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +4 -4
- data/fastlane_core/lib/fastlane_core/core_ext/cfpropertylist.rb +3 -3
- data/fastlane_core/lib/fastlane_core/device_manager.rb +2 -4
- data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +1 -1
- data/fastlane_core/lib/fastlane_core/globals.rb +3 -3
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +2 -2
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +2 -2
- data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +1 -1
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +1 -1
- data/fastlane_core/lib/fastlane_core/print_table.rb +5 -5
- data/fastlane_core/lib/fastlane_core/project.rb +7 -7
- data/fastlane_core/lib/fastlane_core/swag.rb +9 -9
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +49 -49
- data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +18 -18
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +1 -1
- data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +7 -7
- data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +11 -11
- data/frameit/lib/frameit/commands_generator.rb +2 -2
- data/frameit/lib/frameit/config_parser.rb +11 -11
- data/frameit/lib/frameit/dependency_checker.rb +7 -7
- data/frameit/lib/frameit/editor.rb +41 -41
- data/frameit/lib/frameit/frame_downloader.rb +12 -12
- data/frameit/lib/frameit/mac_editor.rb +2 -2
- data/frameit/lib/frameit/options.rb +1 -1
- data/frameit/lib/frameit/runner.rb +7 -7
- data/frameit/lib/frameit/screenshot.rb +5 -5
- data/frameit/lib/frameit/strings_parser.rb +6 -6
- data/frameit/lib/frameit/template_finder.rb +3 -3
- data/gym/lib/gym/commands_generator.rb +4 -4
- data/gym/lib/gym/detect_values.rb +1 -1
- data/gym/lib/gym/error_handler.rb +84 -84
- data/gym/lib/gym/generators/build_command_generator.rb +1 -1
- data/gym/lib/gym/runner.rb +24 -24
- data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +2 -2
- data/match/lib/assets/READMETemplate.md +3 -3
- data/match/lib/match/commands_generator.rb +3 -3
- data/match/lib/match/encrypt.rb +10 -10
- data/match/lib/match/git_helper.rb +5 -5
- data/match/lib/match/nuke.rb +29 -29
- data/match/lib/match/runner.rb +13 -13
- data/match/lib/match/setup.rb +7 -7
- data/match/lib/match/table_printer.rb +6 -6
- data/match/lib/match/utils.rb +2 -2
- data/pem/lib/pem/commands_generator.rb +1 -1
- data/pem/lib/pem/manager.rb +9 -9
- data/pem/lib/pem/module.rb +1 -1
- data/pilot/lib/pilot/build_manager.rb +8 -8
- data/pilot/lib/pilot/commands_generator.rb +1 -1
- data/pilot/lib/pilot/manager.rb +1 -1
- data/pilot/lib/pilot/options.rb +4 -4
- data/pilot/lib/pilot/tester_manager.rb +10 -10
- data/precheck/lib/precheck/commands_generator.rb +4 -4
- data/precheck/lib/precheck/rule.rb +2 -2
- data/precheck/lib/precheck/rule_processor.rb +7 -7
- data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +2 -2
- data/precheck/lib/precheck/rules/curse_words_rule.rb +3 -3
- data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +3 -3
- data/precheck/lib/precheck/runner.rb +7 -7
- data/produce/lib/produce/commands_generator.rb +48 -48
- data/produce/lib/produce/developer_center.rb +4 -4
- data/produce/lib/produce/group.rb +2 -2
- data/produce/lib/produce/itunes_connect.rb +4 -4
- data/produce/lib/produce/options.rb +3 -3
- data/produce/lib/produce/service.rb +1 -1
- data/scan/lib/scan/commands_generator.rb +2 -2
- data/scan/lib/scan/error_handler.rb +12 -12
- data/scan/lib/scan/runner.rb +3 -3
- data/scan/lib/scan/slack_poster.rb +2 -2
- data/scan/lib/scan/test_command_generator.rb +1 -1
- data/screengrab/lib/screengrab/commands_generator.rb +1 -1
- data/screengrab/lib/screengrab/dependency_checker.rb +9 -9
- data/screengrab/lib/screengrab/options.rb +3 -3
- data/screengrab/lib/screengrab/reports_generator.rb +2 -2
- data/screengrab/lib/screengrab/runner.rb +32 -32
- data/sigh/lib/sigh/commands_generator.rb +18 -18
- data/sigh/lib/sigh/download_all.rb +4 -4
- data/sigh/lib/sigh/local_manage.rb +27 -27
- data/sigh/lib/sigh/manager.rb +1 -1
- data/sigh/lib/sigh/repair.rb +6 -6
- data/sigh/lib/sigh/resign.rb +7 -7
- data/sigh/lib/sigh/runner.rb +26 -26
- data/snapshot/lib/snapshot/collector.rb +7 -7
- data/snapshot/lib/snapshot/commands_generator.rb +7 -7
- data/snapshot/lib/snapshot/dependency_checker.rb +34 -19
- data/snapshot/lib/snapshot/detect_values.rb +2 -0
- data/snapshot/lib/snapshot/error_handler.rb +1 -1
- data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +1 -1
- data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +1 -1
- data/snapshot/lib/snapshot/reports_generator.rb +2 -2
- data/snapshot/lib/snapshot/reset_simulators.rb +2 -2
- data/snapshot/lib/snapshot/runner.rb +14 -14
- data/snapshot/lib/snapshot/screenshot_flatten.rb +1 -1
- data/snapshot/lib/snapshot/screenshot_rotate.rb +6 -6
- data/snapshot/lib/snapshot/setup.rb +16 -16
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +7 -7
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +4 -4
- data/snapshot/lib/snapshot/update.rb +8 -8
- data/spaceship/lib/spaceship/base.rb +3 -3
- data/spaceship/lib/spaceship/client.rb +17 -17
- data/spaceship/lib/spaceship/commands_generator.rb +1 -1
- data/spaceship/lib/spaceship/du/du_client.rb +6 -3
- data/spaceship/lib/spaceship/globals.rb +1 -1
- data/spaceship/lib/spaceship/playground.rb +18 -18
- data/spaceship/lib/spaceship/portal/certificate.rb +5 -5
- data/spaceship/lib/spaceship/portal/device.rb +2 -2
- data/spaceship/lib/spaceship/portal/portal_client.rb +7 -7
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +7 -9
- data/spaceship/lib/spaceship/portal/ui/select_team.rb +13 -13
- data/spaceship/lib/spaceship/spaceauth_runner.rb +16 -16
- data/spaceship/lib/spaceship/test_flight/client.rb +9 -9
- data/spaceship/lib/spaceship/tunes/app_details.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_version.rb +7 -7
- data/spaceship/lib/spaceship/tunes/app_version_common.rb +1 -1
- data/spaceship/lib/spaceship/tunes/application.rb +1 -1
- data/spaceship/lib/spaceship/tunes/device_type.rb +2 -2
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +1 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +54 -54
- data/spaceship/lib/spaceship/two_step_client.rb +19 -19
- data/spaceship/lib/spaceship/ui.rb +1 -1
- data/supply/lib/supply/client.rb +1 -1
- data/supply/lib/supply/commands_generator.rb +1 -1
- data/supply/lib/supply/options.rb +14 -14
- data/supply/lib/supply/uploader.rb +3 -3
- metadata +31 -25
- data/fastlane/lib/.DS_Store +0 -0
- data/fastlane/lib/assets/.DS_Store +0 -0
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/docs/.DS_Store +0 -0
- data/fastlane/lib/fastlane/setup/.DS_Store +0 -0
- data/fastlane_core/lib/.DS_Store +0 -0
- data/fastlane_core/lib/fastlane_core/.DS_Store +0 -0
data/gym/lib/gym/runner.rb
CHANGED
@@ -64,11 +64,11 @@ module Gym
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
puts
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
)
|
67
|
+
puts(Terminal::Table.new(
|
68
|
+
title: title.green,
|
69
|
+
headings: ["Option", "Value"],
|
70
|
+
rows: FastlaneCore::PrintTable.transform_output(rows.delete_if { |c| c.to_s.empty? })
|
71
|
+
))
|
72
72
|
end
|
73
73
|
|
74
74
|
private
|
@@ -99,7 +99,7 @@ module Gym
|
|
99
99
|
end)
|
100
100
|
|
101
101
|
mark_archive_as_built_by_gym(BuildCommandGenerator.archive_path)
|
102
|
-
UI.success
|
102
|
+
UI.success("Successfully stored the archive. You can find it in the Xcode Organizer.") unless Gym.config[:archive_path].nil?
|
103
103
|
UI.verbose("Stored the archive in: " + BuildCommandGenerator.archive_path)
|
104
104
|
end
|
105
105
|
|
@@ -130,15 +130,15 @@ module Gym
|
|
130
130
|
containing_directory = File.expand_path("..", PackageCommandGenerator.dsym_path)
|
131
131
|
|
132
132
|
available_dsyms = Dir.glob("#{containing_directory}/*.dSYM")
|
133
|
-
UI.message
|
133
|
+
UI.message("Compressing #{available_dsyms.count} dSYM(s)") unless Gym.config[:silent]
|
134
134
|
|
135
135
|
output_path = File.expand_path(File.join(Gym.config[:output_directory], Gym.config[:output_name] + ".app.dSYM.zip"))
|
136
136
|
command = "cd '#{containing_directory}' && zip -r '#{output_path}' *.dSYM"
|
137
137
|
Helper.backticks(command, print: !Gym.config[:silent])
|
138
138
|
|
139
|
-
puts
|
139
|
+
puts("") # new line
|
140
140
|
|
141
|
-
UI.success
|
141
|
+
UI.success("Successfully exported and compressed dSYM file")
|
142
142
|
end
|
143
143
|
|
144
144
|
# Moves over the binary and dsym file to the output directory
|
@@ -147,26 +147,26 @@ module Gym
|
|
147
147
|
FileUtils.mv(PackageCommandGenerator.ipa_path, File.expand_path(Gym.config[:output_directory]), force: true)
|
148
148
|
ipa_path = File.expand_path(File.join(Gym.config[:output_directory], File.basename(PackageCommandGenerator.ipa_path)))
|
149
149
|
|
150
|
-
UI.success
|
151
|
-
UI.message
|
150
|
+
UI.success("Successfully exported and signed the ipa file:")
|
151
|
+
UI.message(ipa_path)
|
152
152
|
ipa_path
|
153
153
|
end
|
154
154
|
|
155
155
|
# copys framework from temp folder:
|
156
156
|
|
157
157
|
def copy_files_from_path(path)
|
158
|
-
UI.success
|
158
|
+
UI.success("Exporting Files:")
|
159
159
|
Dir[path].each do |f|
|
160
160
|
existing_file = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(f))
|
161
161
|
# If the target file already exists in output directory
|
162
162
|
# we have to remove it first, otherwise cp_r fails even with remove_destination
|
163
163
|
# e.g.: there are symlinks in the .framework
|
164
164
|
if File.exist?(existing_file)
|
165
|
-
UI.important
|
165
|
+
UI.important("Removing #{File.basename(f)} from output directory") if FastlaneCore::Globals.verbose?
|
166
166
|
FileUtils.rm_rf(existing_file)
|
167
167
|
end
|
168
168
|
FileUtils.cp_r(f, File.expand_path(Gym.config[:output_directory]), remove_destination: true)
|
169
|
-
UI.message
|
169
|
+
UI.message("\t ▸ #{File.basename(f)}")
|
170
170
|
end
|
171
171
|
end
|
172
172
|
|
@@ -177,8 +177,8 @@ module Gym
|
|
177
177
|
UI.crash!("Couldn't find application in '#{BuildCommandGenerator.archive_path}'") unless File.exist?(app_path)
|
178
178
|
FileUtils.cp_r(app_path, File.expand_path(Gym.config[:output_directory]), remove_destination: true)
|
179
179
|
app_path = File.join(Gym.config[:output_directory], File.basename(app_path))
|
180
|
-
UI.success
|
181
|
-
UI.message
|
180
|
+
UI.success("Successfully exported the .app file:")
|
181
|
+
UI.message(app_path)
|
182
182
|
app_path
|
183
183
|
end
|
184
184
|
|
@@ -188,8 +188,8 @@ module Gym
|
|
188
188
|
FileUtils.mv(PackageCommandGenerator.manifest_path, File.expand_path(Gym.config[:output_directory]), force: true)
|
189
189
|
manifest_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.manifest_path))
|
190
190
|
|
191
|
-
UI.success
|
192
|
-
UI.message
|
191
|
+
UI.success("Successfully exported the manifest.plist file:")
|
192
|
+
UI.message(manifest_path)
|
193
193
|
manifest_path
|
194
194
|
end
|
195
195
|
end
|
@@ -200,8 +200,8 @@ module Gym
|
|
200
200
|
FileUtils.mv(PackageCommandGenerator.app_thinning_path, File.expand_path(Gym.config[:output_directory]), force: true)
|
201
201
|
app_thinning_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.app_thinning_path))
|
202
202
|
|
203
|
-
UI.success
|
204
|
-
UI.message
|
203
|
+
UI.success("Successfully exported the app-thinning.plist file:")
|
204
|
+
UI.message(app_thinning_path)
|
205
205
|
app_thinning_path
|
206
206
|
end
|
207
207
|
end
|
@@ -212,8 +212,8 @@ module Gym
|
|
212
212
|
FileUtils.mv(PackageCommandGenerator.app_thinning_size_report_path, File.expand_path(Gym.config[:output_directory]), force: true)
|
213
213
|
app_thinning_size_report_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.app_thinning_size_report_path))
|
214
214
|
|
215
|
-
UI.success
|
216
|
-
UI.message
|
215
|
+
UI.success("Successfully exported the App Thinning Size Report.txt file:")
|
216
|
+
UI.message(app_thinning_size_report_path)
|
217
217
|
app_thinning_size_report_path
|
218
218
|
end
|
219
219
|
end
|
@@ -224,8 +224,8 @@ module Gym
|
|
224
224
|
FileUtils.mv(PackageCommandGenerator.apps_path, File.expand_path(Gym.config[:output_directory]), force: true)
|
225
225
|
apps_path = File.join(File.expand_path(Gym.config[:output_directory]), File.basename(PackageCommandGenerator.apps_path))
|
226
226
|
|
227
|
-
UI.success
|
228
|
-
UI.message
|
227
|
+
UI.success("Successfully exported Apps folder:")
|
228
|
+
UI.message(apps_path)
|
229
229
|
apps_path
|
230
230
|
end
|
231
231
|
end
|
@@ -15,11 +15,11 @@ module Gym
|
|
15
15
|
# This is a workaround for this bug
|
16
16
|
# https://github.com/CocoaPods/CocoaPods/issues/4178
|
17
17
|
def generic_archive_fix
|
18
|
-
UI.verbose
|
18
|
+
UI.verbose("Looking For Orphaned WatchKit2 Applications")
|
19
19
|
|
20
20
|
Dir.glob("#{BuildCommandGenerator.archive_path}/Products/Applications/*.app").each do |app_path|
|
21
21
|
if is_watchkit_app?(app_path)
|
22
|
-
UI.verbose
|
22
|
+
UI.verbose("Removing Orphaned WatchKit2 Application #{app_path}")
|
23
23
|
FileUtils.rm_rf(app_path)
|
24
24
|
end
|
25
25
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
## [fastlane match](https://
|
1
|
+
## [fastlane match](https://docs.fastlane.tools/actions/match)
|
2
2
|
|
3
3
|
This repository contains all your certificates and provisioning profiles needed to build and sign your applications. They are encrypted using OpenSSL via a passphrase.
|
4
4
|
|
@@ -40,7 +40,7 @@ fastlane match development
|
|
40
40
|
fastlane match enterprise
|
41
41
|
```
|
42
42
|
|
43
|
-
For more information open [fastlane match git repo](https://
|
43
|
+
For more information open [fastlane match git repo](https://docs.fastlane.tools/actions/match)
|
44
44
|
|
45
45
|
### Content
|
46
46
|
|
@@ -54,4 +54,4 @@ This directory contains all provisioning profiles
|
|
54
54
|
|
55
55
|
------------------------------------
|
56
56
|
|
57
|
-
For more information open [fastlane match git repo](https://
|
57
|
+
For more information open [fastlane match git repo](https://docs.fastlane.tools/actions/match)
|
@@ -96,7 +96,7 @@ module Match
|
|
96
96
|
params.load_configuration_file("Matchfile")
|
97
97
|
|
98
98
|
Match::ChangePassword.update(params: params)
|
99
|
-
UI.success
|
99
|
+
UI.success("Successfully changed the password. Make sure to update the password on all your clients and servers")
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
@@ -113,7 +113,7 @@ module Match
|
|
113
113
|
params[:shallow_clone],
|
114
114
|
branch: params[:git_branch],
|
115
115
|
clone_branch_directly: params[:clone_branch_directly])
|
116
|
-
UI.success
|
116
|
+
UI.success("Repo is at: '#{decrypted_repo}'")
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
@@ -141,7 +141,7 @@ module Match
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
-
default_command
|
144
|
+
default_command(:run)
|
145
145
|
|
146
146
|
run!
|
147
147
|
end
|
data/match/lib/match/encrypt.rb
CHANGED
@@ -20,13 +20,13 @@ module Match
|
|
20
20
|
|
21
21
|
unless password
|
22
22
|
if !UI.interactive?
|
23
|
-
UI.error
|
24
|
-
UI.error
|
23
|
+
UI.error("Neither the MATCH_PASSWORD environment variable nor the local keychain contained a password.")
|
24
|
+
UI.error("Bailing out instead of asking for a password, since this is non-interactive mode.")
|
25
25
|
UI.user_error!("Try setting the MATCH_PASSWORD environment variable, or temporarily enable interactive mode to store a password.")
|
26
26
|
else
|
27
|
-
UI.important
|
28
|
-
UI.important
|
29
|
-
UI.important
|
27
|
+
UI.important("Enter the passphrase that should be used to encrypt/decrypt your certificates")
|
28
|
+
UI.important("This passphrase is specific per repository and will be stored in your local keychain")
|
29
|
+
UI.important("Make sure to remember the password, as you'll need it when you run match on a different machine")
|
30
30
|
password = ChangePassword.ask_password(confirm: true)
|
31
31
|
store_password(git_url, password)
|
32
32
|
end
|
@@ -49,9 +49,9 @@ module Match
|
|
49
49
|
crypt(path: current,
|
50
50
|
password: password(git_url),
|
51
51
|
encrypt: true)
|
52
|
-
UI.success
|
52
|
+
UI.success("🔒 Encrypted '#{File.basename(current)}'") if FastlaneCore::Globals.verbose?
|
53
53
|
end
|
54
|
-
UI.success
|
54
|
+
UI.success("🔒 Successfully encrypted certificates repo")
|
55
55
|
end
|
56
56
|
|
57
57
|
def decrypt_repo(path: nil, git_url: nil, manual_password: nil)
|
@@ -61,15 +61,15 @@ module Match
|
|
61
61
|
password: manual_password || password(git_url),
|
62
62
|
encrypt: false)
|
63
63
|
rescue
|
64
|
-
UI.error
|
64
|
+
UI.error("Couldn't decrypt the repo, please make sure you enter the right password!")
|
65
65
|
UI.user_error!("Invalid password passed via 'MATCH_PASSWORD'") if ENV["MATCH_PASSWORD"]
|
66
66
|
clear_password(git_url)
|
67
67
|
decrypt_repo(path: path, git_url: git_url)
|
68
68
|
return
|
69
69
|
end
|
70
|
-
UI.success
|
70
|
+
UI.success("🔓 Decrypted '#{File.basename(current)}'") if FastlaneCore::Globals.verbose?
|
71
71
|
end
|
72
|
-
UI.success
|
72
|
+
UI.success("🔓 Successfully decrypted certificates repo")
|
73
73
|
end
|
74
74
|
|
75
75
|
private
|
@@ -32,7 +32,7 @@ module Match
|
|
32
32
|
command += " -b #{branch.shellescape} --single-branch"
|
33
33
|
end
|
34
34
|
|
35
|
-
UI.message
|
35
|
+
UI.message("Cloning remote git repo...")
|
36
36
|
|
37
37
|
if branch && !clone_branch_directly
|
38
38
|
UI.message("If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.")
|
@@ -60,7 +60,7 @@ module Match
|
|
60
60
|
checkout_branch(branch) unless branch == "master"
|
61
61
|
|
62
62
|
if !Helper.test? and GitHelper.match_version(@dir).nil? and manual_password.nil? and File.exist?(File.join(@dir, "README.md"))
|
63
|
-
UI.important
|
63
|
+
UI.important("Migrating to new match...")
|
64
64
|
ChangePassword.update(params: { git_url: git_url,
|
65
65
|
git_branch: branch,
|
66
66
|
shallow_clone: shallow_clone },
|
@@ -128,7 +128,7 @@ module Match
|
|
128
128
|
commands << "git commit -m #{message.shellescape}"
|
129
129
|
commands << "GIT_TERMINAL_PROMPT=0 git push origin #{branch.shellescape}"
|
130
130
|
|
131
|
-
UI.message
|
131
|
+
UI.message("Pushing changes to remote git repo...")
|
132
132
|
|
133
133
|
commands.each do |command|
|
134
134
|
FastlaneCore::CommandExecutor.execute(command: command,
|
@@ -165,7 +165,7 @@ module Match
|
|
165
165
|
commands << "git reset --hard"
|
166
166
|
end
|
167
167
|
|
168
|
-
UI.message
|
168
|
+
UI.message("Checking out branch #{branch}...")
|
169
169
|
|
170
170
|
Dir.chdir(@dir) do
|
171
171
|
commands.each do |command|
|
@@ -196,7 +196,7 @@ module Match
|
|
196
196
|
|
197
197
|
return if commands.empty?
|
198
198
|
|
199
|
-
UI.message
|
199
|
+
UI.message("Add git user config to local git repo...")
|
200
200
|
Dir.chdir(@dir) do
|
201
201
|
commands.each do |command|
|
202
202
|
FastlaneCore::CommandExecutor.execute(command: command,
|
data/match/lib/match/nuke.rb
CHANGED
@@ -42,27 +42,27 @@ module Match
|
|
42
42
|
|
43
43
|
if (self.certs + self.profiles + self.files).count > 0
|
44
44
|
unless params[:skip_confirmation]
|
45
|
-
UI.error
|
46
|
-
UI.error
|
47
|
-
UI.error
|
48
|
-
UI.error
|
49
|
-
UI.error
|
50
|
-
UI.error
|
45
|
+
UI.error("---")
|
46
|
+
UI.error("Are you sure you want to completely delete and revoke all the")
|
47
|
+
UI.error("certificates and provisioning profiles listed above? (y/n)")
|
48
|
+
UI.error("Warning: By nuking distribution, both App Store and Ad Hoc profiles will be deleted") if type == "distribution"
|
49
|
+
UI.error("Warning: The :app_identifier value will be ignored - this will delete all profiles for all your apps!") if had_app_identifier
|
50
|
+
UI.error("---")
|
51
51
|
end
|
52
52
|
if params[:skip_confirmation] || UI.confirm("Do you really want to nuke everything listed above?")
|
53
53
|
nuke_it_now!
|
54
|
-
UI.success
|
54
|
+
UI.success("Successfully cleaned your account ♻️")
|
55
55
|
else
|
56
|
-
UI.success
|
56
|
+
UI.success("Cancelled nuking #thanks 🏠 👨 👩 👧")
|
57
57
|
end
|
58
58
|
else
|
59
|
-
UI.success
|
59
|
+
UI.success("No relevant certificates or provisioning profiles found, nothing to nuke here :)")
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
63
|
# Collect all the certs/profiles
|
64
64
|
def prepare_list
|
65
|
-
UI.message
|
65
|
+
UI.message("Fetching certificates and profiles...")
|
66
66
|
cert_type = Match.cert_type_sym(type)
|
67
67
|
|
68
68
|
prov_types = []
|
@@ -93,15 +93,15 @@ module Match
|
|
93
93
|
|
94
94
|
# Print tables to ask the user
|
95
95
|
def print_tables
|
96
|
-
puts
|
96
|
+
puts("")
|
97
97
|
if self.certs.count > 0
|
98
98
|
rows = self.certs.collect { |c| [c.name, c.id, c.class.to_s.split("::").last, c.expires.strftime("%Y-%m-%d")] }
|
99
|
-
puts
|
99
|
+
puts(Terminal::Table.new({
|
100
100
|
title: "Certificates that are going to be revoked".green,
|
101
101
|
headings: ["Name", "ID", "Type", "Expires"],
|
102
102
|
rows: FastlaneCore::PrintTable.transform_output(rows)
|
103
|
-
})
|
104
|
-
puts
|
103
|
+
}))
|
104
|
+
puts("")
|
105
105
|
end
|
106
106
|
|
107
107
|
if self.profiles.count > 0
|
@@ -110,12 +110,12 @@ module Match
|
|
110
110
|
|
111
111
|
[p.name, p.id, status, p.type, p.expires.strftime("%Y-%m-%d")]
|
112
112
|
end
|
113
|
-
puts
|
113
|
+
puts(Terminal::Table.new({
|
114
114
|
title: "Provisioning Profiles that are going to be revoked".green,
|
115
115
|
headings: ["Name", "ID", "Status", "Type", "Expires"],
|
116
116
|
rows: FastlaneCore::PrintTable.transform_output(rows)
|
117
|
-
})
|
118
|
-
puts
|
117
|
+
}))
|
118
|
+
puts("")
|
119
119
|
end
|
120
120
|
|
121
121
|
if self.files.count > 0
|
@@ -127,36 +127,36 @@ module Match
|
|
127
127
|
|
128
128
|
[file_type, components[2]]
|
129
129
|
end
|
130
|
-
puts
|
130
|
+
puts(Terminal::Table.new({
|
131
131
|
title: "Files that are going to be deleted".green,
|
132
132
|
headings: ["Type", "File Name"],
|
133
133
|
rows: rows
|
134
|
-
})
|
135
|
-
puts
|
134
|
+
}))
|
135
|
+
puts("")
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
139
139
|
def nuke_it_now!
|
140
|
-
UI.header
|
140
|
+
UI.header("Deleting #{self.profiles.count} provisioning profiles...") unless self.profiles.count == 0
|
141
141
|
self.profiles.each do |profile|
|
142
|
-
UI.message
|
142
|
+
UI.message("Deleting profile '#{profile.name}' (#{profile.id})...")
|
143
143
|
begin
|
144
144
|
profile.delete!
|
145
145
|
rescue => ex
|
146
146
|
UI.message(ex.to_s)
|
147
147
|
end
|
148
|
-
UI.success
|
148
|
+
UI.success("Successfully deleted profile")
|
149
149
|
end
|
150
150
|
|
151
|
-
UI.header
|
151
|
+
UI.header("Revoking #{self.certs.count} certificates...") unless self.certs.count == 0
|
152
152
|
self.certs.each do |cert|
|
153
|
-
UI.message
|
153
|
+
UI.message("Revoking certificate '#{cert.name}' (#{cert.id})...")
|
154
154
|
begin
|
155
155
|
cert.revoke!
|
156
156
|
rescue => ex
|
157
157
|
UI.message(ex.to_s)
|
158
158
|
end
|
159
|
-
UI.success
|
159
|
+
UI.success("Successfully deleted certificate")
|
160
160
|
end
|
161
161
|
|
162
162
|
if self.files.count > 0
|
@@ -171,10 +171,10 @@ module Match
|
|
171
171
|
private
|
172
172
|
|
173
173
|
def delete_files!
|
174
|
-
UI.header
|
174
|
+
UI.header("Deleting #{self.files.count} files from the git repo...")
|
175
175
|
|
176
176
|
self.files.each do |file|
|
177
|
-
UI.message
|
177
|
+
UI.message("Deleting file '#{File.basename(file)}'...")
|
178
178
|
|
179
179
|
# Check if the profile is installed on the local machine
|
180
180
|
if file.end_with?("mobileprovision")
|
@@ -185,7 +185,7 @@ module Match
|
|
185
185
|
end
|
186
186
|
|
187
187
|
File.delete(file)
|
188
|
-
UI.success
|
188
|
+
UI.success("Successfully deleted file")
|
189
189
|
end
|
190
190
|
end
|
191
191
|
|
data/match/lib/match/runner.rb
CHANGED
@@ -77,7 +77,7 @@ module Match
|
|
77
77
|
TablePrinter.print_summary(app_identifier: app_identifier, type: params[:type], platform: params[:platform])
|
78
78
|
end
|
79
79
|
|
80
|
-
UI.success
|
80
|
+
UI.success("All required keys, certificates and provisioning profiles are installed 🙌".green)
|
81
81
|
rescue Spaceship::Client::UnexpectedResponse, Spaceship::Client::InvalidUserCredentialsError, Spaceship::Client::NoUserCredentialsError => ex
|
82
82
|
UI.error("An error occurred while verifying your certificates and profiles with the Apple Developer Portal.")
|
83
83
|
UI.error("If you already have your certificates stored in git, you can run `fastlane match` in readonly mode")
|
@@ -95,7 +95,7 @@ module Match
|
|
95
95
|
keys = Dir[File.join(params[:workspace], "certs", cert_type.to_s, "*.p12")]
|
96
96
|
|
97
97
|
if certs.count == 0 or keys.count == 0
|
98
|
-
UI.important
|
98
|
+
UI.important("Couldn't find a valid code signing identity in the git repo for #{cert_type}... creating one for you now")
|
99
99
|
UI.crash!("No code signing identity found and can not create a new one because you enabled `readonly`") if params[:readonly]
|
100
100
|
cert_path = Generator.generate_certificate(params, cert_type)
|
101
101
|
private_key_path = cert_path.gsub(".cer", ".p12")
|
@@ -104,10 +104,10 @@ module Match
|
|
104
104
|
self.files_to_commmit << private_key_path
|
105
105
|
else
|
106
106
|
cert_path = certs.last
|
107
|
-
UI.message
|
107
|
+
UI.message("Installing certificate...")
|
108
108
|
|
109
109
|
if FastlaneCore::CertChecker.installed?(cert_path)
|
110
|
-
UI.verbose
|
110
|
+
UI.verbose("Certificate '#{File.basename(cert_path)}' is already installed on this machine")
|
111
111
|
else
|
112
112
|
Utils.import(cert_path, params[:keychain_name], password: params[:keychain_password])
|
113
113
|
end
|
@@ -145,20 +145,20 @@ module Match
|
|
145
145
|
else
|
146
146
|
# App Store provisioning profiles don't contain device identifiers and
|
147
147
|
# thus shouldn't be renewed if the device count has changed.
|
148
|
-
UI.important
|
149
|
-
UI.important
|
148
|
+
UI.important("Warning: `force_for_new_devices` is set but is ignored for App Store provisioning profiles.")
|
149
|
+
UI.important("You can safely stop specifying `force_for_new_devices` when running Match for type 'appstore'.")
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
153
153
|
if profile.nil? or params[:force]
|
154
154
|
if params[:readonly]
|
155
|
-
all_profiles = Dir.entries(base_dir).reject { |f| f.start_with?
|
156
|
-
UI.error
|
157
|
-
UI.error
|
158
|
-
UI.error
|
159
|
-
all_profiles.each { |p| UI.error
|
160
|
-
UI.error
|
161
|
-
UI.user_error!
|
155
|
+
all_profiles = Dir.entries(base_dir).reject { |f| f.start_with?(".") }
|
156
|
+
UI.error("No matching provisioning profiles found for '#{profile_name}'")
|
157
|
+
UI.error("A new one cannot be created because you enabled `readonly`")
|
158
|
+
UI.error("Provisioning profiles in your repo for type `#{prov_type}`:")
|
159
|
+
all_profiles.each { |p| UI.error("- '#{p}'") }
|
160
|
+
UI.error("If you are certain that a profile should exist, double-check the recent changes to your match repository")
|
161
|
+
UI.user_error!("No matching provisioning profiles found and can not create a new one because you enabled `readonly`. Check the output above for more information.")
|
162
162
|
end
|
163
163
|
profile = Generator.generate_provisioning_profile(params: params,
|
164
164
|
prov_type: prov_type,
|