fastlane 2.74.1 → 2.75.0.beta.20180109010003
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,
|