fastlane_hotfix 2.165.0
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 +7 -0
- data/.yardopts +1 -0
- data/LICENSE +21 -0
- data/README.md +208 -0
- data/bin/bin-proxy +19 -0
- data/bin/fastlane +23 -0
- data/cert/README.md +17 -0
- data/cert/lib/cert.rb +4 -0
- data/cert/lib/cert/commands_generator.rb +60 -0
- data/cert/lib/cert/module.rb +16 -0
- data/cert/lib/cert/options.rb +132 -0
- data/cert/lib/cert/runner.rb +239 -0
- data/credentials_manager/README.md +64 -0
- data/credentials_manager/lib/credentials_manager.rb +7 -0
- data/credentials_manager/lib/credentials_manager/account_manager.rb +157 -0
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +196 -0
- data/credentials_manager/lib/credentials_manager/cli.rb +69 -0
- data/deliver/README.md +17 -0
- data/deliver/lib/assets/DeliverfileDefault +3 -0
- data/deliver/lib/assets/DeliverfileDefault.swift +13 -0
- data/deliver/lib/assets/ScreenshotsHelp +7 -0
- data/deliver/lib/assets/summary.html.erb +299 -0
- data/deliver/lib/deliver.rb +15 -0
- data/deliver/lib/deliver/app_screenshot.rb +354 -0
- data/deliver/lib/deliver/app_screenshot_iterator.rb +95 -0
- data/deliver/lib/deliver/commands_generator.rb +190 -0
- data/deliver/lib/deliver/detect_values.rb +102 -0
- data/deliver/lib/deliver/download_screenshots.rb +76 -0
- data/deliver/lib/deliver/generate_summary.rb +13 -0
- data/deliver/lib/deliver/html_generator.rb +78 -0
- data/deliver/lib/deliver/languages.rb +7 -0
- data/deliver/lib/deliver/loader.rb +55 -0
- data/deliver/lib/deliver/module.rb +18 -0
- data/deliver/lib/deliver/options.rb +465 -0
- data/deliver/lib/deliver/queue_worker.rb +49 -0
- data/deliver/lib/deliver/runner.rb +233 -0
- data/deliver/lib/deliver/setup.rb +199 -0
- data/deliver/lib/deliver/submit_for_review.rb +214 -0
- data/deliver/lib/deliver/upload_metadata.rb +688 -0
- data/deliver/lib/deliver/upload_price_tier.rb +40 -0
- data/deliver/lib/deliver/upload_screenshots.rb +333 -0
- data/fastlane/README.md +11 -0
- data/fastlane/lib/assets/ActionDetails.md.erb +106 -0
- data/fastlane/lib/assets/Actions.md.erb +43 -0
- data/fastlane/lib/assets/AppfileTemplate +6 -0
- data/fastlane/lib/assets/AppfileTemplate.swift +7 -0
- data/fastlane/lib/assets/AppfileTemplateAndroid +2 -0
- data/fastlane/lib/assets/DefaultFastfileTemplate +20 -0
- data/fastlane/lib/assets/DefaultFastfileTemplate.swift +13 -0
- data/fastlane/lib/assets/completions/completion.bash +23 -0
- data/fastlane/lib/assets/completions/completion.fish +39 -0
- data/fastlane/lib/assets/completions/completion.sh +12 -0
- data/fastlane/lib/assets/completions/completion.zsh +23 -0
- data/fastlane/lib/assets/custom_action_template.rb +82 -0
- data/fastlane/lib/assets/mailgun_html_template.erb +142 -0
- data/fastlane/lib/assets/report_template.xml.erb +15 -0
- data/fastlane/lib/assets/s3_html_template.erb +105 -0
- data/fastlane/lib/assets/s3_plist_template.erb +31 -0
- data/fastlane/lib/assets/s3_version_template.erb +4 -0
- data/fastlane/lib/fastlane.rb +53 -0
- data/fastlane/lib/fastlane/action.rb +198 -0
- data/fastlane/lib/fastlane/action_collector.rb +35 -0
- data/fastlane/lib/fastlane/actions/README.md +5 -0
- data/fastlane/lib/fastlane/actions/actions_helper.rb +185 -0
- data/fastlane/lib/fastlane/actions/adb.rb +78 -0
- data/fastlane/lib/fastlane/actions/adb_devices.rb +71 -0
- data/fastlane/lib/fastlane/actions/add_extra_platforms.rb +45 -0
- data/fastlane/lib/fastlane/actions/add_git_tag.rb +122 -0
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +249 -0
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +134 -0
- data/fastlane/lib/fastlane/actions/appaloosa.rb +266 -0
- data/fastlane/lib/fastlane/actions/appetize.rb +188 -0
- data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +146 -0
- data/fastlane/lib/fastlane/actions/appium.rb +206 -0
- data/fastlane/lib/fastlane/actions/appledoc.rb +226 -0
- data/fastlane/lib/fastlane/actions/appstore.rb +14 -0
- data/fastlane/lib/fastlane/actions/apteligent.rb +105 -0
- data/fastlane/lib/fastlane/actions/artifactory.rb +157 -0
- data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +226 -0
- data/fastlane/lib/fastlane/actions/backup_file.rb +41 -0
- data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +135 -0
- data/fastlane/lib/fastlane/actions/badge.rb +155 -0
- data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +107 -0
- data/fastlane/lib/fastlane/actions/build_android_app.rb +14 -0
- data/fastlane/lib/fastlane/actions/build_app.rb +165 -0
- data/fastlane/lib/fastlane/actions/build_ios_app.rb +47 -0
- data/fastlane/lib/fastlane/actions/build_mac_app.rb +46 -0
- data/fastlane/lib/fastlane/actions/bundle_install.rb +156 -0
- data/fastlane/lib/fastlane/actions/capture_android_screenshots.rb +63 -0
- data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +61 -0
- data/fastlane/lib/fastlane/actions/capture_screenshots.rb +14 -0
- data/fastlane/lib/fastlane/actions/carthage.rb +230 -0
- data/fastlane/lib/fastlane/actions/cert.rb +14 -0
- data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +197 -0
- data/fastlane/lib/fastlane/actions/chatwork.rb +94 -0
- data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +54 -0
- data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +72 -0
- data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +52 -0
- data/fastlane/lib/fastlane/actions/clear_derived_data.rb +70 -0
- data/fastlane/lib/fastlane/actions/clipboard.rb +52 -0
- data/fastlane/lib/fastlane/actions/cloc.rb +89 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +170 -0
- data/fastlane/lib/fastlane/actions/commit_github_file.rb +186 -0
- data/fastlane/lib/fastlane/actions/commit_version_bump.rb +301 -0
- data/fastlane/lib/fastlane/actions/copy_artifacts.rb +114 -0
- data/fastlane/lib/fastlane/actions/crashlytics.rb +211 -0
- data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +174 -0
- data/fastlane/lib/fastlane/actions/create_app_online.rb +75 -0
- data/fastlane/lib/fastlane/actions/create_keychain.rb +177 -0
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +265 -0
- data/fastlane/lib/fastlane/actions/danger.rb +131 -0
- data/fastlane/lib/fastlane/actions/debug.rb +32 -0
- data/fastlane/lib/fastlane/actions/default_platform.rb +47 -0
- data/fastlane/lib/fastlane/actions/delete_keychain.rb +68 -0
- data/fastlane/lib/fastlane/actions/deliver.rb +14 -0
- data/fastlane/lib/fastlane/actions/deploygate.rb +210 -0
- data/fastlane/lib/fastlane/actions/device_grid/README.md +157 -0
- data/fastlane/lib/fastlane/actions/docs/build_app.md +245 -0
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +333 -0
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +371 -0
- data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +103 -0
- data/fastlane/lib/fastlane/actions/docs/create_app_online.md +282 -0
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +349 -0
- data/fastlane/lib/fastlane/actions/docs/get_certificates.md +86 -0
- data/fastlane/lib/fastlane/actions/docs/get_provisioning_profile.md +223 -0
- data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +134 -0
- data/fastlane/lib/fastlane/actions/docs/run_tests.md +151 -0
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +573 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +725 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +203 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +250 -0
- data/fastlane/lib/fastlane/actions/dotgpg_environment.rb +57 -0
- data/fastlane/lib/fastlane/actions/download.rb +76 -0
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +369 -0
- data/fastlane/lib/fastlane/actions/download_from_play_store.rb +61 -0
- data/fastlane/lib/fastlane/actions/dsym_zip.rb +93 -0
- data/fastlane/lib/fastlane/actions/echo.rb +14 -0
- data/fastlane/lib/fastlane/actions/ensure_bundle_exec.rb +59 -0
- data/fastlane/lib/fastlane/actions/ensure_env_vars.rb +58 -0
- data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +69 -0
- data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +92 -0
- data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +135 -0
- data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +125 -0
- data/fastlane/lib/fastlane/actions/environment_variable.rb +77 -0
- data/fastlane/lib/fastlane/actions/erb.rb +96 -0
- data/fastlane/lib/fastlane/actions/fastlane_version.rb +15 -0
- data/fastlane/lib/fastlane/actions/flock.rb +82 -0
- data/fastlane/lib/fastlane/actions/frame_screenshots.rb +64 -0
- data/fastlane/lib/fastlane/actions/frameit.rb +14 -0
- data/fastlane/lib/fastlane/actions/gcovr.rb +163 -0
- data/fastlane/lib/fastlane/actions/get_build_number.rb +106 -0
- data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +120 -0
- data/fastlane/lib/fastlane/actions/get_certificates.rb +77 -0
- data/fastlane/lib/fastlane/actions/get_github_release.rb +166 -0
- data/fastlane/lib/fastlane/actions/get_info_plist_value.rb +78 -0
- data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +82 -0
- data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +120 -0
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +101 -0
- data/fastlane/lib/fastlane/actions/get_push_certificate.rb +87 -0
- data/fastlane/lib/fastlane/actions/get_version_number.rb +200 -0
- data/fastlane/lib/fastlane/actions/git_add.rb +93 -0
- data/fastlane/lib/fastlane/actions/git_branch.rb +61 -0
- data/fastlane/lib/fastlane/actions/git_commit.rb +80 -0
- data/fastlane/lib/fastlane/actions/git_pull.rb +64 -0
- data/fastlane/lib/fastlane/actions/git_submodule_update.rb +52 -0
- data/fastlane/lib/fastlane/actions/git_tag_exists.rb +74 -0
- data/fastlane/lib/fastlane/actions/github_api.rb +262 -0
- data/fastlane/lib/fastlane/actions/google_play_track_release_names.rb +74 -0
- data/fastlane/lib/fastlane/actions/google_play_track_version_codes.rb +77 -0
- data/fastlane/lib/fastlane/actions/gradle.rb +329 -0
- data/fastlane/lib/fastlane/actions/gym.rb +10 -0
- data/fastlane/lib/fastlane/actions/hg_add_tag.rb +48 -0
- data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +183 -0
- data/fastlane/lib/fastlane/actions/hg_ensure_clean_status.rb +53 -0
- data/fastlane/lib/fastlane/actions/hg_push.rb +64 -0
- data/fastlane/lib/fastlane/actions/hipchat.rb +200 -0
- data/fastlane/lib/fastlane/actions/hockey.rb +406 -0
- data/fastlane/lib/fastlane/actions/ifttt.rb +96 -0
- data/fastlane/lib/fastlane/actions/import.rb +49 -0
- data/fastlane/lib/fastlane/actions/import_certificate.rb +77 -0
- data/fastlane/lib/fastlane/actions/import_from_git.rb +83 -0
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +117 -0
- data/fastlane/lib/fastlane/actions/increment_version_number.rb +180 -0
- data/fastlane/lib/fastlane/actions/install_on_device.rb +95 -0
- data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +58 -0
- data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +91 -0
- data/fastlane/lib/fastlane/actions/installr.rb +132 -0
- data/fastlane/lib/fastlane/actions/ipa.rb +246 -0
- data/fastlane/lib/fastlane/actions/is_ci.rb +51 -0
- data/fastlane/lib/fastlane/actions/jazzy.rb +56 -0
- data/fastlane/lib/fastlane/actions/jira.rb +115 -0
- data/fastlane/lib/fastlane/actions/lane_context.rb +60 -0
- data/fastlane/lib/fastlane/actions/last_git_commit.rb +58 -0
- data/fastlane/lib/fastlane/actions/last_git_tag.rb +60 -0
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +155 -0
- data/fastlane/lib/fastlane/actions/lcov.rb +102 -0
- data/fastlane/lib/fastlane/actions/mailgun.rb +197 -0
- data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +81 -0
- data/fastlane/lib/fastlane/actions/match.rb +14 -0
- data/fastlane/lib/fastlane/actions/min_fastlane_version.rb +57 -0
- data/fastlane/lib/fastlane/actions/modify_services.rb +173 -0
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +230 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +193 -0
- data/fastlane/lib/fastlane/actions/notification.rb +75 -0
- data/fastlane/lib/fastlane/actions/notify.rb +40 -0
- data/fastlane/lib/fastlane/actions/number_of_commits.rb +75 -0
- data/fastlane/lib/fastlane/actions/oclint.rb +269 -0
- data/fastlane/lib/fastlane/actions/onesignal.rb +186 -0
- data/fastlane/lib/fastlane/actions/opt_out_crash_reporting.rb +33 -0
- data/fastlane/lib/fastlane/actions/opt_out_usage.rb +40 -0
- data/fastlane/lib/fastlane/actions/pem.rb +14 -0
- data/fastlane/lib/fastlane/actions/pilot.rb +14 -0
- data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +189 -0
- data/fastlane/lib/fastlane/actions/pod_push.rb +173 -0
- data/fastlane/lib/fastlane/actions/podio_item.rb +217 -0
- data/fastlane/lib/fastlane/actions/precheck.rb +14 -0
- data/fastlane/lib/fastlane/actions/println.rb +14 -0
- data/fastlane/lib/fastlane/actions/produce.rb +14 -0
- data/fastlane/lib/fastlane/actions/prompt.rb +119 -0
- data/fastlane/lib/fastlane/actions/push_git_tags.rb +76 -0
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +127 -0
- data/fastlane/lib/fastlane/actions/puts.rb +68 -0
- data/fastlane/lib/fastlane/actions/read_podspec.rb +90 -0
- data/fastlane/lib/fastlane/actions/recreate_schemes.rb +46 -0
- data/fastlane/lib/fastlane/actions/register_device.rb +151 -0
- data/fastlane/lib/fastlane/actions/register_devices.rb +214 -0
- data/fastlane/lib/fastlane/actions/reset_git_repo.rb +121 -0
- data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +92 -0
- data/fastlane/lib/fastlane/actions/resign.rb +132 -0
- data/fastlane/lib/fastlane/actions/restore_file.rb +44 -0
- data/fastlane/lib/fastlane/actions/rocket.rb +83 -0
- data/fastlane/lib/fastlane/actions/rsync.rb +74 -0
- data/fastlane/lib/fastlane/actions/ruby_version.rb +56 -0
- data/fastlane/lib/fastlane/actions/run_tests.rb +114 -0
- data/fastlane/lib/fastlane/actions/s3.rb +174 -0
- data/fastlane/lib/fastlane/actions/say.rb +56 -0
- data/fastlane/lib/fastlane/actions/scan.rb +14 -0
- data/fastlane/lib/fastlane/actions/scp.rb +114 -0
- data/fastlane/lib/fastlane/actions/screengrab.rb +14 -0
- data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +76 -0
- data/fastlane/lib/fastlane/actions/set_changelog.rb +204 -0
- data/fastlane/lib/fastlane/actions/set_github_release.rb +274 -0
- data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +92 -0
- data/fastlane/lib/fastlane/actions/set_pod_key.rb +78 -0
- data/fastlane/lib/fastlane/actions/setup_ci.rb +132 -0
- data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +58 -0
- data/fastlane/lib/fastlane/actions/setup_jenkins.rb +202 -0
- data/fastlane/lib/fastlane/actions/setup_travis.rb +57 -0
- data/fastlane/lib/fastlane/actions/sh.rb +71 -0
- data/fastlane/lib/fastlane/actions/sigh.rb +14 -0
- data/fastlane/lib/fastlane/actions/skip_docs.rb +52 -0
- data/fastlane/lib/fastlane/actions/slack.rb +288 -0
- data/fastlane/lib/fastlane/actions/slather.rb +329 -0
- data/fastlane/lib/fastlane/actions/snapshot.rb +14 -0
- data/fastlane/lib/fastlane/actions/sonar.rb +177 -0
- data/fastlane/lib/fastlane/actions/spaceship_logs.rb +135 -0
- data/fastlane/lib/fastlane/actions/spaceship_stats.rb +73 -0
- data/fastlane/lib/fastlane/actions/splunkmint.rb +156 -0
- data/fastlane/lib/fastlane/actions/spm.rb +138 -0
- data/fastlane/lib/fastlane/actions/ssh.rb +162 -0
- data/fastlane/lib/fastlane/actions/supply.rb +14 -0
- data/fastlane/lib/fastlane/actions/swiftlint.rb +240 -0
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +109 -0
- data/fastlane/lib/fastlane/actions/team_id.rb +42 -0
- data/fastlane/lib/fastlane/actions/team_name.rb +42 -0
- data/fastlane/lib/fastlane/actions/testfairy.rb +285 -0
- data/fastlane/lib/fastlane/actions/testflight.rb +14 -0
- data/fastlane/lib/fastlane/actions/tryouts.rb +149 -0
- data/fastlane/lib/fastlane/actions/twitter.rb +89 -0
- data/fastlane/lib/fastlane/actions/typetalk.rb +93 -0
- data/fastlane/lib/fastlane/actions/unlock_keychain.rb +132 -0
- data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +91 -0
- data/fastlane/lib/fastlane/actions/update_app_identifier.rb +124 -0
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +203 -0
- data/fastlane/lib/fastlane/actions/update_fastlane.rb +137 -0
- data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +99 -0
- data/fastlane/lib/fastlane/actions/update_info_plist.rb +143 -0
- data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +94 -0
- data/fastlane/lib/fastlane/actions/update_plist.rb +115 -0
- data/fastlane/lib/fastlane/actions/update_project_code_signing.rb +76 -0
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +173 -0
- data/fastlane/lib/fastlane/actions/update_project_team.rb +95 -0
- data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +91 -0
- data/fastlane/lib/fastlane/actions/update_url_schemes.rb +123 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +231 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +165 -0
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +67 -0
- data/fastlane/lib/fastlane/actions/upload_to_play_store.rb +80 -0
- data/fastlane/lib/fastlane/actions/upload_to_play_store_internal_app_sharing.rb +78 -0
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +119 -0
- data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +104 -0
- data/fastlane/lib/fastlane/actions/verify_build.rb +199 -0
- data/fastlane/lib/fastlane/actions/verify_pod_keys.rb +67 -0
- data/fastlane/lib/fastlane/actions/verify_xcode.rb +159 -0
- data/fastlane/lib/fastlane/actions/version_bump_podspec.rb +105 -0
- data/fastlane/lib/fastlane/actions/version_get_podspec.rb +71 -0
- data/fastlane/lib/fastlane/actions/xcode_install.rb +105 -0
- data/fastlane/lib/fastlane/actions/xcode_select.rb +68 -0
- data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +312 -0
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +641 -0
- data/fastlane/lib/fastlane/actions/xcov.rb +66 -0
- data/fastlane/lib/fastlane/actions/xctool.rb +55 -0
- data/fastlane/lib/fastlane/actions/xcversion.rb +55 -0
- data/fastlane/lib/fastlane/actions/zip.rb +120 -0
- data/fastlane/lib/fastlane/auto_complete.rb +82 -0
- data/fastlane/lib/fastlane/boolean.rb +5 -0
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +207 -0
- data/fastlane/lib/fastlane/command_line_handler.rb +49 -0
- data/fastlane/lib/fastlane/commands_generator.rb +369 -0
- data/fastlane/lib/fastlane/configuration_helper.rb +26 -0
- data/fastlane/lib/fastlane/core_ext/bundler_monkey_patch.rb +14 -0
- data/fastlane/lib/fastlane/documentation/actions_list.rb +214 -0
- data/fastlane/lib/fastlane/documentation/docs_generator.rb +89 -0
- data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +228 -0
- data/fastlane/lib/fastlane/environment_printer.rb +303 -0
- data/fastlane/lib/fastlane/erb_template_helper.rb +30 -0
- data/fastlane/lib/fastlane/fast_file.rb +439 -0
- data/fastlane/lib/fastlane/fastlane_require.rb +75 -0
- data/fastlane/lib/fastlane/features.rb +4 -0
- data/fastlane/lib/fastlane/helper/README.md +29 -0
- data/fastlane/lib/fastlane/helper/adb_helper.rb +66 -0
- data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +157 -0
- data/fastlane/lib/fastlane/helper/dotenv_helper.rb +50 -0
- data/fastlane/lib/fastlane/helper/gem_helper.rb +26 -0
- data/fastlane/lib/fastlane/helper/git_helper.rb +137 -0
- data/fastlane/lib/fastlane/helper/gradle_helper.rb +62 -0
- data/fastlane/lib/fastlane/helper/lane_helper.rb +13 -0
- data/fastlane/lib/fastlane/helper/podspec_helper.rb +75 -0
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +78 -0
- data/fastlane/lib/fastlane/helper/sh_helper.rb +134 -0
- data/fastlane/lib/fastlane/helper/xcodeproj_helper.rb +12 -0
- data/fastlane/lib/fastlane/helper/xcversion_helper.rb +25 -0
- data/fastlane/lib/fastlane/junit_generator.rb +27 -0
- data/fastlane/lib/fastlane/lane.rb +97 -0
- data/fastlane/lib/fastlane/lane_list.rb +137 -0
- data/fastlane/lib/fastlane/lane_manager.rb +130 -0
- data/fastlane/lib/fastlane/lane_manager_base.rb +92 -0
- data/fastlane/lib/fastlane/markdown_table_formatter.rb +62 -0
- data/fastlane/lib/fastlane/new_action.rb +47 -0
- data/fastlane/lib/fastlane/one_off.rb +45 -0
- data/fastlane/lib/fastlane/other_action.rb +29 -0
- data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +55 -0
- data/fastlane/lib/fastlane/plugins/plugin_generator.rb +86 -0
- data/fastlane/lib/fastlane/plugins/plugin_generator_ui.rb +19 -0
- data/fastlane/lib/fastlane/plugins/plugin_info.rb +49 -0
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +159 -0
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +399 -0
- data/fastlane/lib/fastlane/plugins/plugin_search.rb +46 -0
- data/fastlane/lib/fastlane/plugins/plugin_update_manager.rb +70 -0
- data/fastlane/lib/fastlane/plugins/plugins.rb +12 -0
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +35 -0
- data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +43 -0
- data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +29 -0
- data/fastlane/lib/fastlane/plugins/template/.gitignore +12 -0
- data/fastlane/lib/fastlane/plugins/template/.rspec +5 -0
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +188 -0
- data/fastlane/lib/fastlane/plugins/template/.travis.yml +4 -0
- data/fastlane/lib/fastlane/plugins/template/Gemfile +6 -0
- data/fastlane/lib/fastlane/plugins/template/LICENSE.erb +21 -0
- data/fastlane/lib/fastlane/plugins/template/README.md.erb +52 -0
- data/fastlane/lib/fastlane/plugins/template/Rakefile +9 -0
- data/fastlane/lib/fastlane/plugins/template/fastlane/Fastfile.erb +3 -0
- data/fastlane/lib/fastlane/plugins/template/fastlane/Pluginfile.erb +1 -0
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%.rb.erb +16 -0
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +47 -0
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +16 -0
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/version.rb.erb +5 -0
- data/fastlane/lib/fastlane/plugins/template/spec/%plugin_name%_action_spec.rb.erb +9 -0
- data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +15 -0
- data/fastlane/lib/fastlane/runner.rb +378 -0
- data/fastlane/lib/fastlane/server/action_command.rb +61 -0
- data/fastlane/lib/fastlane/server/action_command_return.rb +14 -0
- data/fastlane/lib/fastlane/server/command_executor.rb +7 -0
- data/fastlane/lib/fastlane/server/command_parser.rb +44 -0
- data/fastlane/lib/fastlane/server/control_command.rb +23 -0
- data/fastlane/lib/fastlane/server/json_return_value_processor.rb +72 -0
- data/fastlane/lib/fastlane/server/socket_server.rb +238 -0
- data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +101 -0
- data/fastlane/lib/fastlane/setup/setup.rb +355 -0
- data/fastlane/lib/fastlane/setup/setup_android.rb +97 -0
- data/fastlane/lib/fastlane/setup/setup_ios.rb +504 -0
- data/fastlane/lib/fastlane/shells.rb +6 -0
- data/fastlane/lib/fastlane/supported_platforms.rb +28 -0
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +477 -0
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +419 -0
- data/fastlane/lib/fastlane/swift_lane_manager.rb +296 -0
- data/fastlane/lib/fastlane/swift_runner_upgrader.rb +210 -0
- data/fastlane/lib/fastlane/tools.rb +33 -0
- data/fastlane/lib/fastlane/version.rb +6 -0
- data/fastlane/swift/Actions.swift +16 -0
- data/fastlane/swift/Appfile.swift +15 -0
- data/fastlane/swift/ArgumentProcessor.swift +89 -0
- data/fastlane/swift/ControlCommand.swift +74 -0
- data/fastlane/swift/Deliverfile.swift +20 -0
- data/fastlane/swift/DeliverfileProtocol.swift +259 -0
- data/fastlane/swift/Fastfile.swift +16 -0
- data/fastlane/swift/Fastlane.swift +9402 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +434 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +97 -0
- data/fastlane/swift/FastlaneSwiftRunner/README.txt +10 -0
- data/fastlane/swift/Gymfile.swift +20 -0
- data/fastlane/swift/GymfileProtocol.swift +187 -0
- data/fastlane/swift/LaneFileProtocol.swift +149 -0
- data/fastlane/swift/MainProcess.swift +77 -0
- data/fastlane/swift/Matchfile.swift +20 -0
- data/fastlane/swift/MatchfileProtocol.swift +187 -0
- data/fastlane/swift/Plugins.swift +16 -0
- data/fastlane/swift/Precheckfile.swift +20 -0
- data/fastlane/swift/PrecheckfileProtocol.swift +51 -0
- data/fastlane/swift/RubyCommand.swift +157 -0
- data/fastlane/swift/RubyCommandable.swift +43 -0
- data/fastlane/swift/Runner.swift +275 -0
- data/fastlane/swift/RunnerArgument.swift +20 -0
- data/fastlane/swift/Scanfile.swift +20 -0
- data/fastlane/swift/ScanfileProtocol.swift +263 -0
- data/fastlane/swift/Screengrabfile.swift +20 -0
- data/fastlane/swift/ScreengrabfileProtocol.swift +99 -0
- data/fastlane/swift/Snapshotfile.swift +20 -0
- data/fastlane/swift/SnapshotfileProtocol.swift +187 -0
- data/fastlane/swift/SocketClient.swift +327 -0
- data/fastlane/swift/SocketClientDelegateProtocol.swift +21 -0
- data/fastlane/swift/SocketResponse.swift +82 -0
- data/fastlane/swift/formatting/Brewfile +1 -0
- data/fastlane/swift/formatting/Brewfile.lock.json +47 -0
- data/fastlane/swift/formatting/Rakefile +18 -0
- data/fastlane/swift/main.swift +47 -0
- data/fastlane/swift/upgrade_manifest.json +1 -0
- data/fastlane_core/README.md +79 -0
- data/fastlane_core/lib/assets/XMLTemplate.xml.erb +12 -0
- data/fastlane_core/lib/fastlane_core.rb +46 -0
- data/fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb +34 -0
- data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +38 -0
- data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +23 -0
- data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +54 -0
- data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +70 -0
- data/fastlane_core/lib/fastlane_core/analytics/app_identifier_guesser.rb +64 -0
- data/fastlane_core/lib/fastlane_core/android_package_name_guesser.rb +79 -0
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +96 -0
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +144 -0
- data/fastlane_core/lib/fastlane_core/command_executor.rb +100 -0
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +103 -0
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +321 -0
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +332 -0
- data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +182 -0
- data/fastlane_core/lib/fastlane_core/core_ext/cfpropertylist.rb +23 -0
- data/fastlane_core/lib/fastlane_core/core_ext/shellwords.rb +63 -0
- data/fastlane_core/lib/fastlane_core/core_ext/string.rb +17 -0
- data/fastlane_core/lib/fastlane_core/device_manager.rb +374 -0
- data/fastlane_core/lib/fastlane_core/env.rb +9 -0
- data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +72 -0
- data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +57 -0
- data/fastlane_core/lib/fastlane_core/feature/feature.rb +51 -0
- data/fastlane_core/lib/fastlane_core/features.rb +4 -0
- data/fastlane_core/lib/fastlane_core/globals.rb +27 -0
- data/fastlane_core/lib/fastlane_core/helper.rb +437 -0
- data/fastlane_core/lib/fastlane_core/ios_app_identifier_guesser.rb +112 -0
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +63 -0
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +52 -0
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +595 -0
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +120 -0
- data/fastlane_core/lib/fastlane_core/languages.rb +16 -0
- data/fastlane_core/lib/fastlane_core/module.rb +31 -0
- data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +51 -0
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +48 -0
- data/fastlane_core/lib/fastlane_core/print_table.rb +131 -0
- data/fastlane_core/lib/fastlane_core/project.rb +509 -0
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +124 -0
- data/fastlane_core/lib/fastlane_core/string_filters.rb +51 -0
- data/fastlane_core/lib/fastlane_core/swag.rb +85 -0
- data/fastlane_core/lib/fastlane_core/tag_version.rb +31 -0
- data/fastlane_core/lib/fastlane_core/test_parser.rb +107 -0
- data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +17 -0
- data/fastlane_core/lib/fastlane_core/ui/errors.rb +1 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_common_error.rb +19 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_crash.rb +11 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_error.rb +25 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_exception.rb +19 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_shell_error.rb +11 -0
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +294 -0
- data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +62 -0
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +159 -0
- data/fastlane_core/lib/fastlane_core/ui/interface.rb +205 -0
- data/fastlane_core/lib/fastlane_core/ui/ui.rb +26 -0
- data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +37 -0
- data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +109 -0
- data/frameit/README.md +17 -0
- data/frameit/lib/assets/empty.png +0 -0
- data/frameit/lib/frameit.rb +13 -0
- data/frameit/lib/frameit/commands_generator.rb +140 -0
- data/frameit/lib/frameit/config_parser.rb +136 -0
- data/frameit/lib/frameit/dependency_checker.rb +22 -0
- data/frameit/lib/frameit/device.rb +90 -0
- data/frameit/lib/frameit/device_types.rb +144 -0
- data/frameit/lib/frameit/editor.rb +560 -0
- data/frameit/lib/frameit/frame_downloader.rb +85 -0
- data/frameit/lib/frameit/mac_editor.rb +35 -0
- data/frameit/lib/frameit/module.rb +42 -0
- data/frameit/lib/frameit/offsets.rb +28 -0
- data/frameit/lib/frameit/options.rb +112 -0
- data/frameit/lib/frameit/runner.rb +97 -0
- data/frameit/lib/frameit/screenshot.rb +134 -0
- data/frameit/lib/frameit/strings_parser.rb +46 -0
- data/frameit/lib/frameit/template_finder.rb +45 -0
- data/frameit/lib/frameit/trim_box.rb +35 -0
- data/gym/README.md +17 -0
- data/gym/lib/assets/GymfileTemplate +13 -0
- data/gym/lib/assets/GymfileTemplate.swift +13 -0
- data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +61 -0
- data/gym/lib/gym.rb +9 -0
- data/gym/lib/gym/code_signing_mapping.rb +210 -0
- data/gym/lib/gym/commands_generator.rb +78 -0
- data/gym/lib/gym/detect_values.rb +206 -0
- data/gym/lib/gym/error_handler.rb +306 -0
- data/gym/lib/gym/generators/README.md +1 -0
- data/gym/lib/gym/generators/build_command_generator.rb +147 -0
- data/gym/lib/gym/generators/package_command_generator.rb +68 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +232 -0
- data/gym/lib/gym/manager.rb +22 -0
- data/gym/lib/gym/module.rb +74 -0
- data/gym/lib/gym/options.rb +286 -0
- data/gym/lib/gym/runner.rb +365 -0
- data/gym/lib/gym/xcode.rb +27 -0
- data/gym/lib/gym/xcodebuild_fixes/README.md +9 -0
- data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +35 -0
- data/match/README.md +17 -0
- data/match/lib/assets/MatchfileTemplate +11 -0
- data/match/lib/assets/MatchfileTemplate.swift +9 -0
- data/match/lib/assets/READMETemplate.md +59 -0
- data/match/lib/match.rb +14 -0
- data/match/lib/match/change_password.rb +53 -0
- data/match/lib/match/commands_generator.rb +190 -0
- data/match/lib/match/encryption.rb +49 -0
- data/match/lib/match/encryption/interface.rb +17 -0
- data/match/lib/match/encryption/openssl.rb +161 -0
- data/match/lib/match/generator.rb +122 -0
- data/match/lib/match/importer.rb +157 -0
- data/match/lib/match/migrate.rb +109 -0
- data/match/lib/match/module.rb +32 -0
- data/match/lib/match/nuke.rb +350 -0
- data/match/lib/match/options.rb +315 -0
- data/match/lib/match/runner.rb +369 -0
- data/match/lib/match/setup.rb +40 -0
- data/match/lib/match/spaceship_ensure.rb +97 -0
- data/match/lib/match/storage.rb +46 -0
- data/match/lib/match/storage/git_storage.rb +250 -0
- data/match/lib/match/storage/google_cloud_storage.rb +382 -0
- data/match/lib/match/storage/interface.rb +119 -0
- data/match/lib/match/storage/s3_storage.rb +205 -0
- data/match/lib/match/table_printer.rb +51 -0
- data/match/lib/match/utils.rb +75 -0
- data/pem/README.md +17 -0
- data/pem/lib/pem.rb +4 -0
- data/pem/lib/pem/commands_generator.rb +47 -0
- data/pem/lib/pem/manager.rb +112 -0
- data/pem/lib/pem/module.rb +19 -0
- data/pem/lib/pem/options.rb +103 -0
- data/pilot/README.md +17 -0
- data/pilot/lib/pilot.rb +9 -0
- data/pilot/lib/pilot/build_manager.rb +546 -0
- data/pilot/lib/pilot/commands_generator.rb +174 -0
- data/pilot/lib/pilot/features.rb +0 -0
- data/pilot/lib/pilot/manager.rb +90 -0
- data/pilot/lib/pilot/module.rb +11 -0
- data/pilot/lib/pilot/options.rb +303 -0
- data/pilot/lib/pilot/tester_exporter.rb +58 -0
- data/pilot/lib/pilot/tester_importer.rb +53 -0
- data/pilot/lib/pilot/tester_manager.rb +168 -0
- data/pilot/lib/pilot/tester_util.rb +0 -0
- data/precheck/README.md +17 -0
- data/precheck/lib/assets/PrecheckfileTemplate +27 -0
- data/precheck/lib/assets/PrecheckfileTemplate.swift +19 -0
- data/precheck/lib/precheck.rb +3 -0
- data/precheck/lib/precheck/commands_generator.rb +74 -0
- data/precheck/lib/precheck/item_to_check.rb +58 -0
- data/precheck/lib/precheck/module.rb +21 -0
- data/precheck/lib/precheck/options.rb +104 -0
- data/precheck/lib/precheck/rule.rb +171 -0
- data/precheck/lib/precheck/rule_check_result.rb +19 -0
- data/precheck/lib/precheck/rule_processor.rb +265 -0
- data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +80 -0
- data/precheck/lib/precheck/rules/all.rb +1 -0
- data/precheck/lib/precheck/rules/copyright_date_rule.rb +37 -0
- data/precheck/lib/precheck/rules/curse_words_rule.rb +62 -0
- data/precheck/lib/precheck/rules/custom_text_rule.rb +35 -0
- data/precheck/lib/precheck/rules/free_stuff_iap_rule.rb +31 -0
- data/precheck/lib/precheck/rules/future_functionality_rule.rb +33 -0
- data/precheck/lib/precheck/rules/negative_apple_sentiment_rule.rb +37 -0
- data/precheck/lib/precheck/rules/other_platforms_rule.rb +43 -0
- data/precheck/lib/precheck/rules/placeholder_words_rule.rb +31 -0
- data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/en_us.txt +349 -0
- data/precheck/lib/precheck/rules/test_words_rule.rb +30 -0
- data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +47 -0
- data/precheck/lib/precheck/runner.rb +197 -0
- data/produce/README.md +17 -0
- data/produce/lib/produce.rb +6 -0
- data/produce/lib/produce/available_default_languages.rb +51 -0
- data/produce/lib/produce/cloud_container.rb +82 -0
- data/produce/lib/produce/commands_generator.rb +236 -0
- data/produce/lib/produce/developer_center.rb +143 -0
- data/produce/lib/produce/group.rb +90 -0
- data/produce/lib/produce/itunes_connect.rb +139 -0
- data/produce/lib/produce/manager.rb +15 -0
- data/produce/lib/produce/merchant.rb +121 -0
- data/produce/lib/produce/module.rb +14 -0
- data/produce/lib/produce/options.rb +184 -0
- data/produce/lib/produce/service.rb +319 -0
- data/scan/README.md +17 -0
- data/scan/lib/assets/ScanfileTemplate +16 -0
- data/scan/lib/assets/ScanfileTemplate.swift +13 -0
- data/scan/lib/scan.rb +10 -0
- data/scan/lib/scan/commands_generator.rb +78 -0
- data/scan/lib/scan/detect_values.rb +224 -0
- data/scan/lib/scan/error_handler.rb +57 -0
- data/scan/lib/scan/manager.rb +38 -0
- data/scan/lib/scan/module.rb +32 -0
- data/scan/lib/scan/options.rb +445 -0
- data/scan/lib/scan/runner.rb +197 -0
- data/scan/lib/scan/slack_poster.rb +60 -0
- data/scan/lib/scan/test_command_generator.rb +174 -0
- data/scan/lib/scan/test_result_parser.rb +33 -0
- data/scan/lib/scan/xcpretty_reporter_options_generator.rb +85 -0
- data/screengrab/README.md +17 -0
- data/screengrab/lib/assets/ScreengrabfileTemplate +15 -0
- data/screengrab/lib/assets/ScreengrabfileTemplate.swift +15 -0
- data/screengrab/lib/screengrab.rb +7 -0
- data/screengrab/lib/screengrab/android_environment.rb +91 -0
- data/screengrab/lib/screengrab/commands_generator.rb +70 -0
- data/screengrab/lib/screengrab/dependency_checker.rb +58 -0
- data/screengrab/lib/screengrab/detect_values.rb +16 -0
- data/screengrab/lib/screengrab/module.rb +26 -0
- data/screengrab/lib/screengrab/options.rb +148 -0
- data/screengrab/lib/screengrab/page.html.erb +190 -0
- data/screengrab/lib/screengrab/reports_generator.rb +36 -0
- data/screengrab/lib/screengrab/runner.rb +449 -0
- data/screengrab/lib/screengrab/setup.rb +24 -0
- data/sigh/README.md +17 -0
- data/sigh/lib/assets/resign.sh +909 -0
- data/sigh/lib/sigh.rb +4 -0
- data/sigh/lib/sigh/commands_generator.rb +154 -0
- data/sigh/lib/sigh/download_all.rb +112 -0
- data/sigh/lib/sigh/local_manage.rb +145 -0
- data/sigh/lib/sigh/manager.rb +47 -0
- data/sigh/lib/sigh/module.rb +42 -0
- data/sigh/lib/sigh/options.rb +187 -0
- data/sigh/lib/sigh/repair.rb +34 -0
- data/sigh/lib/sigh/resign.rb +220 -0
- data/sigh/lib/sigh/runner.rb +402 -0
- data/snapshot/README.md +17 -0
- data/snapshot/lib/assets/SnapfileTemplate +37 -0
- data/snapshot/lib/assets/SnapfileTemplate.swift +41 -0
- data/snapshot/lib/assets/SnapshotHelper.swift +301 -0
- data/snapshot/lib/assets/SnapshotHelperXcode8.swift +172 -0
- data/snapshot/lib/snapshot.rb +19 -0
- data/snapshot/lib/snapshot/collector.rb +140 -0
- data/snapshot/lib/snapshot/commands_generator.rb +115 -0
- data/snapshot/lib/snapshot/dependency_checker.rb +69 -0
- data/snapshot/lib/snapshot/detect_values.rb +86 -0
- data/snapshot/lib/snapshot/error_handler.rb +24 -0
- data/snapshot/lib/snapshot/fixes/README.md +5 -0
- data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +27 -0
- data/snapshot/lib/snapshot/fixes/simulator_shared_pasteboard.rb +16 -0
- data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +27 -0
- data/snapshot/lib/snapshot/latest_os_version.rb +34 -0
- data/snapshot/lib/snapshot/module.rb +44 -0
- data/snapshot/lib/snapshot/options.rb +290 -0
- data/snapshot/lib/snapshot/page.html.erb +285 -0
- data/snapshot/lib/snapshot/reports_generator.rb +139 -0
- data/snapshot/lib/snapshot/reset_simulators.rb +122 -0
- data/snapshot/lib/snapshot/runner.rb +146 -0
- data/snapshot/lib/snapshot/screenshot_flatten.rb +20 -0
- data/snapshot/lib/snapshot/screenshot_rotate.rb +36 -0
- data/snapshot/lib/snapshot/setup.rb +58 -0
- data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +62 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +219 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +200 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +113 -0
- data/snapshot/lib/snapshot/test_command_generator.rb +108 -0
- data/snapshot/lib/snapshot/test_command_generator_base.rb +128 -0
- data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +70 -0
- data/snapshot/lib/snapshot/update.rb +38 -0
- data/spaceship/README.md +183 -0
- data/spaceship/lib/assets/displayFamilies.json +181 -0
- data/spaceship/lib/assets/languageMapping.json +306 -0
- data/spaceship/lib/assets/languageMappingReadable.json +30 -0
- data/spaceship/lib/spaceship.rb +30 -0
- data/spaceship/lib/spaceship/base.rb +310 -0
- data/spaceship/lib/spaceship/client.rb +913 -0
- data/spaceship/lib/spaceship/commands_generator.rb +53 -0
- data/spaceship/lib/spaceship/connect_api.rb +116 -0
- data/spaceship/lib/spaceship/connect_api/api_client.rb +279 -0
- data/spaceship/lib/spaceship/connect_api/client.rb +216 -0
- data/spaceship/lib/spaceship/connect_api/file_uploader.rb +99 -0
- data/spaceship/lib/spaceship/connect_api/model.rb +172 -0
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +114 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +388 -0
- data/spaceship/lib/spaceship/connect_api/models/app_category.rb +94 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +95 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +39 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +131 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +100 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price.rb +22 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price_point.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/app_price_tier.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +187 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +153 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb +71 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +51 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +217 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +85 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_phased_release.rb +57 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_release_request.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_app_localization.rb +28 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_app_review_detail.rb +32 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_build_localization.rb +20 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_build_metric.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +75 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +41 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_screenshot.rb +18 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +57 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +44 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +172 -0
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +61 -0
- data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +36 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +58 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +71 -0
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +102 -0
- data/spaceship/lib/spaceship/connect_api/models/custom_app_organization.rb +43 -0
- data/spaceship/lib/spaceship/connect_api/models/custom_app_user.rb +41 -0
- data/spaceship/lib/spaceship/connect_api/models/device.rb +58 -0
- data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +41 -0
- data/spaceship/lib/spaceship/connect_api/models/pre_release_version.rb +20 -0
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +97 -0
- data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb +64 -0
- data/spaceship/lib/spaceship/connect_api/models/territory.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/models/user.rb +51 -0
- data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +59 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +92 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +143 -0
- data/spaceship/lib/spaceship/connect_api/response.rb +67 -0
- data/spaceship/lib/spaceship/connect_api/spaceship.rb +102 -0
- data/spaceship/lib/spaceship/connect_api/testflight/client.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +391 -0
- data/spaceship/lib/spaceship/connect_api/token.rb +102 -0
- data/spaceship/lib/spaceship/connect_api/token_refresh_middleware.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/tunes/client.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +1045 -0
- data/spaceship/lib/spaceship/connect_api/users/client.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/users/users.rb +80 -0
- data/spaceship/lib/spaceship/du/du_client.rb +138 -0
- data/spaceship/lib/spaceship/du/upload_file.rb +58 -0
- data/spaceship/lib/spaceship/du/utilities.rb +99 -0
- data/spaceship/lib/spaceship/errors.rb +82 -0
- data/spaceship/lib/spaceship/globals.rb +12 -0
- data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +20 -0
- data/spaceship/lib/spaceship/helper/plist_middleware.rb +16 -0
- data/spaceship/lib/spaceship/helper/rels_middleware.rb +28 -0
- data/spaceship/lib/spaceship/launcher.rb +99 -0
- data/spaceship/lib/spaceship/module.rb +8 -0
- data/spaceship/lib/spaceship/playground.rb +75 -0
- data/spaceship/lib/spaceship/portal/app.rb +201 -0
- data/spaceship/lib/spaceship/portal/app_group.rb +73 -0
- data/spaceship/lib/spaceship/portal/app_service.rb +87 -0
- data/spaceship/lib/spaceship/portal/certificate.rb +365 -0
- data/spaceship/lib/spaceship/portal/cloud_container.rb +74 -0
- data/spaceship/lib/spaceship/portal/device.rb +191 -0
- data/spaceship/lib/spaceship/portal/invite.rb +53 -0
- data/spaceship/lib/spaceship/portal/key.rb +101 -0
- data/spaceship/lib/spaceship/portal/legacy_wrapper.rb +21 -0
- data/spaceship/lib/spaceship/portal/merchant.rb +86 -0
- data/spaceship/lib/spaceship/portal/passbook.rb +78 -0
- data/spaceship/lib/spaceship/portal/person.rb +62 -0
- data/spaceship/lib/spaceship/portal/persons.rb +67 -0
- data/spaceship/lib/spaceship/portal/portal.rb +17 -0
- data/spaceship/lib/spaceship/portal/portal_base.rb +16 -0
- data/spaceship/lib/spaceship/portal/portal_client.rb +862 -0
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +559 -0
- data/spaceship/lib/spaceship/portal/provisioning_profile_template.rb +52 -0
- data/spaceship/lib/spaceship/portal/spaceship.rb +154 -0
- data/spaceship/lib/spaceship/portal/ui/select_team.rb +116 -0
- data/spaceship/lib/spaceship/portal/website_push.rb +88 -0
- data/spaceship/lib/spaceship/provider.rb +13 -0
- data/spaceship/lib/spaceship/spaceauth_runner.rb +74 -0
- data/spaceship/lib/spaceship/stats_middleware.rb +65 -0
- data/spaceship/lib/spaceship/test_flight.rb +10 -0
- data/spaceship/lib/spaceship/test_flight/app_test_info.rb +40 -0
- data/spaceship/lib/spaceship/test_flight/base.rb +39 -0
- data/spaceship/lib/spaceship/test_flight/beta_review_info.rb +19 -0
- data/spaceship/lib/spaceship/test_flight/build.rb +242 -0
- data/spaceship/lib/spaceship/test_flight/build_trains.rb +50 -0
- data/spaceship/lib/spaceship/test_flight/client.rb +361 -0
- data/spaceship/lib/spaceship/test_flight/export_compliance.rb +12 -0
- data/spaceship/lib/spaceship/test_flight/group.rb +131 -0
- data/spaceship/lib/spaceship/test_flight/test_info.rb +56 -0
- data/spaceship/lib/spaceship/test_flight/tester.rb +136 -0
- data/spaceship/lib/spaceship/tunes/app_analytics.rb +168 -0
- data/spaceship/lib/spaceship/tunes/app_details.rb +147 -0
- data/spaceship/lib/spaceship/tunes/app_image.rb +51 -0
- data/spaceship/lib/spaceship/tunes/app_ratings.rb +58 -0
- data/spaceship/lib/spaceship/tunes/app_review.rb +55 -0
- data/spaceship/lib/spaceship/tunes/app_review_attachment.rb +49 -0
- data/spaceship/lib/spaceship/tunes/app_screenshot.rb +12 -0
- data/spaceship/lib/spaceship/tunes/app_status.rb +63 -0
- data/spaceship/lib/spaceship/tunes/app_submission.rb +161 -0
- data/spaceship/lib/spaceship/tunes/app_trailer.rb +64 -0
- data/spaceship/lib/spaceship/tunes/app_version.rb +970 -0
- data/spaceship/lib/spaceship/tunes/app_version_common.rb +35 -0
- data/spaceship/lib/spaceship/tunes/app_version_generated_promocodes.rb +28 -0
- data/spaceship/lib/spaceship/tunes/app_version_history.rb +52 -0
- data/spaceship/lib/spaceship/tunes/app_version_promocodes.rb +27 -0
- data/spaceship/lib/spaceship/tunes/app_version_ref.rb +15 -0
- data/spaceship/lib/spaceship/tunes/app_version_states_history.rb +27 -0
- data/spaceship/lib/spaceship/tunes/application.rb +453 -0
- data/spaceship/lib/spaceship/tunes/availability.rb +164 -0
- data/spaceship/lib/spaceship/tunes/b2b_organization.rb +50 -0
- data/spaceship/lib/spaceship/tunes/b2b_user.rb +30 -0
- data/spaceship/lib/spaceship/tunes/build.rb +263 -0
- data/spaceship/lib/spaceship/tunes/build_details.rb +184 -0
- data/spaceship/lib/spaceship/tunes/build_train.rb +181 -0
- data/spaceship/lib/spaceship/tunes/developer_response.rb +23 -0
- data/spaceship/lib/spaceship/tunes/device_type.rb +17 -0
- data/spaceship/lib/spaceship/tunes/display_family.rb +84 -0
- data/spaceship/lib/spaceship/tunes/errors.rb +17 -0
- data/spaceship/lib/spaceship/tunes/iap.rb +168 -0
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +264 -0
- data/spaceship/lib/spaceship/tunes/iap_families.rb +68 -0
- data/spaceship/lib/spaceship/tunes/iap_family_details.rb +90 -0
- data/spaceship/lib/spaceship/tunes/iap_family_list.rb +28 -0
- data/spaceship/lib/spaceship/tunes/iap_list.rb +76 -0
- data/spaceship/lib/spaceship/tunes/iap_status.rb +56 -0
- data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_info.rb +46 -0
- data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_tier.rb +25 -0
- data/spaceship/lib/spaceship/tunes/iap_type.rb +45 -0
- data/spaceship/lib/spaceship/tunes/language_converter.rb +65 -0
- data/spaceship/lib/spaceship/tunes/language_item.rb +61 -0
- data/spaceship/lib/spaceship/tunes/legacy_wrapper.rb +13 -0
- data/spaceship/lib/spaceship/tunes/member.rb +84 -0
- data/spaceship/lib/spaceship/tunes/members.rb +35 -0
- data/spaceship/lib/spaceship/tunes/pricing_info.rb +42 -0
- data/spaceship/lib/spaceship/tunes/pricing_tier.rb +25 -0
- data/spaceship/lib/spaceship/tunes/sandbox_tester.rb +74 -0
- data/spaceship/lib/spaceship/tunes/spaceship.rb +39 -0
- data/spaceship/lib/spaceship/tunes/territory.rb +39 -0
- data/spaceship/lib/spaceship/tunes/transit_app_file.rb +23 -0
- data/spaceship/lib/spaceship/tunes/tunes.rb +35 -0
- data/spaceship/lib/spaceship/tunes/tunes_base.rb +17 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +1644 -0
- data/spaceship/lib/spaceship/tunes/user_detail.rb +15 -0
- data/spaceship/lib/spaceship/tunes/version_set.rb +26 -0
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +346 -0
- data/spaceship/lib/spaceship/ui.rb +27 -0
- data/supply/README.md +17 -0
- data/supply/lib/supply.rb +53 -0
- data/supply/lib/supply/apk_listing.rb +14 -0
- data/supply/lib/supply/client.rb +551 -0
- data/supply/lib/supply/commands_generator.rb +67 -0
- data/supply/lib/supply/languages.rb +88 -0
- data/supply/lib/supply/listing.rb +32 -0
- data/supply/lib/supply/options.rb +324 -0
- data/supply/lib/supply/reader.rb +41 -0
- data/supply/lib/supply/release_listing.rb +18 -0
- data/supply/lib/supply/setup.rb +122 -0
- data/supply/lib/supply/uploader.rb +480 -0
- metadata +1832 -0
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'commander'
|
2
|
+
|
3
|
+
require 'fastlane_core/configuration/configuration'
|
4
|
+
require_relative 'module'
|
5
|
+
require_relative 'manager'
|
6
|
+
require_relative 'options'
|
7
|
+
|
8
|
+
HighLine.track_eof = false
|
9
|
+
|
10
|
+
module Gym
|
11
|
+
class CommandsGenerator
|
12
|
+
include Commander::Methods
|
13
|
+
|
14
|
+
def self.start
|
15
|
+
new.run
|
16
|
+
end
|
17
|
+
|
18
|
+
def convert_options(options)
|
19
|
+
o = options.__hash__.dup
|
20
|
+
o.delete(:verbose)
|
21
|
+
o
|
22
|
+
end
|
23
|
+
|
24
|
+
def run
|
25
|
+
program :name, 'gym'
|
26
|
+
program :version, Fastlane::VERSION
|
27
|
+
program :description, Gym::DESCRIPTION
|
28
|
+
program :help, "Author", "Felix Krause <gym@krausefx.com>"
|
29
|
+
program :help, "Website", "https://fastlane.tools"
|
30
|
+
program :help, "Documentation", "https://docs.fastlane.tools/actions/gym/"
|
31
|
+
program :help_formatter, :compact
|
32
|
+
|
33
|
+
global_option("--verbose") { FastlaneCore::Globals.verbose = true }
|
34
|
+
|
35
|
+
command :build do |c|
|
36
|
+
c.syntax = "fastlane gym"
|
37
|
+
c.description = "Build your iOS/macOS app"
|
38
|
+
|
39
|
+
FastlaneCore::CommanderGenerator.new.generate(Gym::Options.available_options, command: c)
|
40
|
+
|
41
|
+
c.action do |_args, options|
|
42
|
+
config = FastlaneCore::Configuration.create(Gym::Options.available_options,
|
43
|
+
convert_options(options))
|
44
|
+
Gym::Manager.new.work(config)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
command :init do |c|
|
49
|
+
c.syntax = "fastlane gym init"
|
50
|
+
c.description = "Creates a new Gymfile for you"
|
51
|
+
c.action do |args, options|
|
52
|
+
containing = FastlaneCore::Helper.fastlane_enabled_folder_path
|
53
|
+
path = File.join(containing, Gym.gymfile_name)
|
54
|
+
UI.user_error!("Gymfile already exists") if File.exist?(path)
|
55
|
+
|
56
|
+
is_swift_fastfile = args.include?("swift")
|
57
|
+
if is_swift_fastfile
|
58
|
+
path = File.join(containing, Gym.gymfile_name + ".swift")
|
59
|
+
UI.user_error!("Gymfile.swift already exists") if File.exist?(path)
|
60
|
+
end
|
61
|
+
|
62
|
+
if is_swift_fastfile
|
63
|
+
template = File.read("#{Gym::ROOT}/lib/assets/GymfileTemplate.swift")
|
64
|
+
else
|
65
|
+
template = File.read("#{Gym::ROOT}/lib/assets/GymfileTemplate")
|
66
|
+
end
|
67
|
+
|
68
|
+
File.write(path, template)
|
69
|
+
UI.success("Successfully created '#{path}'. Open the file using a code editor.")
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
default_command(:build)
|
74
|
+
|
75
|
+
run!
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,206 @@
|
|
1
|
+
require 'fastlane_core/core_ext/cfpropertylist'
|
2
|
+
require 'fastlane_core/project'
|
3
|
+
require_relative 'module'
|
4
|
+
require_relative 'code_signing_mapping'
|
5
|
+
|
6
|
+
module Gym
|
7
|
+
# This class detects all kinds of default values
|
8
|
+
class DetectValues
|
9
|
+
# This is needed as these are more complex default values
|
10
|
+
# Returns the finished config object
|
11
|
+
def self.set_additional_default_values
|
12
|
+
config = Gym.config
|
13
|
+
|
14
|
+
# First, try loading the Gymfile from the current directory
|
15
|
+
config.load_configuration_file(Gym.gymfile_name)
|
16
|
+
|
17
|
+
# Detect the project
|
18
|
+
FastlaneCore::Project.detect_projects(config)
|
19
|
+
Gym.project = FastlaneCore::Project.new(config)
|
20
|
+
|
21
|
+
# Go into the project's folder, as there might be a Gymfile there
|
22
|
+
project_path = File.expand_path("..", Gym.project.path)
|
23
|
+
unless File.expand_path(".") == project_path
|
24
|
+
Dir.chdir(project_path) do
|
25
|
+
config.load_configuration_file(Gym.gymfile_name)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
ensure_export_options_is_hash
|
30
|
+
|
31
|
+
detect_scheme
|
32
|
+
detect_platform # we can only do that *after* we have the scheme
|
33
|
+
detect_selected_provisioning_profiles # we can only do that *after* we have the platform
|
34
|
+
detect_configuration
|
35
|
+
detect_toolchain
|
36
|
+
detect_third_party_installer
|
37
|
+
|
38
|
+
config[:output_name] ||= Gym.project.app_name
|
39
|
+
|
40
|
+
config[:build_path] ||= archive_path_from_local_xcode_preferences
|
41
|
+
|
42
|
+
# Make sure the output name is valid and remove a trailing `.ipa` extension
|
43
|
+
# as it will be added by gym for free
|
44
|
+
config[:output_name].gsub!(".ipa", "")
|
45
|
+
config[:output_name].gsub!(File::SEPARATOR, "_")
|
46
|
+
|
47
|
+
return config
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.archive_path_from_local_xcode_preferences
|
51
|
+
day = Time.now.strftime("%F") # e.g. 2015-08-07
|
52
|
+
archive_path = File.expand_path("~/Library/Developer/Xcode/Archives/#{day}/")
|
53
|
+
|
54
|
+
return archive_path unless has_xcode_preferences_plist?
|
55
|
+
|
56
|
+
custom_archive_path = xcode_preferences_dictionary['IDECustomDistributionArchivesLocation']
|
57
|
+
return archive_path if custom_archive_path.to_s.length == 0
|
58
|
+
|
59
|
+
return File.join(custom_archive_path, day)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Helper Methods
|
63
|
+
|
64
|
+
# this file only exists when you edit the Xcode preferences to set custom values
|
65
|
+
def self.has_xcode_preferences_plist?
|
66
|
+
File.exist?(xcode_preference_plist_path)
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.xcode_preference_plist_path
|
70
|
+
File.expand_path("~/Library/Preferences/com.apple.dt.Xcode.plist")
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.xcode_preferences_dictionary(path = xcode_preference_plist_path)
|
74
|
+
CFPropertyList.native_types(CFPropertyList::List.new(file: path).value)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Since Xcode 9 you need to provide the explicit mapping of what provisioning profile to use for
|
78
|
+
# each target of your app
|
79
|
+
def self.detect_selected_provisioning_profiles
|
80
|
+
Gym.config[:export_options] ||= {}
|
81
|
+
hash_to_use = (Gym.config[:export_options][:provisioningProfiles] || {}).dup || {} # dup so we can show the original values in `verbose` mode
|
82
|
+
|
83
|
+
unless Gym.config[:skip_profile_detection]
|
84
|
+
mapping_object = CodeSigningMapping.new(project: Gym.project)
|
85
|
+
hash_to_use = mapping_object.merge_profile_mapping(primary_mapping: hash_to_use,
|
86
|
+
export_method: Gym.config[:export_method])
|
87
|
+
end
|
88
|
+
|
89
|
+
return if hash_to_use.count == 0 # We don't want to set a mapping if we don't have one
|
90
|
+
Gym.config[:export_options][:provisioningProfiles] = hash_to_use
|
91
|
+
UI.message("Detected provisioning profile mapping: #{hash_to_use}")
|
92
|
+
rescue => ex
|
93
|
+
# We don't want to fail the build if the automatic detection doesn't work
|
94
|
+
# especially since the mapping is optional for pre Xcode 9 setups
|
95
|
+
if Helper.xcode_at_least?("9.0")
|
96
|
+
UI.error("Couldn't automatically detect the provisioning profile mapping")
|
97
|
+
UI.error("Since Xcode 9 you need to provide an explicit mapping of what")
|
98
|
+
UI.error("provisioning profile to use for each target of your app")
|
99
|
+
UI.error(ex)
|
100
|
+
UI.verbose(ex.backtrace.join("\n"))
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
# Detects name of a "3rd Party Mac Developer Installer" cert for the configured team id
|
105
|
+
def self.detect_third_party_installer
|
106
|
+
return if Gym.config[:installer_cert_name]
|
107
|
+
|
108
|
+
team_id = Gym.config[:export_team_id] || Gym.project.build_settings(key: "DEVELOPMENT_TEAM")
|
109
|
+
return if team_id.nil?
|
110
|
+
|
111
|
+
case Gym.config[:export_method]
|
112
|
+
when "app-store"
|
113
|
+
prefix = "3rd Party Mac Developer Installer: "
|
114
|
+
when "developer-id"
|
115
|
+
prefix = "Developer ID Installer: "
|
116
|
+
else
|
117
|
+
return
|
118
|
+
end
|
119
|
+
|
120
|
+
output = Helper.backticks("security find-certificate -a -c \"#{prefix}\"", print: false)
|
121
|
+
|
122
|
+
# Find matches, filter by team_id, prepend prefix for full cert name
|
123
|
+
certs = output.scan(/"(?:#{prefix})(.*)"/)
|
124
|
+
certs = certs.flatten.uniq.select do |cert|
|
125
|
+
cert.include?(team_id)
|
126
|
+
end.map do |cert|
|
127
|
+
prefix + cert
|
128
|
+
end
|
129
|
+
|
130
|
+
if certs.first
|
131
|
+
UI.verbose("Detected installer certificate to use: #{certs.first}")
|
132
|
+
Gym.config[:installer_cert_name] = certs.first
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def self.detect_scheme
|
137
|
+
Gym.project.select_scheme
|
138
|
+
end
|
139
|
+
|
140
|
+
def self.min_xcode8?
|
141
|
+
Helper.xcode_at_least?("8.0")
|
142
|
+
end
|
143
|
+
|
144
|
+
# Is it an iOS device or a Mac?
|
145
|
+
def self.detect_platform
|
146
|
+
return if Gym.config[:destination]
|
147
|
+
|
148
|
+
platform = if Gym.project.tvos?
|
149
|
+
"tvOS"
|
150
|
+
elsif Gym.building_for_ios?
|
151
|
+
"iOS"
|
152
|
+
elsif Gym.building_for_mac?
|
153
|
+
min_xcode8? ? "macOS" : "OS X"
|
154
|
+
else
|
155
|
+
"iOS"
|
156
|
+
end
|
157
|
+
Gym.config[:destination] = "generic/platform=#{platform}"
|
158
|
+
end
|
159
|
+
|
160
|
+
# Detects the available configurations (e.g. Debug, Release)
|
161
|
+
def self.detect_configuration
|
162
|
+
config = Gym.config
|
163
|
+
configurations = Gym.project.configurations
|
164
|
+
return if configurations.count == 0 # this is an optional value anyway
|
165
|
+
|
166
|
+
if config[:configuration]
|
167
|
+
# Verify the configuration is available
|
168
|
+
unless configurations.include?(config[:configuration])
|
169
|
+
UI.error("Couldn't find specified configuration '#{config[:configuration]}'.")
|
170
|
+
config[:configuration] = nil
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
# The toolchain parameter is used if you don't use the default toolchain of Xcode (e.g. Swift 2.3 with Xcode 8)
|
176
|
+
def self.detect_toolchain
|
177
|
+
return unless Gym.config[:toolchain]
|
178
|
+
|
179
|
+
# Convert the aliases to the full string to make it easier for the user #justfastlanethings
|
180
|
+
if Gym.config[:toolchain].to_s == "swift_2_3"
|
181
|
+
Gym.config[:toolchain] = "com.apple.dt.toolchain.Swift_2_3"
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
def self.ensure_export_options_is_hash
|
186
|
+
return if Gym.config[:export_options].nil? || Gym.config[:export_options].kind_of?(Hash)
|
187
|
+
|
188
|
+
# Reads options from file
|
189
|
+
plist_file_path = Gym.config[:export_options]
|
190
|
+
UI.user_error!("Couldn't find plist file at path #{File.expand_path(plist_file_path)}") unless File.exist?(plist_file_path)
|
191
|
+
hash = Plist.parse_xml(plist_file_path)
|
192
|
+
UI.user_error!("Couldn't read provided plist at path #{File.expand_path(plist_file_path)}") if hash.nil?
|
193
|
+
# Convert keys to symbols
|
194
|
+
Gym.config[:export_options] = keys_to_symbols(hash)
|
195
|
+
end
|
196
|
+
|
197
|
+
def self.keys_to_symbols(hash)
|
198
|
+
# Convert keys to symbols
|
199
|
+
hash = hash.each_with_object({}) do |(k, v), memo|
|
200
|
+
memo[k.b.to_s.to_sym] = v
|
201
|
+
memo
|
202
|
+
end
|
203
|
+
hash
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
@@ -0,0 +1,306 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'fastlane_core/print_table'
|
4
|
+
require_relative 'module'
|
5
|
+
|
6
|
+
module Gym
|
7
|
+
# This classes methods are called when something goes wrong in the building process
|
8
|
+
class ErrorHandler
|
9
|
+
class << self
|
10
|
+
# @param [String] The output of the errored build
|
11
|
+
# This method should raise an exception in any case, as the return code indicated a failed build
|
12
|
+
def handle_build_error(output)
|
13
|
+
# The order of the handling below is important
|
14
|
+
case output
|
15
|
+
when /Your build settings specify a provisioning profile with the UUID/
|
16
|
+
print("Invalid code signing settings")
|
17
|
+
print("Your project defines a provisioning profile which doesn't exist on your local machine")
|
18
|
+
print("You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile")
|
19
|
+
print("Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
|
20
|
+
when /Provisioning profile does not match bundle identifier/
|
21
|
+
print("Invalid code signing settings")
|
22
|
+
print("Your project defines a provisioning profile that doesn't match the bundle identifier of your app")
|
23
|
+
print("Make sure you use the correct provisioning profile for this app")
|
24
|
+
print("Take a look at the ouptput above for more information")
|
25
|
+
print("You can follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
|
26
|
+
when /provisioning profiles matching the bundle identifier .(.*)./ # the . around the (.*) are for the strange "
|
27
|
+
print("You don't have the provisioning profile for '#{$1}' installed on the local machine")
|
28
|
+
print("Make sure you have the profile on this computer and it's properly installed")
|
29
|
+
print("You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile")
|
30
|
+
print("Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
|
31
|
+
when /matching the bundle identifier .(.*). were found/ # the . around the (.*) are for the strange "
|
32
|
+
print("You don't have a provisioning profile for the bundle identifier '#{$1}' installed on the local machine")
|
33
|
+
print("Make sure you have the profile on this computer and it's properly installed")
|
34
|
+
print("You can use sigh (https://docs.fastlane.tools/actions/sigh/) to download and install the provisioning profile")
|
35
|
+
print("Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
|
36
|
+
|
37
|
+
# Insert more code signing specific errors here
|
38
|
+
when /code signing is required/
|
39
|
+
print("Your project settings define invalid code signing settings")
|
40
|
+
print("To generate an ipa file you need to enable code signing for your project")
|
41
|
+
print("Additionally make sure you have a code signing identity set")
|
42
|
+
print("Follow this guide: https://docs.fastlane.tools/codesigning/GettingStarted/")
|
43
|
+
when /US\-ASCII/
|
44
|
+
print("Your shell environment is not correctly configured")
|
45
|
+
print("Instead of UTF-8 your shell uses US-ASCII")
|
46
|
+
print("Please add the following to your '~/.bashrc':")
|
47
|
+
print("")
|
48
|
+
print(" export LANG=en_US.UTF-8")
|
49
|
+
print(" export LANGUAGE=en_US.UTF-8")
|
50
|
+
print(" export LC_ALL=en_US.UTF-8")
|
51
|
+
print("")
|
52
|
+
print("You'll have to restart your shell session after updating the file.")
|
53
|
+
print("If you are using zshell or another shell, make sure to edit the correct bash file.")
|
54
|
+
print("For more information visit this stackoverflow answer:")
|
55
|
+
print("https://stackoverflow.com/a/17031697/445598")
|
56
|
+
end
|
57
|
+
print_xcode_path_instructions
|
58
|
+
print_xcode_version
|
59
|
+
print_full_log_path
|
60
|
+
print_environment_information
|
61
|
+
print_build_error_instructions
|
62
|
+
|
63
|
+
# This error is rather common and should be below the other (a little noisy) output
|
64
|
+
case output
|
65
|
+
when /Code signing is required for product/
|
66
|
+
print("Seems like Xcode is not happy with the code signing setup")
|
67
|
+
print("Please make sure to check out the raw `xcodebuild` output")
|
68
|
+
UI.important(Gym::BuildCommandGenerator.xcodebuild_log_path)
|
69
|
+
print("The very bottom of the file will tell you the raw Xcode error message")
|
70
|
+
print("indicating on why the code signing step failed")
|
71
|
+
end
|
72
|
+
|
73
|
+
UI.build_failure!("Error building the application - see the log above", error_info: output)
|
74
|
+
end
|
75
|
+
|
76
|
+
# @param [Array] The output of the errored build (line by line)
|
77
|
+
# This method should raise an exception in any case, as the return code indicated a failed build
|
78
|
+
def handle_package_error(output)
|
79
|
+
case output
|
80
|
+
when /single\-bundle/
|
81
|
+
print("Your project does not contain a single–bundle application or contains multiple products")
|
82
|
+
print("Please read the documentation provided by Apple: https://developer.apple.com/library/ios/technotes/tn2215/_index.html")
|
83
|
+
when /no signing identity matches '(.*)'/
|
84
|
+
print("Could not find code signing identity '#{$1}'")
|
85
|
+
print("Make sure the name of the code signing identity is correct")
|
86
|
+
print("and it matches a locally installed code signing identity")
|
87
|
+
print("You can pass the name of the code signing identity using the")
|
88
|
+
print("`codesigning_identity` option")
|
89
|
+
when /no provisioning profile matches '(.*)'/
|
90
|
+
print("Could not find provisioning profile with the name '#{$1}'")
|
91
|
+
print("Make sure the name of the provisioning profile is correct")
|
92
|
+
print("and it matches a locally installed profile")
|
93
|
+
when /mismatch between specified provisioning profile and signing identity/
|
94
|
+
print("Mismatch between provisioning profile and code signing identity")
|
95
|
+
print("This means, the specified provisioning profile was not created using")
|
96
|
+
print("the specified certificate.")
|
97
|
+
print("Run cert and sigh before gym to make sure to have all signing resources ready")
|
98
|
+
when /requires a provisioning profile/
|
99
|
+
print("No provisioning profile provided")
|
100
|
+
print("Make sure to pass a valid provisioning for each required target")
|
101
|
+
print("Check out the docs on how to fix this: https://docs.fastlane.tools/actions/gym/#export-options")
|
102
|
+
# insert more specific code signing errors here
|
103
|
+
when /Codesign check fails/
|
104
|
+
print("A general code signing error occurred. Make sure you passed a valid")
|
105
|
+
print("provisioning profile and code signing identity.")
|
106
|
+
end
|
107
|
+
print_xcode_version
|
108
|
+
print_full_log_path
|
109
|
+
print_environment_information
|
110
|
+
print_build_error_instructions
|
111
|
+
print_xcode9_plist_warning
|
112
|
+
UI.build_failure!("Error packaging up the application", error_info: output)
|
113
|
+
end
|
114
|
+
|
115
|
+
def handle_empty_archive
|
116
|
+
print("The generated archive is invalid, this can have various reasons:")
|
117
|
+
print("Usually it's caused by the `Skip Install` option in Xcode, set it to `NO`")
|
118
|
+
print("For more information visit https://developer.apple.com/library/ios/technotes/tn2215/_index.html")
|
119
|
+
print("Also, make sure to have a valid code signing identity and provisioning profile installed")
|
120
|
+
print("Follow this guide to setup code signing https://docs.fastlane.tools/codesigning/GettingStarted/")
|
121
|
+
print("If your intention was only to export an ipa be sure to provide a valid archive at the archive path.")
|
122
|
+
print("This error might also happen if your workspace/project file is not in the root directory of your project.")
|
123
|
+
print("To workaround that issue, you can wrap your calls to gym with")
|
124
|
+
print("`Dir.chdir('../path/to/dir/containing/proj') do`")
|
125
|
+
print("For an example you can check out")
|
126
|
+
print("https://github.com/artsy/emission-nebula/commit/44fe51a7fea8f7d52f0f77d6c3084827fe5dd59e")
|
127
|
+
UI.build_failure!("Archive invalid")
|
128
|
+
end
|
129
|
+
|
130
|
+
private
|
131
|
+
|
132
|
+
# Just to make things easier
|
133
|
+
def print(text)
|
134
|
+
UI.error(text)
|
135
|
+
end
|
136
|
+
|
137
|
+
def print_full_log_path
|
138
|
+
return if Gym.config[:disable_xcpretty]
|
139
|
+
|
140
|
+
log_path = Gym::BuildCommandGenerator.xcodebuild_log_path
|
141
|
+
return unless File.exist?(log_path)
|
142
|
+
|
143
|
+
# `xcodebuild` doesn't properly mark lines as failure reason or important information
|
144
|
+
# so we assume that the last few lines show the error message that's relevant
|
145
|
+
# (at least that's what was correct during testing)
|
146
|
+
log_content = File.read(log_path).split("\n").last(5)
|
147
|
+
log_content.each do |row|
|
148
|
+
UI.command_output(row)
|
149
|
+
end
|
150
|
+
|
151
|
+
UI.message("")
|
152
|
+
UI.error("⬆️ Check out the few lines of raw `xcodebuild` output above for potential hints on how to solve this error")
|
153
|
+
UI.important("📋 For the complete and more detailed error log, check the full log at:")
|
154
|
+
UI.important("📋 #{log_path}")
|
155
|
+
end
|
156
|
+
|
157
|
+
def print_xcode9_plist_warning
|
158
|
+
return unless Helper.xcode_at_least?("9.0")
|
159
|
+
|
160
|
+
# prevent crash in case of packaging error AND if you have set export_options to a path.
|
161
|
+
return unless Gym.config[:export_options].kind_of?(Hash)
|
162
|
+
|
163
|
+
export_options = Gym.config[:export_options] || {}
|
164
|
+
provisioning_profiles = export_options[:provisioningProfiles] || []
|
165
|
+
if provisioning_profiles.count == 0
|
166
|
+
UI.error("Looks like no provisioning profile mapping was provided")
|
167
|
+
UI.error("Please check the complete output, in particular the very top")
|
168
|
+
UI.error("and see if you can find more information. You can also run fastlane")
|
169
|
+
UI.error("with the `--verbose` flag.")
|
170
|
+
UI.error("Alternatively you can provide the provisioning profile mapping manually")
|
171
|
+
UI.error("https://docs.fastlane.tools/codesigning/xcode-project/#xcode-9-and-up")
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
def print_xcode_version
|
176
|
+
# lots of the times, the user didn't set the correct Xcode version to their Xcode path
|
177
|
+
# since many users don't look at the table of summary before running a tool, let's make
|
178
|
+
# sure they are aware of the Xcode version and SDK they're using
|
179
|
+
values = {
|
180
|
+
xcode_path: File.expand_path("../..", FastlaneCore::Helper.xcode_path),
|
181
|
+
gym_version: Fastlane::VERSION,
|
182
|
+
export_method: Gym.config[:export_method]
|
183
|
+
}
|
184
|
+
|
185
|
+
sdk_path = Gym.project.build_settings(key: "SDKROOT")
|
186
|
+
values[:sdk] = File.basename(sdk_path) if sdk_path.to_s.length > 0
|
187
|
+
|
188
|
+
FastlaneCore::PrintTable.print_values(config: values,
|
189
|
+
hide_keys: [],
|
190
|
+
title: "Build environment".yellow)
|
191
|
+
end
|
192
|
+
|
193
|
+
def print_xcode_path_instructions
|
194
|
+
xcode_path = File.expand_path("../..", FastlaneCore::Helper.xcode_path)
|
195
|
+
default_xcode_path = "/Applications/"
|
196
|
+
|
197
|
+
xcode_installations_in_default_path = Dir[File.join(default_xcode_path, "Xcode*.app")]
|
198
|
+
return unless xcode_installations_in_default_path.count > 1
|
199
|
+
UI.message("")
|
200
|
+
UI.important("Maybe the error shown is caused by using the wrong version of Xcode")
|
201
|
+
UI.important("Found multiple versions of Xcode in '#{default_xcode_path}'")
|
202
|
+
UI.important("Make sure you selected the right version for your project")
|
203
|
+
UI.important("This build process was executed using '#{xcode_path}'")
|
204
|
+
UI.important("If you want to update your Xcode path, either")
|
205
|
+
UI.message("")
|
206
|
+
|
207
|
+
UI.message("- Specify the Xcode version in your Fastfile")
|
208
|
+
UI.command_output("xcversion(version: \"8.1\") # Selects Xcode 8.1.0")
|
209
|
+
UI.message("")
|
210
|
+
|
211
|
+
UI.message("- Specify an absolute path to your Xcode installation in your Fastfile")
|
212
|
+
UI.command_output("xcode_select \"/Applications/Xcode8.app\"")
|
213
|
+
UI.message("")
|
214
|
+
|
215
|
+
UI.message("- Manually update the path using")
|
216
|
+
UI.command_output("sudo xcode-select -s /Applications/Xcode.app")
|
217
|
+
UI.message("")
|
218
|
+
end
|
219
|
+
|
220
|
+
def print_environment_information
|
221
|
+
if Gym.config[:export_method].to_s == "development"
|
222
|
+
UI.message("")
|
223
|
+
UI.error("Your `export_method` in gym is defined as `development`")
|
224
|
+
UI.error("which might cause problems when signing your application")
|
225
|
+
UI.error("Are you sure want to build and export for development?")
|
226
|
+
UI.error("Please make sure to define the correct export methods when calling")
|
227
|
+
UI.error("gym in your Fastfile or from the command line")
|
228
|
+
UI.message("")
|
229
|
+
elsif Gym.config[:export_options] && Gym.config[:export_options].kind_of?(Hash)
|
230
|
+
# We want to tell the user if there is an obvious mismatch between the selected
|
231
|
+
# `export_method` and the selected provisioning profiles
|
232
|
+
selected_export_method = Gym.config[:export_method].to_s
|
233
|
+
selected_provisioning_profiles = Gym.config[:export_options][:provisioningProfiles] || []
|
234
|
+
# We could go ahead and find all provisioning profiles that match that name
|
235
|
+
# and then get its type, however that's not 100% reliable, as we can't distinguish between
|
236
|
+
# Ad Hoc and Development profiles for example.
|
237
|
+
# As an easier and more obvious alternative, we'll take the provisioning profile names
|
238
|
+
# and see if it contains the export_method name and see if there is a mismatch
|
239
|
+
|
240
|
+
# The reason we have multiple variations of the spelling is that
|
241
|
+
# the provisioning profile might be called anything below
|
242
|
+
# There is no 100% good way to detect the profile type based on the name
|
243
|
+
available_export_types = {
|
244
|
+
"app-store" => "app-store",
|
245
|
+
"app store" => "app-store",
|
246
|
+
"appstore" => "app-store",
|
247
|
+
"enterprise" => "enterprise",
|
248
|
+
"in-house" => "enterprise",
|
249
|
+
"in house" => "enterprise",
|
250
|
+
"inhouse" => "enterprise",
|
251
|
+
"ad-hoc" => "ad-hoc",
|
252
|
+
"adhoc" => "ad-hoc",
|
253
|
+
"ad hoc" => "ad-hoc",
|
254
|
+
"development" => "development"
|
255
|
+
}
|
256
|
+
|
257
|
+
selected_provisioning_profiles.each do |current_bundle_identifier, current_profile_name|
|
258
|
+
available_export_types.each do |current_to_try, matching_type|
|
259
|
+
next unless current_profile_name.to_s.downcase.include?(current_to_try.to_s.downcase)
|
260
|
+
|
261
|
+
# Check if there is a mismatch between the name and the selected export method
|
262
|
+
# Example
|
263
|
+
#
|
264
|
+
# current_profile_name = "me.themoji.app.beta App Store""
|
265
|
+
# current_to_try = "app store"
|
266
|
+
# matching_type = :appstore
|
267
|
+
# selected_export_method = "enterprise"
|
268
|
+
#
|
269
|
+
# As seen above, there is obviously a mismatch, the user selected an App Store
|
270
|
+
# profile, but the export method that's being passed to Xcode is "enterprise"
|
271
|
+
|
272
|
+
break if matching_type.to_s == selected_export_method
|
273
|
+
UI.message("")
|
274
|
+
UI.error("There seems to be a mismatch between your provided `export_method` in gym")
|
275
|
+
UI.error("and the selected provisioning profiles. You passed the following options:")
|
276
|
+
UI.important(" export_method: #{selected_export_method}")
|
277
|
+
UI.important(" Bundle identifier: #{current_bundle_identifier}")
|
278
|
+
UI.important(" Profile name: #{current_profile_name}")
|
279
|
+
UI.important(" Profile type: #{matching_type}")
|
280
|
+
UI.error("Make sure to either change the `export_method` passed from your Fastfile or CLI")
|
281
|
+
UI.error("or select the correct provisioning profiles by updating your Xcode project")
|
282
|
+
UI.error("or passing the profiles to use by using match or manually via the `export_options` hash")
|
283
|
+
UI.message("")
|
284
|
+
break
|
285
|
+
end
|
286
|
+
end
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
# Indicate that code signing errors are not caused by fastlane
|
291
|
+
# and that fastlane only runs `xcodebuild` commands
|
292
|
+
def print_build_error_instructions
|
293
|
+
UI.message("")
|
294
|
+
UI.error("Looks like fastlane ran into a build/archive error with your project")
|
295
|
+
UI.error("It's hard to tell what's causing the error, so we wrote some guides on how")
|
296
|
+
UI.error("to troubleshoot build and signing issues: https://docs.fastlane.tools/codesigning/getting-started/")
|
297
|
+
UI.error("Before submitting an issue on GitHub, please follow the guide above and make")
|
298
|
+
UI.error("sure your project is set up correctly.")
|
299
|
+
UI.error("fastlane uses `xcodebuild` commands to generate your binary, you can see the")
|
300
|
+
UI.error("the full commands printed out in yellow in the above log.")
|
301
|
+
UI.error("Make sure to inspect the output above, as usually you'll find more error information there")
|
302
|
+
UI.message("")
|
303
|
+
end
|
304
|
+
end
|
305
|
+
end
|
306
|
+
end
|