fastlane_hotfix 2.165.0 → 2.187.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +106 -86
- data/cert/lib/cert/commands_generator.rb +2 -1
- data/cert/lib/cert/options.rb +6 -5
- data/cert/lib/cert/runner.rb +8 -8
- data/deliver/lib/assets/summary.html.erb +10 -10
- data/deliver/lib/deliver/app_screenshot.rb +17 -11
- data/deliver/lib/deliver/app_screenshot_validator.rb +108 -0
- data/deliver/lib/deliver/commands_generator.rb +4 -3
- data/deliver/lib/deliver/detect_values.rb +5 -3
- data/deliver/lib/deliver/download_screenshots.rb +2 -3
- data/deliver/lib/deliver/html_generator.rb +2 -2
- data/deliver/lib/deliver/languages.rb +1 -1
- data/deliver/lib/deliver/loader.rb +123 -21
- data/deliver/lib/deliver/module.rb +6 -0
- data/deliver/lib/deliver/options.rb +41 -55
- data/deliver/lib/deliver/runner.rb +19 -14
- data/deliver/lib/deliver/setup.rb +9 -5
- data/deliver/lib/deliver/submit_for_review.rb +4 -4
- data/deliver/lib/deliver/upload_metadata.rb +32 -21
- data/deliver/lib/deliver/upload_price_tier.rb +1 -1
- data/deliver/lib/deliver/upload_screenshots.rb +14 -76
- data/fastlane/lib/fastlane/actions/actions_helper.rb +3 -3
- data/fastlane/lib/fastlane/actions/adb.rb +2 -5
- data/fastlane/lib/fastlane/actions/adb_devices.rb +0 -1
- data/fastlane/lib/fastlane/actions/add_git_tag.rb +22 -6
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +17 -17
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +21 -7
- data/fastlane/lib/fastlane/actions/appaloosa.rb +7 -2
- data/fastlane/lib/fastlane/actions/appetize.rb +13 -8
- data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +0 -11
- data/fastlane/lib/fastlane/actions/appium.rb +40 -65
- data/fastlane/lib/fastlane/actions/appledoc.rb +46 -46
- data/fastlane/lib/fastlane/actions/apteligent.rb +3 -2
- data/fastlane/lib/fastlane/actions/artifactory.rb +41 -9
- data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +7 -13
- data/fastlane/lib/fastlane/actions/backup_file.rb +1 -1
- data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +3 -3
- data/fastlane/lib/fastlane/actions/badge.rb +9 -13
- data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +11 -5
- data/fastlane/lib/fastlane/actions/build_app.rb +7 -1
- data/fastlane/lib/fastlane/actions/bundle_install.rb +8 -10
- data/fastlane/lib/fastlane/actions/carthage.rb +22 -14
- data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +8 -17
- data/fastlane/lib/fastlane/actions/chatwork.rb +3 -2
- data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +9 -1
- data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +0 -1
- data/fastlane/lib/fastlane/actions/clean_cocoapods_cache.rb +0 -1
- data/fastlane/lib/fastlane/actions/clipboard.rb +3 -6
- data/fastlane/lib/fastlane/actions/cloc.rb +9 -13
- data/fastlane/lib/fastlane/actions/cocoapods.rb +23 -15
- data/fastlane/lib/fastlane/actions/commit_github_file.rb +12 -4
- data/fastlane/lib/fastlane/actions/commit_version_bump.rb +6 -7
- data/fastlane/lib/fastlane/actions/copy_artifacts.rb +3 -4
- data/fastlane/lib/fastlane/actions/crashlytics.rb +7 -11
- data/fastlane/lib/fastlane/actions/create_app_on_managed_play_store.rb +70 -76
- data/fastlane/lib/fastlane/actions/create_keychain.rb +13 -11
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +15 -9
- data/fastlane/lib/fastlane/actions/create_xcframework.rb +123 -0
- data/fastlane/lib/fastlane/actions/danger.rb +13 -12
- data/fastlane/lib/fastlane/actions/deploygate.rb +1 -2
- data/fastlane/lib/fastlane/actions/docs/build_app.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +27 -28
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +7 -3
- data/fastlane/lib/fastlane/actions/docs/create_app_online.md +171 -67
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +20 -3
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +9 -3
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +39 -16
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +15 -5
- data/fastlane/lib/fastlane/actions/download_app_privacy_details_from_app_store.rb +142 -0
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +8 -20
- data/fastlane/lib/fastlane/actions/dsym_zip.rb +1 -1
- data/fastlane/lib/fastlane/actions/ensure_env_vars.rb +2 -6
- data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +0 -1
- data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +3 -4
- data/fastlane/lib/fastlane/actions/ensure_no_debug_code.rb +3 -5
- data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +1 -2
- data/fastlane/lib/fastlane/actions/environment_variable.rb +13 -21
- data/fastlane/lib/fastlane/actions/erb.rb +2 -5
- data/fastlane/lib/fastlane/actions/get_build_number_repository.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_certificates.rb +5 -1
- data/fastlane/lib/fastlane/actions/get_github_release.rb +11 -1
- data/fastlane/lib/fastlane/actions/get_ipa_info_plist_value.rb +0 -1
- data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +32 -35
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +9 -1
- data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_version_number.rb +17 -10
- data/fastlane/lib/fastlane/actions/git_add.rb +5 -10
- data/fastlane/lib/fastlane/actions/git_branch.rb +4 -10
- data/fastlane/lib/fastlane/actions/git_commit.rb +12 -10
- data/fastlane/lib/fastlane/actions/git_pull.rb +4 -10
- data/fastlane/lib/fastlane/actions/git_remote_branch.rb +57 -0
- data/fastlane/lib/fastlane/actions/git_submodule_update.rb +16 -8
- data/fastlane/lib/fastlane/actions/git_tag_exists.rb +4 -0
- data/fastlane/lib/fastlane/actions/github_api.rb +17 -8
- data/fastlane/lib/fastlane/actions/gradle.rb +12 -20
- data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +1 -1
- data/fastlane/lib/fastlane/actions/hg_push.rb +1 -1
- data/fastlane/lib/fastlane/actions/hipchat.rb +6 -6
- data/fastlane/lib/fastlane/actions/hockey.rb +5 -12
- data/fastlane/lib/fastlane/actions/ifttt.rb +3 -6
- data/fastlane/lib/fastlane/actions/import_from_git.rb +7 -9
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +8 -2
- data/fastlane/lib/fastlane/actions/install_on_device.rb +3 -6
- data/fastlane/lib/fastlane/actions/install_provisioning_profile.rb +4 -0
- data/fastlane/lib/fastlane/actions/installr.rb +22 -25
- data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
- data/fastlane/lib/fastlane/actions/jazzy.rb +11 -8
- data/fastlane/lib/fastlane/actions/jira.rb +61 -14
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +6 -6
- data/fastlane/lib/fastlane/actions/lcov.rb +0 -4
- data/fastlane/lib/fastlane/actions/mailgun.rb +21 -27
- data/fastlane/lib/fastlane/actions/make_changelog_from_jenkins.rb +1 -1
- data/fastlane/lib/fastlane/actions/match_nuke.rb +59 -0
- data/fastlane/lib/fastlane/actions/modify_services.rb +59 -24
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +3 -2
- data/fastlane/lib/fastlane/actions/notarize.rb +98 -54
- data/fastlane/lib/fastlane/actions/notification.rb +1 -1
- data/fastlane/lib/fastlane/actions/number_of_commits.rb +1 -1
- data/fastlane/lib/fastlane/actions/oclint.rb +15 -14
- data/fastlane/lib/fastlane/actions/onesignal.rb +13 -3
- data/fastlane/lib/fastlane/actions/pod_push.rb +9 -2
- data/fastlane/lib/fastlane/actions/podio_item.rb +0 -7
- data/fastlane/lib/fastlane/actions/prompt.rb +3 -4
- data/fastlane/lib/fastlane/actions/push_git_tags.rb +1 -1
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +14 -3
- data/fastlane/lib/fastlane/actions/puts.rb +1 -2
- data/fastlane/lib/fastlane/actions/register_device.rb +10 -13
- data/fastlane/lib/fastlane/actions/register_devices.rb +11 -14
- data/fastlane/lib/fastlane/actions/reset_git_repo.rb +5 -8
- data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +0 -2
- data/fastlane/lib/fastlane/actions/resign.rb +2 -9
- data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
- data/fastlane/lib/fastlane/actions/rsync.rb +3 -6
- data/fastlane/lib/fastlane/actions/run_tests.rb +1 -1
- data/fastlane/lib/fastlane/actions/s3.rb +1 -1
- data/fastlane/lib/fastlane/actions/say.rb +2 -3
- data/fastlane/lib/fastlane/actions/scp.rb +4 -10
- data/fastlane/lib/fastlane/actions/set_build_number_repository.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_changelog.rb +10 -13
- data/fastlane/lib/fastlane/actions/set_github_release.rb +23 -16
- data/fastlane/lib/fastlane/actions/set_info_plist_value.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_pod_key.rb +3 -4
- data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -2
- data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_jenkins.rb +7 -12
- data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
- data/fastlane/lib/fastlane/actions/sh.rb +2 -4
- data/fastlane/lib/fastlane/actions/slack.rb +164 -145
- data/fastlane/lib/fastlane/actions/slather.rb +5 -21
- data/fastlane/lib/fastlane/actions/sonar.rb +12 -19
- data/fastlane/lib/fastlane/actions/sourcedocs.rb +128 -0
- data/fastlane/lib/fastlane/actions/spaceship_logs.rb +1 -1
- data/fastlane/lib/fastlane/actions/splunkmint.rb +2 -2
- data/fastlane/lib/fastlane/actions/spm.rb +8 -2
- data/fastlane/lib/fastlane/actions/ssh.rb +5 -10
- data/fastlane/lib/fastlane/actions/swiftlint.rb +21 -19
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +6 -1
- data/fastlane/lib/fastlane/actions/testfairy.rb +0 -1
- data/fastlane/lib/fastlane/actions/tryouts.rb +2 -3
- data/fastlane/lib/fastlane/actions/twitter.rb +0 -5
- data/fastlane/lib/fastlane/actions/unlock_keychain.rb +3 -3
- data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +1 -4
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +8 -15
- data/fastlane/lib/fastlane/actions/update_fastlane.rb +31 -10
- data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +1 -4
- data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +1 -4
- data/fastlane/lib/fastlane/actions/update_plist.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +3 -4
- data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +0 -1
- data/fastlane/lib/fastlane/actions/update_url_schemes.rb +15 -26
- 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 +8 -7
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +3 -10
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +8 -4
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +7 -2
- data/fastlane/lib/fastlane/actions/validate_play_store_json_key.rb +40 -44
- data/fastlane/lib/fastlane/actions/version_get_podspec.rb +1 -2
- data/fastlane/lib/fastlane/actions/xcode_install.rb +8 -5
- data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +3 -3
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +5 -5
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +6 -3
- data/fastlane/lib/fastlane/commands_generator.rb +2 -1
- data/fastlane/lib/fastlane/documentation/actions_list.rb +2 -2
- data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
- data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +1 -1
- data/fastlane/lib/fastlane/environment_printer.rb +1 -0
- data/fastlane/lib/fastlane/erb_template_helper.rb +7 -1
- data/fastlane/lib/fastlane/fast_file.rb +19 -7
- data/fastlane/lib/fastlane/fastlane_require.rb +7 -1
- data/fastlane/lib/fastlane/features.rb +1 -1
- data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
- data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +4 -4
- data/fastlane/lib/fastlane/helper/gem_helper.rb +2 -2
- data/fastlane/lib/fastlane/helper/git_helper.rb +34 -5
- data/fastlane/lib/fastlane/lane_manager.rb +3 -2
- data/fastlane/lib/fastlane/notification/slack.rb +56 -0
- data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +1 -2
- data/fastlane/lib/fastlane/plugins/plugin_info.rb +2 -2
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +1 -2
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -3
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +7 -6
- data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +1 -1
- data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +1 -1
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +31 -35
- data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +1 -1
- data/fastlane/lib/fastlane/setup/setup.rb +23 -10
- data/fastlane/lib/fastlane/setup/setup_ios.rb +3 -3
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +3 -0
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +44 -16
- data/fastlane/lib/fastlane/swift_runner_upgrader.rb +2 -0
- data/fastlane/lib/fastlane/version.rb +2 -2
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +23 -23
- data/fastlane/swift/Fastfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +7965 -4213
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +4 -0
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +15 -3
- data/fastlane/swift/LaneFileProtocol.swift +12 -6
- data/fastlane/swift/MainProcess.swift +3 -1
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +4 -4
- data/fastlane/swift/OptionalConfigValue.swift +101 -0
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +2 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +8 -4
- data/fastlane/swift/RubyCommand.swift +2 -2
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +3 -3
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +34 -2
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +5 -5
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +19 -3
- data/fastlane/swift/SocketClient.swift +4 -3
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +5 -3
- data/fastlane/swift/formatting/Brewfile.lock.json +24 -16
- data/fastlane/swift/main.swift +1 -1
- data/fastlane/swift/upgrade_manifest.json +1 -1
- data/fastlane_core/lib/fastlane_core.rb +22 -20
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +89 -12
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +12 -7
- data/fastlane_core/lib/fastlane_core/clipboard.rb +20 -0
- data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -9
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +6 -1
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +41 -3
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +14 -8
- data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +78 -14
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +41 -16
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +3 -2
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +20 -15
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
- data/fastlane_core/lib/fastlane_core/languages.rb +2 -2
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +3 -2
- data/fastlane_core/lib/fastlane_core/print_table.rb +5 -3
- data/fastlane_core/lib/fastlane_core/project.rb +48 -28
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +3 -1
- data/{deliver/lib/deliver → fastlane_core/lib/fastlane_core}/queue_worker.rb +4 -4
- data/fastlane_core/lib/fastlane_core/swag.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +8 -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 +16 -2
- data/fastlane_core/lib/fastlane_core/ui/interface.rb +1 -1
- data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +2 -2
- data/frameit/lib/frameit/commands_generator.rb +2 -1
- data/frameit/lib/frameit/config_parser.rb +2 -2
- data/frameit/lib/frameit/device_types.rb +7 -1
- data/frameit/lib/frameit/frame_downloader.rb +2 -1
- data/gym/lib/gym/code_signing_mapping.rb +3 -3
- data/gym/lib/gym/commands_generator.rb +2 -1
- data/gym/lib/gym/error_handler.rb +8 -0
- data/gym/lib/gym/generators/build_command_generator.rb +3 -0
- data/gym/lib/gym/generators/package_command_generator.rb +4 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +21 -15
- data/gym/lib/gym/options.rb +19 -3
- data/gym/lib/gym/runner.rb +15 -4
- data/match/lib/match/change_password.rb +3 -3
- data/match/lib/match/commands_generator.rb +2 -1
- data/match/lib/match/encryption/interface.rb +1 -1
- data/match/lib/match/encryption/openssl.rb +5 -3
- data/match/lib/match/importer.rb +9 -10
- data/match/lib/match/migrate.rb +2 -3
- data/match/lib/match/module.rb +2 -1
- data/match/lib/match/nuke.rb +19 -15
- data/match/lib/match/options.rb +4 -3
- data/match/lib/match/runner.rb +3 -4
- data/match/lib/match/spaceship_ensure.rb +3 -0
- data/match/lib/match/storage/git_storage.rb +14 -10
- data/match/lib/match/storage/google_cloud_storage.rb +2 -2
- data/match/lib/match/storage/s3_storage.rb +2 -2
- data/pem/lib/pem/commands_generator.rb +2 -1
- data/pilot/lib/pilot.rb +0 -1
- data/pilot/lib/pilot/build_manager.rb +41 -15
- data/pilot/lib/pilot/commands_generator.rb +2 -1
- data/pilot/lib/pilot/manager.rb +11 -8
- data/pilot/lib/pilot/options.rb +18 -9
- data/pilot/lib/pilot/tester_exporter.rb +0 -1
- data/pilot/lib/pilot/tester_manager.rb +0 -1
- data/precheck/lib/precheck/commands_generator.rb +2 -1
- data/precheck/lib/precheck/options.rb +9 -3
- data/precheck/lib/precheck/rule_processor.rb +1 -1
- data/precheck/lib/precheck/runner.rb +14 -9
- data/produce/lib/produce/commands_generator.rb +101 -28
- data/produce/lib/produce/developer_center.rb +42 -4
- data/produce/lib/produce/options.rb +1 -1
- data/produce/lib/produce/service.rb +270 -179
- data/scan/lib/scan/commands_generator.rb +2 -1
- data/scan/lib/scan/detect_values.rb +7 -2
- data/scan/lib/scan/module.rb +4 -0
- data/scan/lib/scan/options.rb +46 -1
- data/scan/lib/scan/runner.rb +88 -3
- data/scan/lib/scan/slack_poster.rb +4 -1
- data/scan/lib/scan/test_command_generator.rb +13 -8
- data/screengrab/lib/screengrab/android_environment.rb +5 -53
- data/screengrab/lib/screengrab/commands_generator.rb +2 -1
- data/screengrab/lib/screengrab/dependency_checker.rb +0 -20
- data/screengrab/lib/screengrab/options.rb +5 -2
- data/screengrab/lib/screengrab/runner.rb +111 -108
- data/sigh/lib/assets/resign.sh +81 -61
- data/sigh/lib/sigh/commands_generator.rb +2 -1
- data/sigh/lib/sigh/download_all.rb +4 -8
- data/sigh/lib/sigh/options.rb +3 -2
- data/sigh/lib/sigh/runner.rb +9 -9
- data/snapshot/lib/assets/SnapfileTemplate +3 -2
- data/snapshot/lib/assets/SnapfileTemplate.swift +2 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +20 -12
- data/snapshot/lib/snapshot/commands_generator.rb +3 -1
- data/snapshot/lib/snapshot/options.rb +22 -2
- data/snapshot/lib/snapshot/reports_generator.rb +7 -1
- data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +10 -5
- data/snapshot/lib/snapshot/test_command_generator.rb +18 -4
- data/snapshot/lib/snapshot/test_command_generator_base.rb +3 -1
- data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +1 -1
- data/snapshot/lib/snapshot/update.rb +1 -1
- data/spaceship/README.md +4 -14
- data/spaceship/lib/spaceship/base.rb +2 -2
- data/spaceship/lib/spaceship/client.rb +44 -16
- data/spaceship/lib/spaceship/commands_generator.rb +4 -2
- data/spaceship/lib/spaceship/connect_api.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/api_client.rb +67 -9
- data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +39 -6
- data/spaceship/lib/spaceship/connect_api/models/app.rb +95 -55
- 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 +26 -10
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +8 -4
- data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +15 -11
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +18 -9
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +10 -8
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +20 -11
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_attachment.rb +7 -5
- data/spaceship/lib/spaceship/connect_api/models/app_store_review_detail.rb +6 -4
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +62 -38
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +27 -14
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_submission.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +6 -4
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +29 -3
- data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +15 -9
- data/spaceship/lib/spaceship/connect_api/models/build.rb +34 -17
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +41 -6
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +86 -21
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +12 -8
- data/spaceship/lib/spaceship/connect_api/models/device.rb +36 -4
- data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +6 -4
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +18 -8
- data/spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb +9 -6
- data/spaceship/lib/spaceship/connect_api/models/territory.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/models/user.rb +6 -4
- data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +22 -6
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +99 -2
- data/spaceship/lib/spaceship/connect_api/response.rb +3 -1
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +50 -0
- data/spaceship/lib/spaceship/connect_api/token.rb +15 -3
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +122 -2
- data/spaceship/lib/spaceship/errors.rb +19 -0
- data/spaceship/lib/spaceship/playground.rb +2 -2
- data/spaceship/lib/spaceship/spaceauth_runner.rb +38 -15
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +1 -1
- data/spaceship/lib/spaceship/tunes/members.rb +1 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +4 -4
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +59 -33
- data/spaceship/lib/spaceship/ui.rb +2 -2
- data/spaceship/lib/spaceship/upgrade_2fa_later_client.rb +91 -0
- data/supply/lib/supply.rb +1 -1
- data/supply/lib/supply/client.rb +5 -3
- data/supply/lib/supply/commands_generator.rb +2 -1
- data/supply/lib/supply/options.rb +3 -3
- data/supply/lib/supply/uploader.rb +6 -4
- metadata +124 -92
- data/pilot/lib/pilot/features.rb +0 -0
- data/pilot/lib/pilot/tester_util.rb +0 -0
@@ -0,0 +1,123 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
XCFRAMEWORK_PATH ||= :XCFRAMEWORK_PATH
|
5
|
+
end
|
6
|
+
|
7
|
+
class CreateXcframeworkAction < Action
|
8
|
+
def self.run(params)
|
9
|
+
UI.user_error!("Please provide either :frameworks or :libraries to be packaged into the xcframework") unless params[:frameworks] || params[:libraries]
|
10
|
+
|
11
|
+
create_command = ['xcodebuild', '-create-xcframework']
|
12
|
+
create_command << params[:frameworks].map { |framework| ['-framework', "\"#{framework}\""] }.flatten if params[:frameworks]
|
13
|
+
create_command << params[:libraries].map { |library, headers| ['-library', "\"#{library}\""] + (headers.empty? ? [] : ['-headers', "\"#{headers}\""]) } if params[:libraries]
|
14
|
+
create_command << ['-output', "\"#{params[:output]}\""]
|
15
|
+
create_command << ['-allow-internal-distribution'] if params[:allow_internal_distribution]
|
16
|
+
|
17
|
+
if File.directory?(params[:output])
|
18
|
+
UI.message("Deleting existing: #{params[:output]}")
|
19
|
+
FileUtils.remove_dir(params[:output])
|
20
|
+
end
|
21
|
+
|
22
|
+
Actions.lane_context[SharedValues::XCFRAMEWORK_PATH] = params[:output]
|
23
|
+
|
24
|
+
sh(create_command)
|
25
|
+
end
|
26
|
+
|
27
|
+
#####################################################
|
28
|
+
# @!group Documentation
|
29
|
+
#####################################################
|
30
|
+
|
31
|
+
def self.description
|
32
|
+
"Package multiple build configs of a library/framework into a single xcframework"
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.details
|
36
|
+
<<~DETAILS
|
37
|
+
Utility for packaging multiple build configurations of a given library
|
38
|
+
or framework into a single xcframework.
|
39
|
+
|
40
|
+
If you want to package several frameworks just provide an array containing
|
41
|
+
the list of frameworks to be packaged using the :frameworks parameter.
|
42
|
+
|
43
|
+
If you want to package several libraries with their corresponding headers
|
44
|
+
provide a hash containing the library as the key and the directory containing
|
45
|
+
its headers as the value (or an empty string if there are no headers associated
|
46
|
+
with the provided library).
|
47
|
+
|
48
|
+
Finally specify the location of the xcframework to be generated using the :output
|
49
|
+
parameter.
|
50
|
+
DETAILS
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.available_options
|
54
|
+
[
|
55
|
+
FastlaneCore::ConfigItem.new(key: :frameworks,
|
56
|
+
env_name: "FL_CREATE_XCFRAMEWORK_FRAMEWORKS",
|
57
|
+
description: "Frameworks to add to the target xcframework",
|
58
|
+
type: Array,
|
59
|
+
optional: true,
|
60
|
+
conflicting_options: [:libraries],
|
61
|
+
verify_block: proc do |value|
|
62
|
+
value.each do |framework|
|
63
|
+
UI.user_error!("#{framework} doesn't end with '.framework'. Is this really a framework?") unless framework.end_with?('.framework')
|
64
|
+
UI.user_error!("Couldn't find framework at #{framework}") unless File.exist?(framework)
|
65
|
+
UI.user_error!("#{framework} doesn't seem to be a framework") unless File.directory?(framework)
|
66
|
+
end
|
67
|
+
end),
|
68
|
+
FastlaneCore::ConfigItem.new(key: :libraries,
|
69
|
+
env_name: "FL_CREATE_XCFRAMEWORK_LIBRARIES",
|
70
|
+
description: "Libraries to add to the target xcframework, with their corresponding headers",
|
71
|
+
type: Hash,
|
72
|
+
optional: true,
|
73
|
+
conflicting_options: [:frameworks],
|
74
|
+
verify_block: proc do |value|
|
75
|
+
value.each do |library, headers|
|
76
|
+
UI.user_error!("Couldn't find library at #{library}") unless File.exist?(library)
|
77
|
+
UI.user_error!("#{headers} doesn't exist or is not a directory") unless headers.empty? || File.directory?(headers)
|
78
|
+
end
|
79
|
+
end),
|
80
|
+
FastlaneCore::ConfigItem.new(key: :output,
|
81
|
+
env_name: "FL_CREATE_XCFRAMEWORK_OUTPUT",
|
82
|
+
description: "The path to write the xcframework to",
|
83
|
+
type: String,
|
84
|
+
optional: false),
|
85
|
+
FastlaneCore::ConfigItem.new(key: :allow_internal_distribution,
|
86
|
+
env_name: "FL_CREATE_XCFRAMEWORK_ALLOW_INTERNAL_DISTRIBUTION",
|
87
|
+
description: "Specifies that the created xcframework contains information not suitable for public distribution",
|
88
|
+
type: Boolean,
|
89
|
+
optional: true,
|
90
|
+
default_value: false)
|
91
|
+
]
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.output
|
95
|
+
[
|
96
|
+
['XCFRAMEWORK_PATH', 'Location of the generated xcframework']
|
97
|
+
]
|
98
|
+
end
|
99
|
+
|
100
|
+
def self.return_value
|
101
|
+
end
|
102
|
+
|
103
|
+
def self.example_code
|
104
|
+
[
|
105
|
+
"create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework')",
|
106
|
+
"create_xcframework(libraries: { 'LibraryA.so' => '', 'LibraryB.so' => 'LibraryBHeaders'}, output: 'UniversalFramework.xcframework')"
|
107
|
+
]
|
108
|
+
end
|
109
|
+
|
110
|
+
def self.category
|
111
|
+
:building
|
112
|
+
end
|
113
|
+
|
114
|
+
def self.authors
|
115
|
+
["jgongo"]
|
116
|
+
end
|
117
|
+
|
118
|
+
def self.is_supported?(platform)
|
119
|
+
[:ios, :mac].include?(platform)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -17,6 +17,7 @@ module Fastlane
|
|
17
17
|
cmd << "--danger_id=#{danger_id}" if danger_id
|
18
18
|
cmd << "--dangerfile=#{dangerfile}" if dangerfile
|
19
19
|
cmd << "--fail-on-errors=true" if params[:fail_on_errors]
|
20
|
+
cmd << "--fail-if-no-pr=true" if params[:fail_if_no_pr]
|
20
21
|
cmd << "--new-comment" if params[:new_comment]
|
21
22
|
cmd << "--remove-previous-comments" if params[:remove_previous_comments]
|
22
23
|
cmd << "--base=#{base}" if base
|
@@ -44,62 +45,62 @@ module Fastlane
|
|
44
45
|
FastlaneCore::ConfigItem.new(key: :use_bundle_exec,
|
45
46
|
env_name: "FL_DANGER_USE_BUNDLE_EXEC",
|
46
47
|
description: "Use bundle exec when there is a Gemfile presented",
|
47
|
-
|
48
|
+
type: Boolean,
|
48
49
|
default_value: true),
|
49
50
|
FastlaneCore::ConfigItem.new(key: :verbose,
|
50
51
|
env_name: "FL_DANGER_VERBOSE",
|
51
52
|
description: "Show more debugging information",
|
52
|
-
|
53
|
+
type: Boolean,
|
53
54
|
default_value: false),
|
54
55
|
FastlaneCore::ConfigItem.new(key: :danger_id,
|
55
56
|
env_name: "FL_DANGER_ID",
|
56
57
|
description: "The identifier of this Danger instance",
|
57
|
-
is_string: true,
|
58
58
|
optional: true),
|
59
59
|
FastlaneCore::ConfigItem.new(key: :dangerfile,
|
60
60
|
env_name: "FL_DANGER_DANGERFILE",
|
61
61
|
description: "The location of your Dangerfile",
|
62
|
-
is_string: true,
|
63
62
|
optional: true),
|
64
63
|
FastlaneCore::ConfigItem.new(key: :github_api_token,
|
65
64
|
env_name: "FL_DANGER_GITHUB_API_TOKEN",
|
66
65
|
description: "GitHub API token for danger",
|
67
66
|
sensitive: true,
|
68
|
-
|
67
|
+
code_gen_sensitive: true,
|
69
68
|
optional: true),
|
70
69
|
FastlaneCore::ConfigItem.new(key: :fail_on_errors,
|
71
70
|
env_name: "FL_DANGER_FAIL_ON_ERRORS",
|
72
71
|
description: "Should always fail the build process, defaults to false",
|
73
|
-
|
72
|
+
type: Boolean,
|
74
73
|
optional: true,
|
75
74
|
default_value: false),
|
76
75
|
FastlaneCore::ConfigItem.new(key: :new_comment,
|
77
76
|
env_name: "FL_DANGER_NEW_COMMENT",
|
78
77
|
description: "Makes Danger post a new comment instead of editing its previous one",
|
79
|
-
|
78
|
+
type: Boolean,
|
80
79
|
optional: true,
|
81
80
|
default_value: false),
|
82
81
|
FastlaneCore::ConfigItem.new(key: :remove_previous_comments,
|
83
82
|
env_name: "FL_DANGER_REMOVE_PREVIOUS_COMMENT",
|
84
83
|
description: "Makes Danger remove all previous comment and create a new one in the end of the list",
|
85
|
-
|
84
|
+
type: Boolean,
|
86
85
|
optional: true,
|
87
86
|
default_value: false),
|
88
87
|
FastlaneCore::ConfigItem.new(key: :base,
|
89
88
|
env_name: "FL_DANGER_BASE",
|
90
89
|
description: "A branch/tag/commit to use as the base of the diff. [master|dev|stable]",
|
91
|
-
is_string: true,
|
92
90
|
optional: true),
|
93
91
|
FastlaneCore::ConfigItem.new(key: :head,
|
94
92
|
env_name: "FL_DANGER_HEAD",
|
95
93
|
description: "A branch/tag/commit to use as the head. [master|dev|stable]",
|
96
|
-
is_string: true,
|
97
94
|
optional: true),
|
98
95
|
FastlaneCore::ConfigItem.new(key: :pr,
|
99
96
|
env_name: "FL_DANGER_PR",
|
100
97
|
description: "Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\"",
|
101
|
-
|
102
|
-
|
98
|
+
optional: true),
|
99
|
+
FastlaneCore::ConfigItem.new(key: :fail_if_no_pr,
|
100
|
+
env_name: "FL_DANGER_FAIL_IF_NO_PR",
|
101
|
+
description: "Fail Danger execution if no PR is found",
|
102
|
+
type: Boolean,
|
103
|
+
default_value: false)
|
103
104
|
]
|
104
105
|
end
|
105
106
|
|
@@ -157,13 +157,12 @@ module Fastlane
|
|
157
157
|
description: "Release note for distribution page"),
|
158
158
|
FastlaneCore::ConfigItem.new(key: :disable_notify,
|
159
159
|
optional: true,
|
160
|
-
|
160
|
+
type: Boolean,
|
161
161
|
default_value: false,
|
162
162
|
env_name: "DEPLOYGATE_DISABLE_NOTIFY",
|
163
163
|
description: "Disables Push notification emails"),
|
164
164
|
FastlaneCore::ConfigItem.new(key: :distribution_name,
|
165
165
|
optional: true,
|
166
|
-
is_string: true,
|
167
166
|
env_name: "DEPLOYGATE_DISTRIBUTION_NAME",
|
168
167
|
description: "Target Distribution Name")
|
169
168
|
]
|
@@ -148,8 +148,8 @@ Optional: If _gym_ can't automatically detect the provisioning profiles to use,
|
|
148
148
|
```ruby
|
149
149
|
build_app(
|
150
150
|
scheme: "Release",
|
151
|
+
export_method: "app-store",
|
151
152
|
export_options: {
|
152
|
-
method: "app-store",
|
153
153
|
provisioningProfiles: {
|
154
154
|
"com.example.bundleid" => "Provisioning Profile Name",
|
155
155
|
"com.example.bundleid2" => "Provisioning Profile Name 2"
|
@@ -21,7 +21,7 @@ _screengrab_ generates localized screenshots of your Android app for different d
|
|
21
21
|
Install the gem
|
22
22
|
|
23
23
|
```no-highlight
|
24
|
-
|
24
|
+
gem install fastlane
|
25
25
|
```
|
26
26
|
|
27
27
|
##### Gradle dependency
|
@@ -29,7 +29,7 @@ sudo gem install fastlane
|
|
29
29
|
androidTestImplementation 'tools.fastlane:screengrab:x.x.x'
|
30
30
|
```
|
31
31
|
|
32
|
-
The latest version is [ ![Download](https://
|
32
|
+
The latest version is [ ![Download](https://maven-badges.herokuapp.com/maven-central/tools.fastlane/screengrab/badge.svg)](https://search.maven.org/artifact/tools.fastlane/screengrab)
|
33
33
|
|
34
34
|
As of Screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version.
|
35
35
|
|
@@ -38,21 +38,28 @@ As of Screengrab version 2.0.0, all Android test dependencies are AndroidX depen
|
|
38
38
|
Ensure that the following permissions exist in your **src/debug/AndroidManifest.xml**
|
39
39
|
|
40
40
|
```xml
|
41
|
-
|
42
|
-
|
43
|
-
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
41
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
42
|
+
xmlns:tools="http://schemas.android.com/tools">
|
44
43
|
|
45
|
-
<!-- Allows
|
46
|
-
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
47
|
-
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
44
|
+
<!-- Allows storing screenshots on external storage, where it can be accessed by ADB -->
|
45
|
+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
|
48
46
|
|
49
|
-
<!-- Allows changing locales -->
|
50
|
-
<uses-permission
|
47
|
+
<!-- Allows changing locales -->
|
48
|
+
<uses-permission
|
49
|
+
android:name="android.permission.CHANGE_CONFIGURATION"
|
50
|
+
tools:ignore="ProtectedPermissions" />
|
51
|
+
|
52
|
+
<!-- Allows changing SystemUI demo mode -->
|
53
|
+
<uses-permission
|
54
|
+
android:name="android.permission.DUMP"
|
55
|
+
tools:ignore="ProtectedPermissions" />
|
56
|
+
|
57
|
+
</manifest>
|
51
58
|
```
|
52
59
|
|
53
60
|
##### Configuring your <a href="#ui-tests">UI Tests</a> for Screenshots
|
54
61
|
|
55
|
-
1. Add `LocaleTestRule` to your tests class to handle automatic switching of locales.
|
62
|
+
1. Add `LocaleTestRule` to your tests class to handle automatic switching of locales.
|
56
63
|
If you're using Java use:
|
57
64
|
```java
|
58
65
|
@ClassRule
|
@@ -63,7 +70,7 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
|
|
63
70
|
@Rule @JvmField
|
64
71
|
val localeTestRule = LocaleTestRule()
|
65
72
|
```
|
66
|
-
|
73
|
+
The `@JvmField` annotation is important. It won't work like this:
|
67
74
|
```kotlin
|
68
75
|
companion object {
|
69
76
|
@get:ClassRule
|
@@ -79,7 +86,7 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
|
|
79
86
|
- You can also create a lane and use `build_android_app`:
|
80
87
|
```ruby
|
81
88
|
desc "Build debug and test APK for screenshots"
|
82
|
-
lane :
|
89
|
+
lane :build_and_screengrab do
|
83
90
|
build_android_app(
|
84
91
|
task: 'assemble',
|
85
92
|
build_type: 'Debug'
|
@@ -88,6 +95,7 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
|
|
88
95
|
task: 'assemble',
|
89
96
|
build_type: 'AndroidTest'
|
90
97
|
)
|
98
|
+
screengrab()
|
91
99
|
end
|
92
100
|
```
|
93
101
|
- Once complete run `fastlane screengrab` in your app project directory to generate screenshots
|
@@ -163,7 +171,7 @@ public class JUnit4StyleTests {
|
|
163
171
|
public static final LocaleTestRule localeTestRule = new LocaleTestRule();
|
164
172
|
|
165
173
|
@Rule
|
166
|
-
public
|
174
|
+
public ActivityScenarioRule<MainActivity> activityRule = new ActivityScenarioRule<>(MainActivity.class);
|
167
175
|
|
168
176
|
@Test
|
169
177
|
public void testTakeScreenshot() {
|
@@ -181,7 +189,7 @@ Kotlin:
|
|
181
189
|
@RunWith(JUnit4.class)
|
182
190
|
class JUnit4StyleTests {
|
183
191
|
@get:Rule
|
184
|
-
var activityRule =
|
192
|
+
var activityRule = ActivityScenarioRule(MainActivity::class.java)
|
185
193
|
|
186
194
|
@Rule @JvmField
|
187
195
|
val localeTestRule = LocaleTestRule()
|
@@ -208,22 +216,13 @@ When using JUnit 3 you'll need to add a bit more code:
|
|
208
216
|
- Use `LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale());` in `tearDown()`
|
209
217
|
- Use `Screengrab.screenshot("name_of_screenshot_here");` to capture screenshots at the appropriate points in your tests
|
210
218
|
|
211
|
-
If you're having trouble getting your device unlocked and the screen activated to run tests, try using `ScreenUtil.activateScreenForTesting(activity);` in your test setup.
|
212
|
-
|
213
219
|
## Clean Status Bar
|
214
220
|
|
215
|
-
Screengrab can clean your status bar to make your screenshots even more beautiful.
|
221
|
+
Screengrab can clean your status bar to make your screenshots even more beautiful.
|
222
|
+
It is simply a wrapper that allows configuring SystemUI DemoMode in your code.
|
216
223
|
Note: the clean status bar feature is only supported on devices with *API level >= 23*.
|
217
224
|
|
218
|
-
|
219
|
-
```xml
|
220
|
-
<!-- Indicates the use of the clean status bar feature -->
|
221
|
-
<uses-feature android:name="tools.fastlane.screengrab.cleanstatusbar"/>
|
222
|
-
<!-- Allows for changing the status bar -->
|
223
|
-
<uses-permission android:name="android.permission.DUMP"/>
|
224
|
-
```
|
225
|
-
|
226
|
-
After that you can enable and disable the clean status bar at any moment during your tests.
|
225
|
+
You can enable and disable the clean status bar at any moment during your tests.
|
227
226
|
In most cases you probably want to do this in the @BeforeClass and @AfterClass methods.
|
228
227
|
```java
|
229
228
|
@BeforeClass
|
@@ -237,7 +236,7 @@ public static void afterAll() {
|
|
237
236
|
}
|
238
237
|
```
|
239
238
|
|
240
|
-
Have a look at the methods of the `CleanStatusBar` class to customize the status bar even more.
|
239
|
+
Have a look at the methods of the `CleanStatusBar` class to customize the status bar even more.
|
241
240
|
You could for example show the Bluetooth icon and the LTE text.
|
242
241
|
```java
|
243
242
|
new CleanStatusBar()
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<img src="/img/actions/snapshot.png" width="250">
|
3
3
|
</p>
|
4
4
|
|
5
|
-
###### Automate taking localized screenshots of your iOS and
|
5
|
+
###### Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device
|
6
6
|
|
7
7
|
<hr />
|
8
8
|
<h4 align="center">
|
@@ -10,7 +10,7 @@
|
|
10
10
|
</h4>
|
11
11
|
<hr />
|
12
12
|
|
13
|
-
_snapshot_ generates localized iOS and
|
13
|
+
_snapshot_ generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ([_deliver_](https://docs.fastlane.tools/actions/deliver/)).
|
14
14
|
|
15
15
|
You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = **600 screenshots**.
|
16
16
|
|
@@ -282,6 +282,10 @@ launch_arguments([
|
|
282
282
|
])
|
283
283
|
```
|
284
284
|
|
285
|
+
## Xcode Environment Variables
|
286
|
+
|
287
|
+
_snapshot_ includes `FASTLANE_SNAPSHOT=YES` and `FASTLANE_LANGUAGE=<language>` as arguments when executing `xcodebuild`. This means you may use these environment variables in a custom build phase run script to do any additional configuration.
|
288
|
+
|
285
289
|
# How does it work?
|
286
290
|
|
287
291
|
The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So _snapshot_ uses a different approach:
|
@@ -328,7 +332,7 @@ To get more information about language and locale codes please read [Internation
|
|
328
332
|
|
329
333
|
## Use a clean status bar
|
330
334
|
|
331
|
-
You can set `override_status_bar` to `true` to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception.
|
335
|
+
You can set `override_status_bar` to `true` to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set `override_status_bar_arguments` to the specific arguments to be passed to the `xcrun simctl status_bar override` command. Run `xcrun simctl status_bar --help` to see the options available.
|
332
336
|
|
333
337
|
## Editing the `Snapfile`
|
334
338
|
|
@@ -68,7 +68,7 @@ Options for create:
|
|
68
68
|
-y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU)
|
69
69
|
-j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM)
|
70
70
|
-m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE)
|
71
|
-
-c, --company_name STRING The name of your company. Only required if it's the first app you create (PRODUCE_COMPANY_NAME)
|
71
|
+
-c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME)
|
72
72
|
-i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC)
|
73
73
|
-d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER)
|
74
74
|
-s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS)
|
@@ -131,27 +131,62 @@ fastlane produce enable_services --help
|
|
131
131
|
```
|
132
132
|
|
133
133
|
```no-highlight
|
134
|
-
--
|
135
|
-
--
|
136
|
-
--
|
137
|
-
--
|
138
|
-
--
|
139
|
-
--
|
140
|
-
--
|
141
|
-
--
|
142
|
-
--
|
143
|
-
--
|
144
|
-
--
|
145
|
-
--
|
146
|
-
--
|
147
|
-
--
|
148
|
-
--
|
149
|
-
--
|
150
|
-
--
|
151
|
-
--
|
152
|
-
--
|
153
|
-
--
|
154
|
-
--
|
134
|
+
--access-wifi Enable Access Wifi
|
135
|
+
--app-attest Enable App Attest
|
136
|
+
--app-group Enable App Group
|
137
|
+
--apple-pay Enable Apple Pay
|
138
|
+
--associated-domains Enable Associated Domains
|
139
|
+
--auto-fill-credential Enable Auto Fill Credential
|
140
|
+
--class-kit Enable Class Kit
|
141
|
+
--icloud STRING Enable iCloud, suitable values are "xcode5_compatible" and "xcode6_compatible"
|
142
|
+
--custom-network-protocol Enable Custom Network Protocol
|
143
|
+
--data-protection STRING Enable Data Protection, suitable values are "complete", "unlessopen" and "untilfirstauth"
|
144
|
+
--extended-virtual-address-space Enable Extended Virtual Address Space
|
145
|
+
--game-center STRING Enable Game Center, suitable values are "ios" and "macos
|
146
|
+
--health-kit Enable Health Kit
|
147
|
+
--hls-interstitial-preview Enable Hls Interstitial Preview
|
148
|
+
--home-kit Enable Home Kit
|
149
|
+
--hotspot Enable Hotspot
|
150
|
+
--in-app-purchase Enable In App Purchase
|
151
|
+
--inter-app-audio Enable Inter App Audio
|
152
|
+
--low-latency-hls Enable Low Latency Hls
|
153
|
+
--managed-associated-domains Enable Managed Associated Domains
|
154
|
+
--maps Enable Maps
|
155
|
+
--multipath Enable Multipath
|
156
|
+
--network-extension Enable Network Extension
|
157
|
+
--nfc-tag-reading Enable NFC Tag Reading
|
158
|
+
--personal-vpn Enable Personal VPN
|
159
|
+
--passbook Enable Passbook (deprecated)
|
160
|
+
--push-notification Enable Push Notification
|
161
|
+
--sign-in-with-apple Enable Sign In With Apple
|
162
|
+
--siri-kit Enable Siri Kit
|
163
|
+
--system-extension Enable System Extension
|
164
|
+
--user-management Enable User Management
|
165
|
+
--vpn-configuration Enable Vpn Configuration (deprecated)
|
166
|
+
--wallet Enable Wallet
|
167
|
+
--wireless-accessory Enable Wireless Accessory
|
168
|
+
--car-play-audio-app Enable Car Play Audio App
|
169
|
+
--car-play-messaging-app Enable Car Play Messaging App
|
170
|
+
--car-play-navigation-app Enable Car Play Navigation App
|
171
|
+
--car-play-voip-calling-app Enable Car Play Voip Calling App
|
172
|
+
--critical-alerts Enable Critical Alerts
|
173
|
+
--hotspot-helper Enable Hotspot Helper
|
174
|
+
--driver-kit Enable DriverKit
|
175
|
+
--driver-kit-endpoint-security Enable DriverKit Endpoint Security
|
176
|
+
--driver-kit-family-hid-device Enable DriverKit Family HID Device
|
177
|
+
--driver-kit-family-networking Enable DriverKit Family Networking
|
178
|
+
--driver-kit-family-serial Enable DriverKit Family Serial
|
179
|
+
--driver-kit-hid-event-service Enable DriverKit HID EventService
|
180
|
+
--driver-kit-transport-hid Enable DriverKit Transport HID
|
181
|
+
--multitasking-camera-access Enable Multitasking Camera Access
|
182
|
+
--sf-universal-link-api Enable SFUniversalLink API
|
183
|
+
--vp9-decoder Enable VP9 Decoder
|
184
|
+
--music-kit Enable MusicKit
|
185
|
+
--shazam-kit Enable ShazamKit
|
186
|
+
--communication-notifications Enable Communication Notifications
|
187
|
+
--group-activities Enable Group Activities
|
188
|
+
--health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration
|
189
|
+
--time-sensitive-notifications Enable Time Sensitive Notifications
|
155
190
|
```
|
156
191
|
|
157
192
|
```no-highlight
|
@@ -159,27 +194,62 @@ fastlane produce disable_services --help
|
|
159
194
|
```
|
160
195
|
|
161
196
|
```no-highlight
|
162
|
-
--
|
163
|
-
--
|
164
|
-
--
|
165
|
-
--
|
166
|
-
--
|
167
|
-
--
|
168
|
-
--
|
169
|
-
--
|
170
|
-
--
|
171
|
-
--
|
172
|
-
--
|
173
|
-
--
|
174
|
-
--
|
175
|
-
--
|
176
|
-
--
|
177
|
-
--
|
178
|
-
--
|
179
|
-
--
|
180
|
-
--
|
181
|
-
--
|
182
|
-
--
|
197
|
+
--access-wifi Disable Access Wifi
|
198
|
+
--app-attest Disable App Attest
|
199
|
+
--app-group Disable App Group
|
200
|
+
--apple-pay Disable Apple Pay
|
201
|
+
--associated-domains Disable Associated Domains
|
202
|
+
--auto-fill-credential Disable Auto Fill Credential
|
203
|
+
--class-kit Disable Class Kit
|
204
|
+
--icloud STRING Disable iCloud
|
205
|
+
--custom-network-protocol Disable Custom Network Protocol
|
206
|
+
--data-protection STRING Disable Data Protection
|
207
|
+
--extended-virtual-address-space Disable Extended Virtual Address Space
|
208
|
+
--game-center STRING Disable Game Center
|
209
|
+
--health-kit Disable Health Kit
|
210
|
+
--hls-interstitial-preview Disable Hls Interstitial Preview
|
211
|
+
--home-kit Disable Home Kit
|
212
|
+
--hotspot Disable Hotspot
|
213
|
+
--in-app-purchase Disable In App Purchase
|
214
|
+
--inter-app-audio Disable Inter App Audio
|
215
|
+
--low-latency-hls Disable Low Latency Hls
|
216
|
+
--managed-associated-domains Disable Managed Associated Domains
|
217
|
+
--maps Disable Maps
|
218
|
+
--multipath Disable Multipath
|
219
|
+
--network-extension Disable Network Extension
|
220
|
+
--nfc-tag-reading Disable NFC Tag Reading
|
221
|
+
--personal-vpn Disable Personal VPN
|
222
|
+
--passbook Disable Passbook (deprecated)
|
223
|
+
--push-notification Disable Push Notification
|
224
|
+
--sign-in-with-apple Disable Sign In With Apple
|
225
|
+
--siri-kit Disable Siri Kit
|
226
|
+
--system-extension Disable System Extension
|
227
|
+
--user-management Disable User Management
|
228
|
+
--vpn-configuration Disable Vpn Configuration (deprecated)
|
229
|
+
--wallet Disable Wallet
|
230
|
+
--wireless-accessory Disable Wireless Accessory
|
231
|
+
--car-play-audio-app Disable Car Play Audio App
|
232
|
+
--car-play-messaging-app Disable Car Play Messaging App
|
233
|
+
--car-play-navigation-app Disable Car Play Navigation App
|
234
|
+
--car-play-voip-calling-app Disable Car Play Voip Calling App
|
235
|
+
--critical-alerts Disable Critical Alerts
|
236
|
+
--hotspot-helper Disable Hotspot Helper
|
237
|
+
--driver-kit Disable DriverKit
|
238
|
+
--driver-kit-endpoint-security Disable DriverKit Endpoint Security
|
239
|
+
--driver-kit-family-hid-device Disable DriverKit Family HID Device
|
240
|
+
--driver-kit-family-networking Disable DriverKit Family Networking
|
241
|
+
--driver-kit-family-serial Disable DriverKit Family Serial
|
242
|
+
--driver-kit-hid-event-service Disable DriverKit HID EventService
|
243
|
+
--driver-kit-transport-hid Disable DriverKit Transport HID
|
244
|
+
--multitasking-camera-access Disable Multitasking Camera Access
|
245
|
+
--sf-universal-link-api Disable SFUniversalLink API
|
246
|
+
--vp9-decoder Disable VP9 Decoder
|
247
|
+
--music-kit Disable MusicKit
|
248
|
+
--shazam-kit Disable ShazamKit
|
249
|
+
--communication-notifications Disable Communication Notifications
|
250
|
+
--group-activities Disable Group Activities
|
251
|
+
--health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration
|
252
|
+
--time-sensitive-notifications Disable Time Sensitive Notifications
|
183
253
|
```
|
184
254
|
|
185
255
|
## Creating Apple Pay merchants and associating them with an App ID
|
@@ -236,30 +306,64 @@ lane :release do
|
|
236
306
|
# Optional
|
237
307
|
# App services can be enabled during app creation
|
238
308
|
enable_services: {
|
239
|
-
access_wifi: "on",
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
309
|
+
access_wifi: "on", # Valid values: "on", "off"
|
310
|
+
app_attest: "on", # Valid values: "on", "off"
|
311
|
+
app_group: "on", # Valid values: "on", "off"
|
312
|
+
apple_pay: "on", # Valid values: "on", "off"
|
313
|
+
associated_domains: "on", # Valid values: "on", "off"
|
314
|
+
auto_fill_credential: "on", # Valid values: "on", "off"
|
315
|
+
car_play_audio_app: "on", # Valid values: "on", "off"
|
316
|
+
car_play_messaging_app: "on", # Valid values: "on", "off"
|
317
|
+
car_play_navigation_app: "on", # Valid values: "on", "off"
|
318
|
+
car_play_voip_calling_app: "on", # Valid values: "on", "off"
|
319
|
+
class_kit: "on", # Valid values: "on", "off"
|
320
|
+
icloud: "xcode5_compatible", # Valid values: "xcode5_compatible", "xcode6_compatible", "off"
|
321
|
+
critical_alerts: "on", # Valid values: "on", "off"
|
322
|
+
custom_network_protocol: "on", # Valid values: "on", "off"
|
323
|
+
data_protection: "complete", # Valid values: "complete", "unlessopen", "untilfirstauth", "off"
|
324
|
+
extended_virtual_address_space: "on", # Valid values: "on", "off"
|
325
|
+
file_provider_testing_mode: "on", # Valid values: "on", "off"
|
326
|
+
fonts: "on", # Valid values: "on", "off"
|
327
|
+
game_center: "ios", # Valid values: "ios", "macos", off"
|
328
|
+
health_kit: "on", # Valid values: "on", "off"
|
329
|
+
hls_interstitial_preview: "on", # Valid values: "on", "off"
|
330
|
+
home_kit: "on", # Valid values: "on", "off"
|
331
|
+
hotspot: "on", # Valid values: "on", "off"
|
332
|
+
hotspot_helper: "on", # Valid values: "on", "off"
|
333
|
+
in_app_purchase: "on", # Valid values: "on", "off"
|
334
|
+
inter_app_audio: "on", # Valid values: "on", "off"
|
335
|
+
low_latency_hls: "on", # Valid values: "on", "off"
|
336
|
+
managed_associated_domains: "on", # Valid values: "on", "off"
|
337
|
+
maps: "on", # Valid values: "on", "off"
|
338
|
+
multipath: "on", # Valid values: "on", "off"
|
339
|
+
network_extension: "on", # Valid values: "on", "off"
|
340
|
+
nfc_tag_reading: "on", # Valid values: "on", "off"
|
341
|
+
passbook: "on", # Valid values: "on", "off" (deprecated)
|
342
|
+
personal_vpn: "on", # Valid values: "on", "off"
|
343
|
+
push_notification: "on", # Valid values: "on", "off"
|
344
|
+
sign_in_with_apple: "on", # Valid values: "on", "off"
|
345
|
+
siri_kit: "on", # Valid values: "on", "off"
|
346
|
+
system_extension: "on", # Valid values: "on", "off"
|
347
|
+
user_management: "on", # Valid values: "on", "off"
|
348
|
+
vpn_configuration: "on", # Valid values: "on", "off" (deprecated)
|
349
|
+
wallet: "on", # Valid values: "on", "off"
|
350
|
+
wireless_accessory: "on", # Valid values: "on", "off"
|
351
|
+
driver_kit: "on", # Valid values: "on", "off"
|
352
|
+
driver_kit_endpoint_security: "on", # Valid values: "on", "off"
|
353
|
+
driver_kit_family_hid_device: "on", # Valid values: "on", "off"
|
354
|
+
driver_kit_family_networking: "on", # Valid values: "on", "off"
|
355
|
+
driver_kit_family_serial: "on", # Valid values: "on", "off"
|
356
|
+
driver_kit_hid_event_service: "on", # Valid values: "on", "off"
|
357
|
+
driver_kit_transport_hid: "on", # Valid values: "on", "off"
|
358
|
+
multitasking_camera_access: "on", # Valid values: "on", "off"
|
359
|
+
sf_universal_link_api: "on", # Valid values: "on", "off"
|
360
|
+
vp9_decoder: "on", # Valid values: "on", "off"
|
361
|
+
music_kit: "on", # Valid values: "on", "off"
|
362
|
+
shazam_kit: "on", # Valid values: "on", "off"
|
363
|
+
communication_notifications: "on", # Valid values: "on", "off"
|
364
|
+
group_activities: "on", # Valid values: "on", "off"
|
365
|
+
health_kit_estimate_recalibration: "on", # Valid values: "on", "off"
|
366
|
+
time_sensitive_notifications: "on", # Valid values: "on", "off"
|
263
367
|
}
|
264
368
|
)
|
265
369
|
|