fastlane_pricing_fix 2.212.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +1 -0
- data/LICENSE +21 -0
- data/README.md +235 -0
- data/bin/bin-proxy +19 -0
- data/bin/fastlane +23 -0
- data/cert/README.md +17 -0
- data/cert/lib/cert/commands_generator.rb +61 -0
- data/cert/lib/cert/module.rb +16 -0
- data/cert/lib/cert/options.rb +133 -0
- data/cert/lib/cert/runner.rb +250 -0
- data/cert/lib/cert.rb +4 -0
- data/credentials_manager/README.md +64 -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/credentials_manager/lib/credentials_manager.rb +7 -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 +30 -0
- data/deliver/lib/assets/summary.html.erb +299 -0
- data/deliver/lib/deliver/app_screenshot.rb +387 -0
- data/deliver/lib/deliver/app_screenshot_iterator.rb +95 -0
- data/deliver/lib/deliver/app_screenshot_validator.rb +108 -0
- data/deliver/lib/deliver/commands_generator.rb +191 -0
- data/deliver/lib/deliver/detect_values.rb +104 -0
- data/deliver/lib/deliver/download_screenshots.rb +75 -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 +157 -0
- data/deliver/lib/deliver/module.rb +24 -0
- data/deliver/lib/deliver/options.rb +461 -0
- data/deliver/lib/deliver/runner.rb +310 -0
- data/deliver/lib/deliver/screenshot_comparable.rb +62 -0
- data/deliver/lib/deliver/setup.rb +203 -0
- data/deliver/lib/deliver/submit_for_review.rb +236 -0
- data/deliver/lib/deliver/sync_screenshots.rb +200 -0
- data/deliver/lib/deliver/upload_metadata.rb +699 -0
- data/deliver/lib/deliver/upload_price_tier.rb +42 -0
- data/deliver/lib/deliver/upload_screenshots.rb +271 -0
- data/deliver/lib/deliver.rb +15 -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 +26 -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 +24 -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/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 +75 -0
- data/fastlane/lib/fastlane/actions/adb_devices.rb +70 -0
- data/fastlane/lib/fastlane/actions/add_extra_platforms.rb +45 -0
- data/fastlane/lib/fastlane/actions/add_git_tag.rb +138 -0
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +255 -0
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +148 -0
- data/fastlane/lib/fastlane/actions/appaloosa.rb +271 -0
- data/fastlane/lib/fastlane/actions/appetize.rb +193 -0
- data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +135 -0
- data/fastlane/lib/fastlane/actions/appium.rb +181 -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 +106 -0
- data/fastlane/lib/fastlane/actions/artifactory.rb +189 -0
- data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +220 -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 +151 -0
- data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +113 -0
- data/fastlane/lib/fastlane/actions/build_android_app.rb +14 -0
- data/fastlane/lib/fastlane/actions/build_app.rb +171 -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 +166 -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 +238 -0
- data/fastlane/lib/fastlane/actions/cert.rb +14 -0
- data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +188 -0
- data/fastlane/lib/fastlane/actions/chatwork.rb +95 -0
- data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +62 -0
- data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +71 -0
- data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +75 -0
- data/fastlane/lib/fastlane/actions/clear_derived_data.rb +70 -0
- data/fastlane/lib/fastlane/actions/clipboard.rb +49 -0
- data/fastlane/lib/fastlane/actions/cloc.rb +85 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +178 -0
- data/fastlane/lib/fastlane/actions/commit_github_file.rb +194 -0
- data/fastlane/lib/fastlane/actions/commit_version_bump.rb +300 -0
- data/fastlane/lib/fastlane/actions/copy_artifacts.rb +113 -0
- data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +168 -0
- data/fastlane/lib/fastlane/actions/create_app_online.rb +75 -0
- data/fastlane/lib/fastlane/actions/create_keychain.rb +179 -0
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +271 -0
- data/fastlane/lib/fastlane/actions/create_xcframework.rb +203 -0
- data/fastlane/lib/fastlane/actions/danger.rb +146 -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 +209 -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 +349 -0
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +375 -0
- data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +103 -0
- data/fastlane/lib/fastlane/actions/docs/create_app_online.md +386 -0
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +366 -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 +579 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +748 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +204 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +260 -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_app_privacy_details_from_app_store.rb +142 -0
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +373 -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 +54 -0
- data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +68 -0
- data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +102 -0
- data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +133 -0
- data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +124 -0
- data/fastlane/lib/fastlane/actions/environment_variable.rb +69 -0
- data/fastlane/lib/fastlane/actions/erb.rb +93 -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 +81 -0
- data/fastlane/lib/fastlane/actions/get_github_release.rb +176 -0
- data/fastlane/lib/fastlane/actions/get_info_plist_value.rb +78 -0
- data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +81 -0
- data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +117 -0
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +109 -0
- data/fastlane/lib/fastlane/actions/get_push_certificate.rb +87 -0
- data/fastlane/lib/fastlane/actions/get_version_number.rb +212 -0
- data/fastlane/lib/fastlane/actions/git_add.rb +88 -0
- data/fastlane/lib/fastlane/actions/git_branch.rb +55 -0
- data/fastlane/lib/fastlane/actions/git_commit.rb +80 -0
- data/fastlane/lib/fastlane/actions/git_pull.rb +58 -0
- data/fastlane/lib/fastlane/actions/git_remote_branch.rb +57 -0
- data/fastlane/lib/fastlane/actions/git_submodule_update.rb +60 -0
- data/fastlane/lib/fastlane/actions/git_tag_exists.rb +78 -0
- data/fastlane/lib/fastlane/actions/github_api.rb +271 -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 +334 -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 +399 -0
- data/fastlane/lib/fastlane/actions/ifttt.rb +93 -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 +81 -0
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +123 -0
- data/fastlane/lib/fastlane/actions/increment_version_number.rb +180 -0
- data/fastlane/lib/fastlane/actions/install_on_device.rb +92 -0
- data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +62 -0
- data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +91 -0
- data/fastlane/lib/fastlane/actions/installr.rb +129 -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 +59 -0
- data/fastlane/lib/fastlane/actions/jira.rb +162 -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 +154 -0
- data/fastlane/lib/fastlane/actions/lcov.rb +98 -0
- data/fastlane/lib/fastlane/actions/mailgun.rb +191 -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/match_nuke.rb +59 -0
- data/fastlane/lib/fastlane/actions/min_fastlane_version.rb +57 -0
- data/fastlane/lib/fastlane/actions/modify_services.rb +208 -0
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +231 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +340 -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 +270 -0
- data/fastlane/lib/fastlane/actions/onesignal.rb +196 -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 +198 -0
- data/fastlane/lib/fastlane/actions/podio_item.rb +210 -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 +118 -0
- data/fastlane/lib/fastlane/actions/push_git_tags.rb +76 -0
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +138 -0
- data/fastlane/lib/fastlane/actions/puts.rb +67 -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 +148 -0
- data/fastlane/lib/fastlane/actions/register_devices.rb +211 -0
- data/fastlane/lib/fastlane/actions/reset_git_repo.rb +118 -0
- data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +90 -0
- data/fastlane/lib/fastlane/actions/resign.rb +125 -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 +71 -0
- data/fastlane/lib/fastlane/actions/ruby_version.rb +56 -0
- data/fastlane/lib/fastlane/actions/run_tests.rb +124 -0
- data/fastlane/lib/fastlane/actions/s3.rb +174 -0
- data/fastlane/lib/fastlane/actions/say.rb +55 -0
- data/fastlane/lib/fastlane/actions/scan.rb +14 -0
- data/fastlane/lib/fastlane/actions/scp.rb +108 -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 +201 -0
- data/fastlane/lib/fastlane/actions/set_github_release.rb +287 -0
- data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +92 -0
- data/fastlane/lib/fastlane/actions/set_pod_key.rb +77 -0
- data/fastlane/lib/fastlane/actions/setup_ci.rb +140 -0
- data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +58 -0
- data/fastlane/lib/fastlane/actions/setup_jenkins.rb +197 -0
- data/fastlane/lib/fastlane/actions/setup_travis.rb +57 -0
- data/fastlane/lib/fastlane/actions/sh.rb +69 -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 +307 -0
- data/fastlane/lib/fastlane/actions/slather.rb +319 -0
- data/fastlane/lib/fastlane/actions/snapshot.rb +14 -0
- data/fastlane/lib/fastlane/actions/sonar.rb +170 -0
- data/fastlane/lib/fastlane/actions/sourcedocs.rb +128 -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 +144 -0
- data/fastlane/lib/fastlane/actions/ssh.rb +157 -0
- data/fastlane/lib/fastlane/actions/supply.rb +14 -0
- data/fastlane/lib/fastlane/actions/swiftlint.rb +242 -0
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +114 -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 +284 -0
- data/fastlane/lib/fastlane/actions/testflight.rb +14 -0
- data/fastlane/lib/fastlane/actions/trainer.rb +49 -0
- data/fastlane/lib/fastlane/actions/tryouts.rb +148 -0
- data/fastlane/lib/fastlane/actions/twitter.rb +84 -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 +88 -0
- data/fastlane/lib/fastlane/actions/update_app_identifier.rb +124 -0
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +223 -0
- data/fastlane/lib/fastlane/actions/update_fastlane.rb +158 -0
- data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +96 -0
- data/fastlane/lib/fastlane/actions/update_info_plist.rb +143 -0
- data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +91 -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 +181 -0
- data/fastlane/lib/fastlane/actions/update_project_team.rb +95 -0
- data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +90 -0
- data/fastlane/lib/fastlane/actions/update_url_schemes.rb +112 -0
- data/fastlane/lib/fastlane/actions/upload_app_privacy_details_to_app_store.rb +290 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +232 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +158 -0
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +71 -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 +126 -0
- data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +100 -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 +70 -0
- data/fastlane/lib/fastlane/actions/xcode_install.rb +112 -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 +647 -0
- data/fastlane/lib/fastlane/actions/xcodes.rb +152 -0
- data/fastlane/lib/fastlane/actions/xcov.rb +71 -0
- data/fastlane/lib/fastlane/actions/xctool.rb +55 -0
- data/fastlane/lib/fastlane/actions/xcversion.rb +65 -0
- data/fastlane/lib/fastlane/actions/zip.rb +185 -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 +215 -0
- data/fastlane/lib/fastlane/command_line_handler.rb +49 -0
- data/fastlane/lib/fastlane/commands_generator.rb +371 -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 +94 -0
- data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +234 -0
- data/fastlane/lib/fastlane/environment_printer.rb +304 -0
- data/fastlane/lib/fastlane/erb_template_helper.rb +36 -0
- data/fastlane/lib/fastlane/fast_file.rb +464 -0
- data/fastlane/lib/fastlane/fastlane_require.rb +81 -0
- data/fastlane/lib/fastlane/features.rb +10 -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/dotenv_helper.rb +50 -0
- data/fastlane/lib/fastlane/helper/gem_helper.rb +26 -0
- data/fastlane/lib/fastlane/helper/git_helper.rb +166 -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/xcodebuild_formatter_helper.rb +9 -0
- data/fastlane/lib/fastlane/helper/xcodeproj_helper.rb +12 -0
- data/fastlane/lib/fastlane/helper/xcodes_helper.rb +28 -0
- data/fastlane/lib/fastlane/helper/xcversion_helper.rb +16 -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 +131 -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/notification/slack.rb +56 -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 +54 -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 +158 -0
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +398 -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 +36 -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%/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/lib/fastlane/plugin/%plugin_name%.rb.erb +16 -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 +368 -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 +480 -0
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +447 -0
- data/fastlane/lib/fastlane/swift_lane_manager.rb +304 -0
- data/fastlane/lib/fastlane/swift_runner_upgrader.rb +265 -0
- data/fastlane/lib/fastlane/tools.rb +50 -0
- data/fastlane/lib/fastlane/version.rb +6 -0
- data/fastlane/lib/fastlane.rb +53 -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/Atomic.swift +150 -0
- data/fastlane/swift/ControlCommand.swift +74 -0
- data/fastlane/swift/Deliverfile.swift +20 -0
- data/fastlane/swift/DeliverfileProtocol.swift +267 -0
- data/fastlane/swift/Fastfile.swift +16 -0
- data/fastlane/swift/Fastlane.swift +13576 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +448 -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 +211 -0
- data/fastlane/swift/LaneFileProtocol.swift +155 -0
- data/fastlane/swift/MainProcess.swift +79 -0
- data/fastlane/swift/Matchfile.swift +20 -0
- data/fastlane/swift/MatchfileProtocol.swift +211 -0
- data/fastlane/swift/OptionalConfigValue.swift +101 -0
- data/fastlane/swift/Plugins.swift +16 -0
- data/fastlane/swift/Precheckfile.swift +20 -0
- data/fastlane/swift/PrecheckfileProtocol.swift +55 -0
- data/fastlane/swift/RubyCommand.swift +157 -0
- data/fastlane/swift/RubyCommandable.swift +43 -0
- data/fastlane/swift/Runner.swift +279 -0
- data/fastlane/swift/RunnerArgument.swift +20 -0
- data/fastlane/swift/Scanfile.swift +20 -0
- data/fastlane/swift/ScanfileProtocol.swift +319 -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 +207 -0
- data/fastlane/swift/SocketClient.swift +332 -0
- data/fastlane/swift/SocketClientDelegateProtocol.swift +21 -0
- data/fastlane/swift/SocketResponse.swift +84 -0
- data/fastlane/swift/formatting/Brewfile +1 -0
- data/fastlane/swift/formatting/Brewfile.lock.json +86 -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 +80 -0
- data/fastlane_core/lib/assets/XMLTemplate.xml.erb +12 -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 +192 -0
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +211 -0
- data/fastlane_core/lib/fastlane_core/clipboard.rb +20 -0
- data/fastlane_core/lib/fastlane_core/command_executor.rb +94 -0
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +108 -0
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +359 -0
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +338 -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 +378 -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 +501 -0
- data/fastlane_core/lib/fastlane_core/ios_app_identifier_guesser.rb +112 -0
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +93 -0
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +53 -0
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +983 -0
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +128 -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 +56 -0
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +49 -0
- data/fastlane_core/lib/fastlane_core/print_table.rb +133 -0
- data/fastlane_core/lib/fastlane_core/project.rb +546 -0
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +126 -0
- data/fastlane_core/lib/fastlane_core/queue_worker.rb +49 -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 +26 -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/errors.rb +1 -0
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +342 -0
- data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +62 -0
- data/fastlane_core/lib/fastlane_core/ui/help.erb +35 -0
- data/fastlane_core/lib/fastlane_core/ui/help_formatter.rb +16 -0
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +175 -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/fastlane_core/lib/fastlane_core.rb +48 -0
- data/frameit/README.md +17 -0
- data/frameit/lib/assets/empty.png +0 -0
- data/frameit/lib/frameit/commands_generator.rb +141 -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 +159 -0
- data/frameit/lib/frameit/editor.rb +558 -0
- data/frameit/lib/frameit/frame_downloader.rb +86 -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 +41 -0
- data/frameit/lib/frameit.rb +13 -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/code_signing_mapping.rb +210 -0
- data/gym/lib/gym/commands_generator.rb +79 -0
- data/gym/lib/gym/detect_values.rb +206 -0
- data/gym/lib/gym/error_handler.rb +314 -0
- data/gym/lib/gym/generators/README.md +1 -0
- data/gym/lib/gym/generators/build_command_generator.rb +197 -0
- data/gym/lib/gym/generators/package_command_generator.rb +72 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +238 -0
- data/gym/lib/gym/manager.rb +22 -0
- data/gym/lib/gym/module.rb +74 -0
- data/gym/lib/gym/options.rb +327 -0
- data/gym/lib/gym/runner.rb +376 -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/gym/lib/gym.rb +9 -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/change_password.rb +55 -0
- data/match/lib/match/commands_generator.rb +192 -0
- data/match/lib/match/encryption/interface.rb +17 -0
- data/match/lib/match/encryption/openssl.rb +163 -0
- data/match/lib/match/encryption.rb +52 -0
- data/match/lib/match/generator.rb +124 -0
- data/match/lib/match/importer.rb +165 -0
- data/match/lib/match/migrate.rb +109 -0
- data/match/lib/match/module.rb +85 -0
- data/match/lib/match/nuke.rb +421 -0
- data/match/lib/match/options.rb +347 -0
- data/match/lib/match/runner.rb +472 -0
- data/match/lib/match/setup.rb +40 -0
- data/match/lib/match/spaceship_ensure.rb +103 -0
- data/match/lib/match/storage/git_storage.rb +254 -0
- data/match/lib/match/storage/gitlab/client.rb +102 -0
- data/match/lib/match/storage/gitlab/secure_file.rb +65 -0
- data/match/lib/match/storage/gitlab_secure_files.rb +182 -0
- data/match/lib/match/storage/google_cloud_storage.rb +383 -0
- data/match/lib/match/storage/interface.rb +119 -0
- data/match/lib/match/storage/s3_storage.rb +205 -0
- data/match/lib/match/storage.rb +50 -0
- data/match/lib/match/table_printer.rb +52 -0
- data/match/lib/match/utils.rb +88 -0
- data/match/lib/match.rb +14 -0
- data/pem/README.md +17 -0
- data/pem/lib/pem/commands_generator.rb +48 -0
- data/pem/lib/pem/manager.rb +136 -0
- data/pem/lib/pem/module.rb +19 -0
- data/pem/lib/pem/options.rb +112 -0
- data/pem/lib/pem.rb +4 -0
- data/pilot/README.md +17 -0
- data/pilot/lib/pilot/build_manager.rb +602 -0
- data/pilot/lib/pilot/commands_generator.rb +175 -0
- data/pilot/lib/pilot/manager.rb +95 -0
- data/pilot/lib/pilot/module.rb +11 -0
- data/pilot/lib/pilot/options.rb +336 -0
- data/pilot/lib/pilot/tester_exporter.rb +57 -0
- data/pilot/lib/pilot/tester_importer.rb +53 -0
- data/pilot/lib/pilot/tester_manager.rb +167 -0
- data/pilot/lib/pilot.rb +8 -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/commands_generator.rb +75 -0
- data/precheck/lib/precheck/item_to_check.rb +58 -0
- data/precheck/lib/precheck/module.rb +23 -0
- data/precheck/lib/precheck/options.rb +110 -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 +202 -0
- data/precheck/lib/precheck.rb +3 -0
- data/produce/README.md +17 -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 +337 -0
- data/produce/lib/produce/developer_center.rb +181 -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 +425 -0
- data/produce/lib/produce.rb +6 -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/commands_generator.rb +79 -0
- data/scan/lib/scan/detect_values.rb +244 -0
- data/scan/lib/scan/error_handler.rb +66 -0
- data/scan/lib/scan/manager.rb +38 -0
- data/scan/lib/scan/module.rb +37 -0
- data/scan/lib/scan/options.rb +541 -0
- data/scan/lib/scan/runner.rb +428 -0
- data/scan/lib/scan/slack_poster.rb +63 -0
- data/scan/lib/scan/test_command_generator.rb +262 -0
- data/scan/lib/scan/test_result_parser.rb +33 -0
- data/scan/lib/scan/xcpretty_reporter_options_generator.rb +85 -0
- data/scan/lib/scan.rb +10 -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/android_environment.rb +43 -0
- data/screengrab/lib/screengrab/commands_generator.rb +71 -0
- data/screengrab/lib/screengrab/dependency_checker.rb +38 -0
- data/screengrab/lib/screengrab/detect_values.rb +16 -0
- data/screengrab/lib/screengrab/module.rb +26 -0
- data/screengrab/lib/screengrab/options.rb +151 -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 +452 -0
- data/screengrab/lib/screengrab/setup.rb +24 -0
- data/screengrab/lib/screengrab.rb +7 -0
- data/sigh/README.md +17 -0
- data/sigh/lib/assets/resign.sh +932 -0
- data/sigh/lib/sigh/commands_generator.rb +155 -0
- data/sigh/lib/sigh/download_all.rb +120 -0
- data/sigh/lib/sigh/local_manage.rb +145 -0
- data/sigh/lib/sigh/manager.rb +47 -0
- data/sigh/lib/sigh/module.rb +44 -0
- data/sigh/lib/sigh/options.rb +199 -0
- data/sigh/lib/sigh/repair.rb +34 -0
- data/sigh/lib/sigh/resign.rb +220 -0
- data/sigh/lib/sigh/runner.rb +412 -0
- data/sigh/lib/sigh.rb +4 -0
- data/snapshot/README.md +17 -0
- data/snapshot/lib/assets/SnapfileTemplate +38 -0
- data/snapshot/lib/assets/SnapfileTemplate.swift +42 -0
- data/snapshot/lib/assets/SnapshotHelper.swift +309 -0
- data/snapshot/lib/assets/SnapshotHelperXcode8.swift +172 -0
- data/snapshot/lib/snapshot/collector.rb +140 -0
- data/snapshot/lib/snapshot/commands_generator.rb +117 -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 +326 -0
- data/snapshot/lib/snapshot/page.html.erb +285 -0
- data/snapshot/lib/snapshot/reports_generator.rb +154 -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 +64 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +219 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +220 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +113 -0
- data/snapshot/lib/snapshot/test_command_generator.rb +157 -0
- data/snapshot/lib/snapshot/test_command_generator_base.rb +130 -0
- data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +70 -0
- data/snapshot/lib/snapshot/update.rb +38 -0
- data/snapshot/lib/snapshot.rb +19 -0
- data/spaceship/README.md +173 -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/base.rb +310 -0
- data/spaceship/lib/spaceship/client.rb +988 -0
- data/spaceship/lib/spaceship/commands_generator.rb +55 -0
- data/spaceship/lib/spaceship/connect_api/api_client.rb +356 -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/actor.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +147 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +482 -0
- data/spaceship/lib/spaceship/connect_api/models/app_category.rb +94 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage.rb +59 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage_category.rb +65 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage_data_protection.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage_grouping.rb +18 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage_purposes.rb +37 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usages_publish_state.rb +36 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +112 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +48 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +135 -0
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +109 -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 +189 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +169 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb +73 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +53 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +241 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +115 -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 +27 -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 +27 -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 +77 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +67 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_screenshot.rb +18 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +63 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +44 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +195 -0
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +69 -0
- data/spaceship/lib/spaceship/connect_api/models/build_bundle.rb +68 -0
- data/spaceship/lib/spaceship/connect_api/models/build_bundle_file_sizes.rb +34 -0
- data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +38 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +93 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +136 -0
- data/spaceship/lib/spaceship/connect_api/models/capabilities.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +110 -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 +133 -0
- data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +43 -0
- data/spaceship/lib/spaceship/connect_api/models/pre_release_version.rb +20 -0
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +111 -0
- data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/models/resolution_center_message.rb +29 -0
- data/spaceship/lib/spaceship/connect_api/models/resolution_center_thread.rb +67 -0
- data/spaceship/lib/spaceship/connect_api/models/review_rejection.rb +19 -0
- data/spaceship/lib/spaceship/connect_api/models/review_submission.rb +86 -0
- data/spaceship/lib/spaceship/connect_api/models/review_submission_item.rb +40 -0
- data/spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb +67 -0
- data/spaceship/lib/spaceship/connect_api/models/territory.rb +28 -0
- data/spaceship/lib/spaceship/connect_api/models/user.rb +72 -0
- data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +96 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +92 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +264 -0
- data/spaceship/lib/spaceship/connect_api/response.rb +86 -0
- data/spaceship/lib/spaceship/connect_api/spaceship.rb +102 -0
- data/spaceship/lib/spaceship/connect_api/testflight/client.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +513 -0
- data/spaceship/lib/spaceship/connect_api/token.rb +120 -0
- data/spaceship/lib/spaceship/connect_api/token_refresh_middleware.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/tunes/client.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +1281 -0
- data/spaceship/lib/spaceship/connect_api/users/client.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/users/users.rb +135 -0
- data/spaceship/lib/spaceship/connect_api.rb +132 -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 +135 -0
- data/spaceship/lib/spaceship/globals.rb +21 -0
- data/spaceship/lib/spaceship/hashcash.rb +52 -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 +366 -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 +97 -0
- data/spaceship/lib/spaceship/stats_middleware.rb +65 -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/test_flight.rb +10 -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 +34 -0
- data/spaceship/lib/spaceship/tunes/tunes_base.rb +17 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +1705 -0
- data/spaceship/lib/spaceship/tunes/version_set.rb +26 -0
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +380 -0
- data/spaceship/lib/spaceship/ui.rb +27 -0
- data/spaceship/lib/spaceship/upgrade_2fa_later_client.rb +91 -0
- data/spaceship/lib/spaceship.rb +31 -0
- data/supply/README.md +17 -0
- data/supply/lib/supply/apk_listing.rb +14 -0
- data/supply/lib/supply/client.rb +587 -0
- data/supply/lib/supply/commands_generator.rb +68 -0
- data/supply/lib/supply/languages.rb +88 -0
- data/supply/lib/supply/listing.rb +32 -0
- data/supply/lib/supply/options.rb +344 -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 +489 -0
- data/supply/lib/supply.rb +53 -0
- data/trainer/lib/assets/junit.xml.erb +28 -0
- data/trainer/lib/trainer/commands_generator.rb +51 -0
- data/trainer/lib/trainer/junit_generator.rb +31 -0
- data/trainer/lib/trainer/module.rb +10 -0
- data/trainer/lib/trainer/options.rb +66 -0
- data/trainer/lib/trainer/test_parser.rb +398 -0
- data/trainer/lib/trainer/xcresult.rb +403 -0
- data/trainer/lib/trainer.rb +7 -0
- metadata +1909 -0
@@ -0,0 +1,157 @@
|
|
1
|
+
require_relative 'test_command_generator_base'
|
2
|
+
require_relative 'latest_os_version'
|
3
|
+
|
4
|
+
module Snapshot
|
5
|
+
# Responsible for building the fully working xcodebuild command
|
6
|
+
# Xcode 9 introduced the ability to run tests in parallel on multiple simulators
|
7
|
+
# This TestCommandGenerator constructs the appropriate `xcodebuild` command
|
8
|
+
# to be used for executing simultaneous tests
|
9
|
+
class TestCommandGenerator < TestCommandGeneratorBase
|
10
|
+
class << self
|
11
|
+
def generate(devices: nil, language: nil, locale: nil, log_path: nil)
|
12
|
+
parts = prefix
|
13
|
+
parts << "xcodebuild"
|
14
|
+
parts += options(language, locale)
|
15
|
+
parts += destination(devices)
|
16
|
+
parts += build_settings(language, locale)
|
17
|
+
parts += actions
|
18
|
+
parts += suffix
|
19
|
+
parts += pipe(log_path: log_path)
|
20
|
+
|
21
|
+
return parts
|
22
|
+
end
|
23
|
+
|
24
|
+
def pipe(log_path: nil)
|
25
|
+
tee_command = ['tee']
|
26
|
+
tee_command << '-a' if log_path && File.exist?(log_path)
|
27
|
+
tee_command << log_path.shellescape if log_path
|
28
|
+
|
29
|
+
pipe = ["| #{tee_command.join(' ')}"]
|
30
|
+
|
31
|
+
formatter = Snapshot.config[:xcodebuild_formatter].chomp
|
32
|
+
options = legacy_xcpretty_options
|
33
|
+
|
34
|
+
if Snapshot.config[:disable_xcpretty] || formatter == ''
|
35
|
+
UI.verbose("Not using an xcodebuild formatter")
|
36
|
+
elsif !options.empty?
|
37
|
+
UI.important("Detected legacy xcpretty being used so formatting wth xcpretty")
|
38
|
+
UI.important("Option(s) used: #{options.join(', ')}")
|
39
|
+
pipe += pipe_xcpretty
|
40
|
+
elsif formatter == 'xcpretty'
|
41
|
+
pipe += pipe_xcpretty
|
42
|
+
elsif formatter == 'xcbeautify'
|
43
|
+
pipe += pipe_xcbeautify
|
44
|
+
else
|
45
|
+
pipe << "| #{formatter}"
|
46
|
+
end
|
47
|
+
|
48
|
+
pipe
|
49
|
+
end
|
50
|
+
|
51
|
+
def pipe_xcbeautify
|
52
|
+
pipe = ['| xcbeautify']
|
53
|
+
|
54
|
+
if FastlaneCore::Helper.colors_disabled?
|
55
|
+
pipe << '--disable-colored-output'
|
56
|
+
end
|
57
|
+
|
58
|
+
return pipe
|
59
|
+
end
|
60
|
+
|
61
|
+
def legacy_xcpretty_options
|
62
|
+
options = []
|
63
|
+
options << "xcpretty_args" if Snapshot.config[:xcpretty_args]
|
64
|
+
return options
|
65
|
+
end
|
66
|
+
|
67
|
+
def pipe_xcpretty
|
68
|
+
pipe = []
|
69
|
+
xcpretty = "xcpretty #{Snapshot.config[:xcpretty_args]}"
|
70
|
+
xcpretty << "--no-color" if Helper.colors_disabled?
|
71
|
+
pipe << "| #{xcpretty}"
|
72
|
+
pipe << "> /dev/null" if Snapshot.config[:suppress_xcode_output]
|
73
|
+
return pipe
|
74
|
+
end
|
75
|
+
|
76
|
+
def destination(devices)
|
77
|
+
unless verify_devices_share_os(devices)
|
78
|
+
UI.user_error!('All devices provided to snapshot should run the same operating system')
|
79
|
+
end
|
80
|
+
# on Mac we will always run on host machine, so should specify only platform
|
81
|
+
return ["-destination 'platform=macOS'"] if devices.first.to_s =~ /^Mac/
|
82
|
+
|
83
|
+
case devices.first.to_s
|
84
|
+
when /^Apple TV/
|
85
|
+
os = 'tvOS'
|
86
|
+
when /^Apple Watch/
|
87
|
+
os = 'watchOS'
|
88
|
+
else
|
89
|
+
os = 'iOS'
|
90
|
+
end
|
91
|
+
|
92
|
+
os_version = Snapshot.config[:ios_version] || Snapshot::LatestOsVersion.version(os)
|
93
|
+
|
94
|
+
destinations = devices.map do |d|
|
95
|
+
device = find_device(d, os_version)
|
96
|
+
if device.nil?
|
97
|
+
UI.user_error!("No device found named '#{d}' for version '#{os_version}'") if device.nil?
|
98
|
+
elsif device.os_version != os_version
|
99
|
+
UI.important("Using device named '#{device.name}' with version '#{device.os_version}' because no match was found for version '#{os_version}'")
|
100
|
+
end
|
101
|
+
"-destination 'platform=#{os} Simulator,name=#{device.name},OS=#{device.os_version}'"
|
102
|
+
end
|
103
|
+
|
104
|
+
return [destinations.join(' ')]
|
105
|
+
end
|
106
|
+
|
107
|
+
def verify_devices_share_os(device_names)
|
108
|
+
# Get device types based off of device name
|
109
|
+
devices = get_device_type_with_simctl(device_names)
|
110
|
+
|
111
|
+
# Check each device to see if it is an iOS device
|
112
|
+
all_ios = devices.map do |device|
|
113
|
+
device = device.downcase
|
114
|
+
device.include?('iphone') || device.include?('ipad') || device.include?('ipod')
|
115
|
+
end
|
116
|
+
# Return true if all devices are iOS devices
|
117
|
+
return true unless all_ios.include?(false)
|
118
|
+
|
119
|
+
all_tvos = devices.map do |device|
|
120
|
+
device = device.downcase
|
121
|
+
device.include?('apple tv')
|
122
|
+
end
|
123
|
+
# Return true if all devices are tvOS devices
|
124
|
+
return true unless all_tvos.include?(false)
|
125
|
+
|
126
|
+
all_watchos = devices.map do |device|
|
127
|
+
device = device.downcase
|
128
|
+
device.include?('apple watch')
|
129
|
+
end
|
130
|
+
# Return true if all devices are watchOS devices
|
131
|
+
return true unless all_watchos.include?(false)
|
132
|
+
|
133
|
+
# There should only be more than 1 device type if
|
134
|
+
# it is iOS or tvOS, therefore, if there is more than 1
|
135
|
+
# device in the array, and they are not all iOS or tvOS
|
136
|
+
# as checked above, that would imply that this is a mixed bag
|
137
|
+
return devices.count == 1
|
138
|
+
end
|
139
|
+
|
140
|
+
private
|
141
|
+
|
142
|
+
def get_device_type_with_simctl(device_names)
|
143
|
+
return device_names if Helper.test?
|
144
|
+
|
145
|
+
require("simctl")
|
146
|
+
|
147
|
+
# Gets actual simctl device type from device name
|
148
|
+
return device_names.map do |device_name|
|
149
|
+
device = SimCtl.device(name: device_name)
|
150
|
+
if device
|
151
|
+
device.devicetype.name
|
152
|
+
end
|
153
|
+
end.compact
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
require 'fastlane_core/device_manager'
|
2
|
+
require_relative 'module'
|
3
|
+
|
4
|
+
module Snapshot
|
5
|
+
class TestCommandGeneratorBase
|
6
|
+
class << self
|
7
|
+
def prefix
|
8
|
+
["set -o pipefail &&"]
|
9
|
+
end
|
10
|
+
|
11
|
+
# Path to the project or workspace as parameter
|
12
|
+
# This will also include the scheme (if given)
|
13
|
+
# @return [Array] The array with all the components to join
|
14
|
+
def project_path_array
|
15
|
+
proj = Snapshot.project.xcodebuild_parameters
|
16
|
+
return proj if proj.count > 0
|
17
|
+
UI.user_error!("No project/workspace found")
|
18
|
+
end
|
19
|
+
|
20
|
+
def options(language, locale)
|
21
|
+
config = Snapshot.config
|
22
|
+
result_bundle_path = resolve_result_bundle_path(language, locale) if config[:result_bundle]
|
23
|
+
|
24
|
+
options = []
|
25
|
+
options += project_path_array
|
26
|
+
options << "-sdk '#{config[:sdk]}'" if config[:sdk]
|
27
|
+
if derived_data_path && !options.include?("-derivedDataPath #{derived_data_path.shellescape}")
|
28
|
+
options << "-derivedDataPath #{derived_data_path.shellescape}"
|
29
|
+
end
|
30
|
+
options << "-resultBundlePath '#{result_bundle_path}'" if result_bundle_path
|
31
|
+
if FastlaneCore::Helper.xcode_at_least?(11)
|
32
|
+
options << "-testPlan '#{config[:testplan]}'" if config[:testplan]
|
33
|
+
end
|
34
|
+
options << config[:xcargs] if config[:xcargs]
|
35
|
+
|
36
|
+
# detect_values will ensure that these values are present as Arrays if
|
37
|
+
# they are present at all
|
38
|
+
options += config[:only_testing].map { |test_id| "-only-testing:#{test_id.shellescape}" } if config[:only_testing]
|
39
|
+
options += config[:skip_testing].map { |test_id| "-skip-testing:#{test_id.shellescape}" } if config[:skip_testing]
|
40
|
+
return options
|
41
|
+
end
|
42
|
+
|
43
|
+
def build_settings(language, locale)
|
44
|
+
config = Snapshot.config
|
45
|
+
|
46
|
+
build_settings = []
|
47
|
+
build_settings << "FASTLANE_SNAPSHOT=YES"
|
48
|
+
build_settings << "FASTLANE_LANGUAGE=#{language}" if language
|
49
|
+
build_settings << "FASTLANE_LOCALE=#{locale}" if locale
|
50
|
+
build_settings << "TEST_TARGET_NAME=#{config[:test_target_name].shellescape}" if config[:test_target_name]
|
51
|
+
|
52
|
+
return build_settings
|
53
|
+
end
|
54
|
+
|
55
|
+
def actions
|
56
|
+
actions = []
|
57
|
+
if Snapshot.config[:test_without_building]
|
58
|
+
actions << "test-without-building"
|
59
|
+
else
|
60
|
+
actions << :clean if Snapshot.config[:clean]
|
61
|
+
actions << :build # https://github.com/fastlane/fastlane/issues/2581
|
62
|
+
actions << :test
|
63
|
+
end
|
64
|
+
return actions
|
65
|
+
end
|
66
|
+
|
67
|
+
def suffix
|
68
|
+
return []
|
69
|
+
end
|
70
|
+
|
71
|
+
def find_device(device_name, os_version = Snapshot.config[:ios_version])
|
72
|
+
# We might get this error message
|
73
|
+
# > The requested device could not be found because multiple devices matched the request.
|
74
|
+
#
|
75
|
+
# This happens when you have multiple simulators for a given device type / iOS combination
|
76
|
+
# { platform:iOS Simulator, id:1685B071-AFB2-4DC1-BE29-8370BA4A6EBD, OS:9.0, name:iPhone 5 }
|
77
|
+
# { platform:iOS Simulator, id:A141F23B-96B3-491A-8949-813B376C28A7, OS:9.0, name:iPhone 5 }
|
78
|
+
#
|
79
|
+
simulators = FastlaneCore::DeviceManager.simulators
|
80
|
+
# Sort devices with matching names by OS version, largest first, so that we can
|
81
|
+
# pick the device with the newest OS in case an exact OS match is not available
|
82
|
+
name_matches = simulators.find_all { |sim| sim.name.strip == device_name.strip }
|
83
|
+
.sort_by { |sim| Gem::Version.new(sim.os_version) }
|
84
|
+
.reverse
|
85
|
+
return name_matches.find { |sim| sim.os_version == os_version } || name_matches.first
|
86
|
+
end
|
87
|
+
|
88
|
+
def device_udid(device_name, os_version = Snapshot.config[:ios_version])
|
89
|
+
device = find_device(device_name, os_version)
|
90
|
+
|
91
|
+
return device ? device.udid : nil
|
92
|
+
end
|
93
|
+
|
94
|
+
def derived_data_path
|
95
|
+
Snapshot.cache[:derived_data_path] ||= (Snapshot.config[:derived_data_path] || Dir.mktmpdir("snapshot_derived"))
|
96
|
+
end
|
97
|
+
|
98
|
+
def resolve_result_bundle_path(language, locale)
|
99
|
+
Snapshot.cache[:result_bundle_path] = {}
|
100
|
+
language_key = locale || language
|
101
|
+
|
102
|
+
unless Snapshot.cache[:result_bundle_path][language_key]
|
103
|
+
ext = FastlaneCore::Helper.xcode_at_least?(11) ? '.xcresult' : '.test_result'
|
104
|
+
path = File.join(Snapshot.config[:output_directory], "test_output", language_key, Snapshot.config[:scheme]) + ext
|
105
|
+
if File.directory?(path)
|
106
|
+
FileUtils.remove_dir(path)
|
107
|
+
end
|
108
|
+
Snapshot.cache[:result_bundle_path][language_key] = path
|
109
|
+
end
|
110
|
+
return Snapshot.cache[:result_bundle_path][language_key]
|
111
|
+
end
|
112
|
+
|
113
|
+
def initialize
|
114
|
+
not_implemented(__method__)
|
115
|
+
end
|
116
|
+
|
117
|
+
def pipe(device_type, language, locale)
|
118
|
+
not_implemented(__method__)
|
119
|
+
end
|
120
|
+
|
121
|
+
def destination(device_name)
|
122
|
+
not_implemented(__method__)
|
123
|
+
end
|
124
|
+
|
125
|
+
def xcodebuild_log_path(device_type: nil, language: nil, locale: nil)
|
126
|
+
not_implemented(__method__)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require_relative 'test_command_generator_base'
|
2
|
+
require_relative 'module'
|
3
|
+
require_relative 'latest_os_version'
|
4
|
+
|
5
|
+
module Snapshot
|
6
|
+
# Responsible for building the fully working xcodebuild command
|
7
|
+
# This TestCommandGenerator supports Xcode 8's `xcodebuild` requirements
|
8
|
+
# It is its own object, as the logic differs for how we want to handle
|
9
|
+
# creating `xcodebuild` commands for Xcode 9 (see test_command_generator.rb)
|
10
|
+
class TestCommandGeneratorXcode8 < TestCommandGeneratorBase
|
11
|
+
class << self
|
12
|
+
def generate(device_type: nil, language: nil, locale: nil)
|
13
|
+
parts = prefix
|
14
|
+
parts << "xcodebuild"
|
15
|
+
parts += options(language, locale)
|
16
|
+
parts += destination(device_type)
|
17
|
+
parts += build_settings(language, locale)
|
18
|
+
parts += actions
|
19
|
+
parts += suffix
|
20
|
+
parts += pipe(device_type, language, locale)
|
21
|
+
|
22
|
+
return parts
|
23
|
+
end
|
24
|
+
|
25
|
+
def pipe(device_type, language, locale)
|
26
|
+
log_path = xcodebuild_log_path(device_type: device_type, language: language, locale: locale)
|
27
|
+
pipe = ["| tee #{log_path.shellescape}"]
|
28
|
+
pipe << "| xcpretty #{Snapshot.config[:xcpretty_args]}"
|
29
|
+
pipe << "> /dev/null" if Snapshot.config[:suppress_xcode_output]
|
30
|
+
return pipe
|
31
|
+
end
|
32
|
+
|
33
|
+
def destination(device_name)
|
34
|
+
# on Mac we will always run on host machine, so should specify only platform
|
35
|
+
return ["-destination 'platform=macOS'"] if device_name =~ /^Mac/
|
36
|
+
|
37
|
+
# if device_name is nil, use the config and get all devices
|
38
|
+
os = device_name =~ /^Apple TV/ ? "tvOS" : "iOS"
|
39
|
+
os_version = Snapshot.config[:ios_version] || Snapshot::LatestOsVersion.version(os)
|
40
|
+
|
41
|
+
device = find_device(device_name, os_version)
|
42
|
+
if device.nil?
|
43
|
+
UI.user_error!("No device found named '#{device_name}' for version '#{os_version}'")
|
44
|
+
elsif device.os_version != os_version
|
45
|
+
UI.important("Using device named '#{device_name}' with version '#{device.os_version}' because no match was found for version '#{os_version}'")
|
46
|
+
end
|
47
|
+
value = "platform=#{os} Simulator,id=#{device.udid},OS=#{device.os_version}"
|
48
|
+
|
49
|
+
return ["-destination '#{value}'"]
|
50
|
+
end
|
51
|
+
|
52
|
+
def xcodebuild_log_path(device_type: nil, language: nil, locale: nil)
|
53
|
+
name_components = [Snapshot.project.app_name, Snapshot.config[:scheme]]
|
54
|
+
|
55
|
+
if Snapshot.config[:namespace_log_files]
|
56
|
+
name_components << device_type if device_type
|
57
|
+
name_components << language if language
|
58
|
+
name_components << locale if locale
|
59
|
+
end
|
60
|
+
|
61
|
+
file_name = "#{name_components.join('-')}.log"
|
62
|
+
|
63
|
+
containing = File.expand_path(Snapshot.config[:buildlog_path])
|
64
|
+
FileUtils.mkdir_p(containing)
|
65
|
+
|
66
|
+
return File.join(containing, file_name)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative 'module'
|
2
|
+
require_relative 'runner'
|
3
|
+
|
4
|
+
module Snapshot
|
5
|
+
# Migrate helper files
|
6
|
+
class Update
|
7
|
+
# @return [Array] A list of helper files (usually just one)
|
8
|
+
def self.find_helper
|
9
|
+
paths = Dir["./**/SnapshotHelper.swift"] + Dir["./**/SnapshotHelperXcode8.swift"]
|
10
|
+
# exclude assets in gym
|
11
|
+
paths.reject { |p| p.include?("snapshot/lib/assets/") || p.include?("DerivedData") }
|
12
|
+
end
|
13
|
+
|
14
|
+
def update(force: false)
|
15
|
+
paths = self.class.find_helper
|
16
|
+
UI.user_error!("Couldn't find any SnapshotHelper files in current directory") if paths.count == 0
|
17
|
+
|
18
|
+
UI.message("Found the following SnapshotHelper:")
|
19
|
+
paths.each { |p| UI.message("\t#{p}") }
|
20
|
+
UI.important("Are you sure you want to automatically update the helpers listed above?")
|
21
|
+
UI.message("This will overwrite all its content with the latest code.")
|
22
|
+
UI.message("The underlying API will not change. You can always migrate manually by looking at")
|
23
|
+
UI.message("https://github.com/fastlane/fastlane/blob/master/snapshot/lib/assets/SnapshotHelper.swift")
|
24
|
+
|
25
|
+
if !force && !UI.confirm("Overwrite configuration files?")
|
26
|
+
return 1
|
27
|
+
end
|
28
|
+
|
29
|
+
paths.each do |path|
|
30
|
+
UI.message("Updating '#{path}'...")
|
31
|
+
input_path = Snapshot::Runner.path_to_helper_file_from_gem
|
32
|
+
File.write(path, File.read(input_path))
|
33
|
+
end
|
34
|
+
|
35
|
+
UI.success("Successfully updated helper files")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative 'snapshot/runner'
|
2
|
+
require_relative 'snapshot/reports_generator'
|
3
|
+
require_relative 'snapshot/detect_values'
|
4
|
+
require_relative 'snapshot/screenshot_flatten'
|
5
|
+
require_relative 'snapshot/screenshot_rotate'
|
6
|
+
require_relative 'snapshot/dependency_checker'
|
7
|
+
require_relative 'snapshot/latest_os_version'
|
8
|
+
require_relative 'snapshot/test_command_generator'
|
9
|
+
require_relative 'snapshot/test_command_generator_xcode_8'
|
10
|
+
require_relative 'snapshot/error_handler'
|
11
|
+
require_relative 'snapshot/collector'
|
12
|
+
require_relative 'snapshot/options'
|
13
|
+
require_relative 'snapshot/update'
|
14
|
+
require_relative 'snapshot/fixes/simulator_zoom_fix'
|
15
|
+
require_relative 'snapshot/fixes/hardware_keyboard_fix'
|
16
|
+
require_relative 'snapshot/simulator_launchers/launcher_configuration'
|
17
|
+
require_relative 'snapshot/simulator_launchers/simulator_launcher'
|
18
|
+
require_relative 'snapshot/simulator_launchers/simulator_launcher_xcode_8'
|
19
|
+
require_relative 'snapshot/module'
|
data/spaceship/README.md
ADDED
@@ -0,0 +1,173 @@
|
|
1
|
+
<h3 align="center">
|
2
|
+
<a href="https://docs.fastlane.tools">
|
3
|
+
<img src="../fastlane/assets/fastlane.png" width="100" />
|
4
|
+
<br />
|
5
|
+
fastlane
|
6
|
+
</a>
|
7
|
+
</h3>
|
8
|
+
|
9
|
+
-------
|
10
|
+
|
11
|
+
<p align="center">
|
12
|
+
<img src="assets/spaceship.png" width="470">
|
13
|
+
</p>
|
14
|
+
|
15
|
+
-------
|
16
|
+
|
17
|
+
[![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
|
18
|
+
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/LICENSE)
|
19
|
+
|
20
|
+
_spaceship_ exposes both the Apple Developer Center and the App Store Connect API. It’s super fast, well tested and supports all of the operations you can do via the browser. It powers parts of _fastlane_, and can be leveraged for more advanced _fastlane_ features. Scripting your Developer Center workflow has never been easier!
|
21
|
+
|
22
|
+
Get in contact with the creators on Twitter: [@FastlaneTools](https://twitter.com/fastlanetools)
|
23
|
+
|
24
|
+
-------
|
25
|
+
|
26
|
+
<p align="center">
|
27
|
+
<a href="#whats-spaceship">Why?</a> •
|
28
|
+
<a href="#usage">Usage</a> •
|
29
|
+
<a href="#installation">Installation</a> •
|
30
|
+
<a href="#technical-details">Technical Details</a> •
|
31
|
+
<a href="#need-help">Need help?</a>
|
32
|
+
</p>
|
33
|
+
|
34
|
+
-------
|
35
|
+
|
36
|
+
<h5 align="center"><em>spaceship</em> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
|
37
|
+
|
38
|
+
# What's spaceship?
|
39
|
+
|
40
|
+
_spaceship_ uses a combination of [5 different API endpoints](#api-endpoints), used by the Apple Developer Portal and Xcode. As no API offers everything we need, spaceship combines all APIs for you. [More details about the APIs](#technical-details).
|
41
|
+
|
42
|
+
- Blazing fast communication using only a HTTP client
|
43
|
+
- Object oriented access to all resources
|
44
|
+
- Resistant against front-end design changes of the of the Apple Developer Portal
|
45
|
+
- One central tool for the communication
|
46
|
+
- Automatic re-trying of requests in case a timeout occurs
|
47
|
+
- No web scraping
|
48
|
+
- 90%+ test coverage by stubbing server responses
|
49
|
+
|
50
|
+
More details about why spaceship is useful on [spaceship.airforce](https://spaceship.airforce).
|
51
|
+
|
52
|
+
> No matter how many apps or certificates you have, spaceship **can** handle your scale.
|
53
|
+
|
54
|
+
## Example spaceship code
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
Spaceship.login
|
58
|
+
|
59
|
+
# Create a new app
|
60
|
+
app = Spaceship.app.create!(bundle_id: "com.krausefx.app", name: "Spaceship App")
|
61
|
+
|
62
|
+
# Use an existing certificate
|
63
|
+
cert = Spaceship.certificate.production.all.first
|
64
|
+
|
65
|
+
# Create a new provisioning profile
|
66
|
+
profile = Spaceship.provisioning_profile.app_store.create!(bundle_id: app.bundle_id,
|
67
|
+
certificate: cert)
|
68
|
+
|
69
|
+
# Print the name and download the new profile
|
70
|
+
puts("Created Profile " + profile.name)
|
71
|
+
profile.download
|
72
|
+
```
|
73
|
+
|
74
|
+
## Speed
|
75
|
+
|
76
|
+
Before _spaceship_, the [fastlane tools](https://fastlane.tools) used web scraping to interact with Apple's web services. With spaceship it is possible to directly access the underlying APIs using a simple HTTP client only.
|
77
|
+
|
78
|
+
Using spaceship, the execution time of [_sigh_](https://docs.fastlane.tools/actions/sigh/) was reduced from over 1 minute to less than 5 seconds.
|
79
|
+
|
80
|
+
![assets/SpaceshipRecording.gif](assets/SpaceshipRecording.gif)
|
81
|
+
|
82
|
+
# Installation
|
83
|
+
|
84
|
+
_spaceship_ is part of _fastlane_:
|
85
|
+
|
86
|
+
gem install fastlane
|
87
|
+
|
88
|
+
# Usage
|
89
|
+
|
90
|
+
## Playground
|
91
|
+
|
92
|
+
To try _spaceship_, just run `fastlane spaceship`. It will automatically start the `spaceship playground`. It makes it super easy to try _spaceship_ :rocket:
|
93
|
+
|
94
|
+
![assets/docs/Playground.png](assets/docs/Playground.png)
|
95
|
+
|
96
|
+
This requires you to install `pry` using `gem install pry`. `pry` is not installed by default, as most [_fastlane_](https://fastlane.tools) users won't need the `spaceship playground`. You can add the `pry` dependency to your `Gemfile`.
|
97
|
+
|
98
|
+
## Apple Developer Portal API
|
99
|
+
|
100
|
+
Open [DeveloperPortal.md](docs/DeveloperPortal.md) for code samples
|
101
|
+
|
102
|
+
## App Store Connect API
|
103
|
+
|
104
|
+
Open [AppStoreConnect.md](docs/AppStoreConnect.md) for code samples
|
105
|
+
|
106
|
+
## 2 Step Verification
|
107
|
+
|
108
|
+
When your Apple account has 2 factor verification enabled, you'll automatically be asked to verify your identity. If you have a trusted device configured for your account, then a code will appear on the device. If you don't have any devices configured, but have trusted a phone number, then a code will be sent to your phone. The resulting session will be stored in `~/.fastlane/spaceship/[email]/cookie`. The session should be valid for about one month, however there is no way to test this without actually waiting for over a month.
|
109
|
+
|
110
|
+
### Support for CI machines
|
111
|
+
|
112
|
+
#### Web sessions
|
113
|
+
|
114
|
+
See [Best Practices > Continuous Integration > Authenticating with Apple services > Method 2: Two-step or two-factor authentication > Storing a manually verified session using spaceauth](https://docs.fastlane.tools/best-practices/continuous-integration/#storing-a-manually-verified-session-using-spaceauth)
|
115
|
+
|
116
|
+
#### Transporter
|
117
|
+
|
118
|
+
See [Best Practices > Continuous Integration > Authenticating with Apple services > Method 3: Application-specific passwords](https://docs.fastlane.tools/best-practices/continuous-integration/#method-3-application-specific-passwords)
|
119
|
+
|
120
|
+
## _spaceship_ in use
|
121
|
+
|
122
|
+
All [fastlane tools](https://fastlane.tools) that communicate with Apple's web services in some way, use _spaceship_ to do so.
|
123
|
+
|
124
|
+
# Technical Details
|
125
|
+
|
126
|
+
## API Endpoints
|
127
|
+
|
128
|
+
Overview of the used API endpoints
|
129
|
+
|
130
|
+
- `https://idmsa.apple.com`:
|
131
|
+
- Used to authenticate to get a valid session
|
132
|
+
- `https://developerservices2.apple.com`:
|
133
|
+
- Get a list of all available provisioning profiles
|
134
|
+
- Register new devices
|
135
|
+
- `https://developer.apple.com`:
|
136
|
+
- List all devices, certificates, apps and app groups
|
137
|
+
- Create new certificates, provisioning profiles and apps
|
138
|
+
- Disable/enable services on apps and assign them to app groups
|
139
|
+
- Delete certificates and apps
|
140
|
+
- Repair provisioning profiles
|
141
|
+
- Download provisioning profiles
|
142
|
+
- Team selection
|
143
|
+
- `https://appstoreconnect.apple.com`:
|
144
|
+
- Managing apps
|
145
|
+
- Managing beta testers
|
146
|
+
- Submitting updates to review
|
147
|
+
- Managing app metadata
|
148
|
+
- `https://du-itc.appstoreconnect.apple.com`:
|
149
|
+
- Upload icons, screenshots, trailers ...
|
150
|
+
- `https://is[1-9]-ssl.mzstatic.com`:
|
151
|
+
- Download app screenshots from App Store Connect
|
152
|
+
|
153
|
+
_spaceship_ uses all those API points to offer this seamless experience.
|
154
|
+
|
155
|
+
## Magic involved
|
156
|
+
|
157
|
+
_spaceship_ does a lot of magic to get everything working so neatly:
|
158
|
+
|
159
|
+
- **Sensible Defaults**: You only have to provide the mandatory information (e.g. new provisioning profiles contain all devices by default)
|
160
|
+
- **Local Validation**: When pushing changes back to the Apple Developer Portal _spaceship_ will make sure only valid data is sent to Apple (e.g. automatic repairing of provisioning profiles)
|
161
|
+
- **Various request/response types**: When working with the different API endpoints, _spaceship_ has to deal with `JSON`, `XML`, `txt`, `plist` and sometimes even `HTML` responses and requests.
|
162
|
+
- **Automatic Pagination**: Even if you have thousands of apps, profiles or certificates, _spaceship_ **can** handle your scale. It was heavily tested by first using _spaceship_ to create hundreds of profiles and then accessing them using _spaceship_.
|
163
|
+
- **Session, Cookie and CSRF token**: All the security aspects are handled by _spaceship_.
|
164
|
+
- **Profile Magic**: Create and upload code signing requests, all managed by _spaceship_
|
165
|
+
- **Multiple Spaceship**: You can launch multiple _spaceships_ with different Apple accounts to do things like syncing the registered devices.
|
166
|
+
|
167
|
+
# Code of Conduct
|
168
|
+
Help us keep _fastlane_ open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
|
169
|
+
|
170
|
+
# License
|
171
|
+
This project is licensed under the terms of the MIT license. See the LICENSE file.
|
172
|
+
|
173
|
+
> This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
|