fastlane 2.212.1 → 2.219.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +100 -100
- data/deliver/lib/deliver/app_screenshot.rb +22 -12
- data/deliver/lib/deliver/app_screenshot_iterator.rb +2 -2
- data/deliver/lib/deliver/detect_values.rb +1 -1
- data/deliver/lib/deliver/languages.rb +1 -1
- data/deliver/lib/deliver/loader.rb +2 -2
- data/deliver/lib/deliver/options.rb +4 -4
- data/deliver/lib/deliver/runner.rb +10 -9
- data/deliver/lib/deliver/submit_for_review.rb +13 -0
- data/deliver/lib/deliver/sync_screenshots.rb +2 -2
- data/deliver/lib/deliver/upload_metadata.rb +60 -15
- data/deliver/lib/deliver/upload_price_tier.rb +2 -2
- data/deliver/lib/deliver/upload_screenshots.rb +3 -3
- data/fastlane/lib/assets/custom_action_template.rb +18 -12
- data/fastlane/lib/fastlane/action.rb +1 -1
- data/fastlane/lib/fastlane/actions/appledoc.rb +1 -1
- data/fastlane/lib/fastlane/actions/apteligent.rb +1 -1
- data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
- data/fastlane/lib/fastlane/actions/commit_github_file.rb +2 -2
- data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
- data/fastlane/lib/fastlane/actions/create_app_online.rb +1 -1
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/build_app.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +8 -8
- data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +3 -3
- data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +6 -4
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +6 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
- data/fastlane/lib/fastlane/actions/download_universal_apk_from_google_play.rb +124 -0
- data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +44 -5
- data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +4 -0
- data/fastlane/lib/fastlane/actions/get_certificates.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_github_release.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
- data/fastlane/lib/fastlane/actions/git_branch.rb +1 -1
- data/fastlane/lib/fastlane/actions/github_api.rb +1 -1
- data/fastlane/lib/fastlane/actions/gradle.rb +1 -1
- data/fastlane/lib/fastlane/actions/install_on_device.rb +2 -2
- data/fastlane/lib/fastlane/actions/ipa.rb +1 -1
- data/fastlane/lib/fastlane/actions/jazzy.rb +1 -1
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +1 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +17 -2
- data/fastlane/lib/fastlane/actions/oclint.rb +3 -3
- data/fastlane/lib/fastlane/actions/opt_out_crash_reporting.rb +2 -2
- data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_github_release.rb +1 -1
- data/fastlane/lib/fastlane/actions/slather.rb +18 -5
- data/fastlane/lib/fastlane/actions/sonar.rb +12 -3
- data/fastlane/lib/fastlane/actions/splunkmint.rb +1 -1
- data/fastlane/lib/fastlane/actions/spm.rb +76 -2
- data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -0
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -2
- data/fastlane/lib/fastlane/actions/verify_build.rb +7 -4
- data/fastlane/lib/fastlane/actions/xcov.rb +1 -1
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +1 -1
- data/fastlane/lib/fastlane/command_line_handler.rb +2 -4
- data/fastlane/lib/fastlane/commands_generator.rb +2 -2
- data/fastlane/lib/fastlane/fast_file.rb +1 -1
- data/fastlane/lib/fastlane/helper/dotenv_helper.rb +1 -1
- data/fastlane/lib/fastlane/helper/git_helper.rb +3 -0
- data/fastlane/lib/fastlane/helper/xcodes_helper.rb +0 -3
- data/fastlane/lib/fastlane/junit_generator.rb +1 -1
- data/fastlane/lib/fastlane/lane.rb +9 -1
- data/fastlane/lib/fastlane/lane_manager.rb +1 -2
- data/fastlane/lib/fastlane/new_action.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +3 -3
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -13
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +9 -1
- data/fastlane/lib/fastlane/plugins/template/Gemfile.erb +27 -0
- data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +1 -1
- data/fastlane/lib/fastlane/runner.rb +2 -2
- data/fastlane/lib/fastlane/setup/setup.rb +1 -1
- data/fastlane/lib/fastlane/swift_lane_manager.rb +2 -5
- data/fastlane/lib/fastlane/swift_runner_upgrader.rb +7 -4
- 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/Atomic.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +4 -4
- data/fastlane/swift/Fastlane.swift +227 -36
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +2 -2
- data/fastlane/swift/LaneFileProtocol.swift +5 -5
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +22 -2
- data/fastlane/swift/OptionalConfigValue.swift +1 -1
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +2 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +1 -1
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +6 -2
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
- data/fastlane/swift/SocketClient.swift +1 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +31 -23
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +1 -1
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +4 -9
- data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +1 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +17 -15
- data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +34 -12
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +53 -16
- data/fastlane_core/lib/fastlane_core/project.rb +7 -2
- data/fastlane_core/lib/fastlane_core/queue_worker.rb +2 -2
- data/fastlane_core/lib/fastlane_core/string_filters.rb +6 -6
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +2 -2
- data/frameit/lib/frameit/device_types.rb +1 -1
- data/frameit/lib/frameit/editor.rb +4 -4
- data/frameit/lib/frameit/trim_box.rb +1 -1
- data/gym/lib/gym/error_handler.rb +1 -1
- data/gym/lib/gym/generators/build_command_generator.rb +1 -1
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +3 -3
- data/gym/lib/gym/module.rb +13 -2
- data/gym/lib/gym/options.rb +1 -1
- data/gym/lib/gym/runner.rb +1 -1
- data/gym/lib/gym/xcodebuild_fixes/README.md +1 -1
- data/match/lib/match/change_password.rb +3 -9
- data/match/lib/match/commands_generator.rb +3 -6
- data/match/lib/match/encryption.rb +1 -1
- data/match/lib/match/generator.rb +9 -1
- data/match/lib/match/importer.rb +3 -30
- data/match/lib/match/migrate.rb +6 -2
- data/match/lib/match/module.rb +2 -1
- data/match/lib/match/nuke.rb +3 -24
- data/match/lib/match/options.rb +25 -0
- data/match/lib/match/portal_cache.rb +106 -0
- data/match/lib/match/portal_fetcher.rb +72 -0
- data/match/lib/match/profile_includes.rb +120 -0
- data/match/lib/match/runner.rb +93 -209
- data/match/lib/match/setup.rb +1 -1
- data/match/lib/match/spaceship_ensure.rb +15 -11
- data/match/lib/match/storage/git_storage.rb +17 -4
- data/match/lib/match/storage/gitlab/client.rb +40 -14
- data/match/lib/match/storage/gitlab_secure_files.rb +18 -7
- data/match/lib/match/storage/interface.rb +1 -1
- data/match/lib/match/storage/s3_storage.rb +7 -1
- data/match/lib/match/storage.rb +56 -5
- data/match/lib/match.rb +3 -0
- data/pilot/lib/pilot/build_manager.rb +4 -4
- data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +1 -1
- data/produce/lib/produce/itunes_connect.rb +1 -1
- data/scan/lib/scan/detect_values.rb +86 -21
- data/scan/lib/scan/options.rb +6 -1
- data/scan/lib/scan/runner.rb +1 -1
- data/scan/lib/scan/test_command_generator.rb +1 -1
- data/screengrab/lib/screengrab/runner.rb +1 -1
- data/sigh/lib/assets/resign.sh +10 -10
- data/sigh/lib/sigh/commands_generator.rb +1 -1
- data/sigh/lib/sigh/module.rb +98 -0
- data/sigh/lib/sigh/options.rb +55 -1
- data/sigh/lib/sigh/resign.rb +1 -1
- data/sigh/lib/sigh/runner.rb +36 -112
- data/snapshot/lib/assets/SnapshotHelper.swift +13 -9
- data/snapshot/lib/snapshot/latest_os_version.rb +2 -5
- data/snapshot/lib/snapshot/reports_generator.rb +48 -7
- data/snapshot/lib/snapshot/setup.rb +2 -2
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +23 -22
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -2
- data/snapshot/lib/snapshot/test_command_generator.rb +1 -1
- data/spaceship/lib/spaceship/client.rb +1 -2
- data/spaceship/lib/spaceship/connect_api/api_client.rb +22 -3
- data/spaceship/lib/spaceship/connect_api/client.rb +4 -4
- data/spaceship/lib/spaceship/connect_api/models/app.rb +5 -4
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +15 -9
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +7 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +5 -5
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +3 -3
- data/spaceship/lib/spaceship/connect_api/models/device.rb +83 -4
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +5 -3
- data/spaceship/lib/spaceship/connect_api/models/user.rb +38 -0
- data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +5 -15
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +14 -8
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +8 -2
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +3 -6
- data/spaceship/lib/spaceship/connect_api/users/users.rb +34 -0
- data/spaceship/lib/spaceship/connect_api.rb +2 -0
- data/spaceship/lib/spaceship/portal/app.rb +1 -1
- data/spaceship/lib/spaceship/portal/app_group.rb +1 -1
- data/spaceship/lib/spaceship/test_flight/client.rb +1 -1
- data/spaceship/lib/spaceship/test_flight/tester.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_details.rb +2 -2
- data/spaceship/lib/spaceship/tunes/app_image.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_review_attachment.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_submission.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_version.rb +5 -5
- data/spaceship/lib/spaceship/tunes/build_details.rb +1 -1
- data/spaceship/lib/spaceship/tunes/iap.rb +3 -3
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +2 -2
- data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -1
- data/spaceship/lib/spaceship/tunes/iap_family_details.rb +2 -2
- data/spaceship/lib/spaceship/tunes/iap_family_list.rb +1 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +3 -3
- data/supply/lib/supply/client.rb +80 -21
- data/supply/lib/supply/generated_universal_apk.rb +24 -0
- data/supply/lib/supply/image_listing.rb +15 -0
- data/supply/lib/supply/options.rb +5 -0
- data/supply/lib/supply/setup.rb +2 -2
- data/supply/lib/supply/uploader.rb +60 -18
- data/supply/lib/supply.rb +2 -0
- data/trainer/lib/trainer/junit_generator.rb +1 -1
- data/trainer/lib/trainer/test_parser.rb +1 -1
- data/trainer/lib/trainer/xcresult.rb +1 -1
- metadata +205 -431
- data/fastlane/lib/fastlane/plugins/template/Gemfile +0 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fc5ecf6d8cf5ad100811fa9a386cf6bdc02d8e4054663e2c3a59d94624a7cda8
|
|
4
|
+
data.tar.gz: 4bf38a96eba5cf4cb1918155136ead760e2462e8b2bdbd19bf2f7f29afbb39a3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 67749a0ada8ac8654b5d3b42221e41562249a014435e9f0bf8354e441370b072e34a25e422d40c81266a1395969d56c8898e6e0492d7d17b82e2c98864d97791
|
|
7
|
+
data.tar.gz: 7e9d404f597ad89a09df94ca1c51b4f1bf6a894493cf66c6efb69eefd93bce34e429407d80cdb289a2170b70f9619ef4f8f77af1065c78aa3ba6a6602540b034
|
data/README.md
CHANGED
|
@@ -35,43 +35,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
35
35
|
<!-- This table is regenerated and resorted on each release -->
|
|
36
36
|
<table id='team'>
|
|
37
37
|
<tr>
|
|
38
|
-
<td id='
|
|
39
|
-
<a href='https://github.com/
|
|
40
|
-
<img src='https://github.com/
|
|
41
|
-
</a>
|
|
42
|
-
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
43
|
-
</td>
|
|
44
|
-
<td id='fumiya-nakamura'>
|
|
45
|
-
<a href='https://github.com/nafu'>
|
|
46
|
-
<img src='https://github.com/nafu.png' width='140px;'>
|
|
47
|
-
</a>
|
|
48
|
-
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
49
|
-
</td>
|
|
50
|
-
<td id='josh-holtz'>
|
|
51
|
-
<a href='https://github.com/joshdholtz'>
|
|
52
|
-
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
53
|
-
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
55
|
-
</td>
|
|
56
|
-
<td id='daniel-jankowski'>
|
|
57
|
-
<a href='https://github.com/mollyIV'>
|
|
58
|
-
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
59
|
-
</a>
|
|
60
|
-
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
61
|
-
</td>
|
|
62
|
-
<td id='jan-piotrowski'>
|
|
63
|
-
<a href='https://github.com/janpio'>
|
|
64
|
-
<img src='https://github.com/janpio.png' width='140px;'>
|
|
38
|
+
<td id='manu-wallner'>
|
|
39
|
+
<a href='https://github.com/milch'>
|
|
40
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
65
41
|
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
42
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
67
43
|
</td>
|
|
68
|
-
|
|
69
|
-
<
|
|
70
|
-
<
|
|
71
|
-
<a href='https://github.com/ainame'>
|
|
72
|
-
<img src='https://github.com/ainame.png' width='140px;'>
|
|
44
|
+
<td id='joshua-liebowitz'>
|
|
45
|
+
<a href='https://github.com/taquitos'>
|
|
46
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
73
47
|
</a>
|
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
48
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
75
49
|
</td>
|
|
76
50
|
<td id='danielle-tomlinson'>
|
|
77
51
|
<a href='https://github.com/endocrimes'>
|
|
@@ -79,31 +53,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
79
53
|
</a>
|
|
80
54
|
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
81
55
|
</td>
|
|
82
|
-
<td id='
|
|
83
|
-
<a href='https://github.com/
|
|
84
|
-
<img src='https://github.com/
|
|
85
|
-
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
87
|
-
</td>
|
|
88
|
-
<td id='matthew-ellis'>
|
|
89
|
-
<a href='https://github.com/matthewellis'>
|
|
90
|
-
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
56
|
+
<td id='satoshi-namai'>
|
|
57
|
+
<a href='https://github.com/ainame'>
|
|
58
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
91
59
|
</a>
|
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
93
61
|
</td>
|
|
94
|
-
<td id='
|
|
95
|
-
<a href='https://github.com/
|
|
96
|
-
<img src='https://github.com/
|
|
62
|
+
<td id='felix-krause'>
|
|
63
|
+
<a href='https://github.com/KrauseFx'>
|
|
64
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
97
65
|
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
66
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
99
67
|
</td>
|
|
100
68
|
</tr>
|
|
101
69
|
<tr>
|
|
102
|
-
<td id='
|
|
103
|
-
<a href='https://github.com/
|
|
104
|
-
<img src='https://github.com/
|
|
70
|
+
<td id='łukasz-grabowski'>
|
|
71
|
+
<a href='https://github.com/lucgrabowski'>
|
|
72
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
105
73
|
</a>
|
|
106
|
-
<h4 align='center'
|
|
74
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
107
75
|
</td>
|
|
108
76
|
<td id='maksym-grebenets'>
|
|
109
77
|
<a href='https://github.com/mgrebenets'>
|
|
@@ -111,23 +79,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
111
79
|
</a>
|
|
112
80
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
113
81
|
</td>
|
|
114
|
-
<td id='
|
|
115
|
-
<a href='https://github.com/
|
|
116
|
-
<img src='https://github.com/
|
|
82
|
+
<td id='fumiya-nakamura'>
|
|
83
|
+
<a href='https://github.com/nafu'>
|
|
84
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
117
85
|
</a>
|
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
119
87
|
</td>
|
|
120
|
-
<td id='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
88
|
+
<td id='jérôme-lacoste'>
|
|
89
|
+
<a href='https://github.com/lacostej'>
|
|
90
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
123
91
|
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
92
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
125
93
|
</td>
|
|
126
|
-
<td id='
|
|
127
|
-
<a href='https://github.com/
|
|
128
|
-
<img src='https://github.com/
|
|
94
|
+
<td id='stefan-natchev'>
|
|
95
|
+
<a href='https://github.com/snatchev'>
|
|
96
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
129
97
|
</a>
|
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
98
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
131
99
|
</td>
|
|
132
100
|
</tr>
|
|
133
101
|
<tr>
|
|
@@ -137,43 +105,75 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
137
105
|
</a>
|
|
138
106
|
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
139
107
|
</td>
|
|
140
|
-
<td id='
|
|
141
|
-
<a href='https://github.com/
|
|
142
|
-
<img src='https://github.com/
|
|
108
|
+
<td id='manish-rathi'>
|
|
109
|
+
<a href='https://github.com/crazymanish'>
|
|
110
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
143
111
|
</a>
|
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
112
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
145
113
|
</td>
|
|
146
|
-
<td id='
|
|
147
|
-
<a href='https://github.com/
|
|
148
|
-
<img src='https://github.com/
|
|
114
|
+
<td id='max-ott'>
|
|
115
|
+
<a href='https://github.com/max-ott'>
|
|
116
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
149
117
|
</a>
|
|
150
|
-
<h4 align='center'
|
|
118
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
151
119
|
</td>
|
|
152
|
-
<td id='
|
|
153
|
-
<a href='https://github.com/
|
|
154
|
-
<img src='https://github.com/
|
|
120
|
+
<td id='jimmy-dee'>
|
|
121
|
+
<a href='https://github.com/jdee'>
|
|
122
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
155
123
|
</a>
|
|
156
|
-
<h4 align='center'
|
|
124
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
157
125
|
</td>
|
|
158
|
-
<td id='
|
|
159
|
-
<a href='https://github.com/
|
|
160
|
-
<img src='https://github.com/
|
|
126
|
+
<td id='roger-oba'>
|
|
127
|
+
<a href='https://github.com/rogerluan'>
|
|
128
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
161
129
|
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
130
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
163
131
|
</td>
|
|
164
132
|
</tr>
|
|
165
133
|
<tr>
|
|
166
|
-
<td id='
|
|
167
|
-
<a href='https://github.com/
|
|
168
|
-
<img src='https://github.com/
|
|
134
|
+
<td id='iulian-onofrei'>
|
|
135
|
+
<a href='https://github.com/revolter'>
|
|
136
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
169
137
|
</a>
|
|
170
|
-
<h4 align='center'>
|
|
138
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
171
139
|
</td>
|
|
172
|
-
<td id='
|
|
173
|
-
<a href='https://github.com/
|
|
174
|
-
<img src='https://github.com/
|
|
140
|
+
<td id='josh-holtz'>
|
|
141
|
+
<a href='https://github.com/joshdholtz'>
|
|
142
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
175
143
|
</a>
|
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
144
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
145
|
+
</td>
|
|
146
|
+
<td id='daniel-jankowski'>
|
|
147
|
+
<a href='https://github.com/mollyIV'>
|
|
148
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
149
|
+
</a>
|
|
150
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
151
|
+
</td>
|
|
152
|
+
<td id='andrew-mcburney'>
|
|
153
|
+
<a href='https://github.com/armcburney'>
|
|
154
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
155
|
+
</a>
|
|
156
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
157
|
+
</td>
|
|
158
|
+
<td id='jan-piotrowski'>
|
|
159
|
+
<a href='https://github.com/janpio'>
|
|
160
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
161
|
+
</a>
|
|
162
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
163
|
+
</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td id='luka-mirosevic'>
|
|
167
|
+
<a href='https://github.com/lmirosevic'>
|
|
168
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
169
|
+
</a>
|
|
170
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
171
|
+
</td>
|
|
172
|
+
<td id='kohki-miki'>
|
|
173
|
+
<a href='https://github.com/giginet'>
|
|
174
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
175
|
+
</a>
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
177
177
|
</td>
|
|
178
178
|
<td id='aaron-brager'>
|
|
179
179
|
<a href='https://github.com/getaaron'>
|
|
@@ -181,25 +181,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
181
181
|
</a>
|
|
182
182
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
183
183
|
</td>
|
|
184
|
-
<td id='
|
|
185
|
-
<a href='https://github.com/
|
|
186
|
-
<img src='https://github.com/
|
|
184
|
+
<td id='olivier-halligon'>
|
|
185
|
+
<a href='https://github.com/AliSoftware'>
|
|
186
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
187
187
|
</a>
|
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
189
189
|
</td>
|
|
190
|
-
<td id='
|
|
191
|
-
<a href='https://github.com/
|
|
192
|
-
<img src='https://github.com/
|
|
190
|
+
<td id='jorge-revuelta-h'>
|
|
191
|
+
<a href='https://github.com/minuscorp'>
|
|
192
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
193
193
|
</a>
|
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
195
195
|
</td>
|
|
196
196
|
</tr>
|
|
197
197
|
<tr>
|
|
198
|
-
<td id='
|
|
199
|
-
<a href='https://github.com/
|
|
200
|
-
<img src='https://github.com/
|
|
198
|
+
<td id='matthew-ellis'>
|
|
199
|
+
<a href='https://github.com/matthewellis'>
|
|
200
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
201
201
|
</a>
|
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
203
203
|
</td>
|
|
204
204
|
</table>
|
|
205
205
|
|
|
@@ -19,9 +19,9 @@ module Deliver
|
|
|
19
19
|
IOS_55 = "iOS-5.5-in"
|
|
20
20
|
# iPhone XS
|
|
21
21
|
IOS_58 = "iOS-5.8-in"
|
|
22
|
-
# iPhone
|
|
22
|
+
# iPhone 14 Pro
|
|
23
23
|
IOS_61 = "iOS-6.1-in"
|
|
24
|
-
# iPhone XS Max
|
|
24
|
+
# iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR
|
|
25
25
|
IOS_65 = "iOS-6.5-in"
|
|
26
26
|
# iPhone 14 Pro Max
|
|
27
27
|
IOS_67 = "iOS-6.7-in"
|
|
@@ -45,9 +45,9 @@ module Deliver
|
|
|
45
45
|
IOS_55_MESSAGES = "iOS-5.5-in-messages"
|
|
46
46
|
# iPhone XS iMessage
|
|
47
47
|
IOS_58_MESSAGES = "iOS-5.8-in-messages"
|
|
48
|
-
# iPhone
|
|
48
|
+
# iPhone 14 Pro iMessage
|
|
49
49
|
IOS_61_MESSAGES = "iOS-6.1-in-messages"
|
|
50
|
-
# iPhone XS Max iMessage
|
|
50
|
+
# iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR iMessage
|
|
51
51
|
IOS_65_MESSAGES = "iOS-6.5-in-messages"
|
|
52
52
|
# iPhone 14 Pro Max iMessage
|
|
53
53
|
IOS_67_MESSAGES = "iOS-6.7-in-messages"
|
|
@@ -69,6 +69,8 @@ module Deliver
|
|
|
69
69
|
IOS_APPLE_WATCH_SERIES4 = "iOS-Apple-Watch-Series4"
|
|
70
70
|
# Apple Watch Series 7
|
|
71
71
|
IOS_APPLE_WATCH_SERIES7 = "iOS-Apple-Watch-Series7"
|
|
72
|
+
# Apple Watch Ultra
|
|
73
|
+
IOS_APPLE_WATCH_ULTRA = "iOS-Apple-Watch-Ultra"
|
|
72
74
|
|
|
73
75
|
# Apple TV
|
|
74
76
|
APPLE_TV = "Apple-TV"
|
|
@@ -104,6 +106,7 @@ module Deliver
|
|
|
104
106
|
ScreenSize::IOS_47 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_47, # also 7 & 8
|
|
105
107
|
ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
|
|
106
108
|
ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
|
|
109
|
+
ScreenSize::IOS_61 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_61,
|
|
107
110
|
ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
|
|
108
111
|
ScreenSize::IOS_67 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_67,
|
|
109
112
|
ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
|
|
@@ -115,6 +118,7 @@ module Deliver
|
|
|
115
118
|
ScreenSize::IOS_47_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_47, # also 7 & 8
|
|
116
119
|
ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
|
|
117
120
|
ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
|
|
121
|
+
ScreenSize::IOS_61_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_61,
|
|
118
122
|
ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
|
|
119
123
|
ScreenSize::IOS_67_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_67,
|
|
120
124
|
ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
|
|
@@ -126,6 +130,7 @@ module Deliver
|
|
|
126
130
|
ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
|
|
127
131
|
ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
|
|
128
132
|
ScreenSize::IOS_APPLE_WATCH_SERIES7 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_7,
|
|
133
|
+
ScreenSize::IOS_APPLE_WATCH_ULTRA => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_ULTRA,
|
|
129
134
|
ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_APPLE_TV
|
|
130
135
|
}
|
|
131
136
|
return matching[self.screen_size]
|
|
@@ -139,7 +144,7 @@ module Deliver
|
|
|
139
144
|
ScreenSize::IOS_47 => "iPhone 6", # also 7 & 8
|
|
140
145
|
ScreenSize::IOS_55 => "iPhone 6 Plus", # also 7 Plus & 8 Plus
|
|
141
146
|
ScreenSize::IOS_58 => "iPhone XS",
|
|
142
|
-
ScreenSize::IOS_61 => "iPhone
|
|
147
|
+
ScreenSize::IOS_61 => "iPhone 14 Pro",
|
|
143
148
|
ScreenSize::IOS_65 => "iPhone XS Max",
|
|
144
149
|
ScreenSize::IOS_67 => "iPhone 14 Pro Max",
|
|
145
150
|
ScreenSize::IOS_IPAD => "iPad",
|
|
@@ -151,7 +156,7 @@ module Deliver
|
|
|
151
156
|
ScreenSize::IOS_47_MESSAGES => "iPhone 6 (iMessage)", # also 7 & 8
|
|
152
157
|
ScreenSize::IOS_55_MESSAGES => "iPhone 6 Plus (iMessage)", # also 7 Plus & 8 Plus
|
|
153
158
|
ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
|
|
154
|
-
ScreenSize::IOS_61_MESSAGES => "iPhone
|
|
159
|
+
ScreenSize::IOS_61_MESSAGES => "iPhone 14 Pro (iMessage)",
|
|
155
160
|
ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
|
|
156
161
|
ScreenSize::IOS_67_MESSAGES => "iPhone 14 Pro Max (iMessage)",
|
|
157
162
|
ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
|
|
@@ -163,6 +168,7 @@ module Deliver
|
|
|
163
168
|
ScreenSize::IOS_APPLE_WATCH => "Watch",
|
|
164
169
|
ScreenSize::IOS_APPLE_WATCH_SERIES4 => "Watch Series4",
|
|
165
170
|
ScreenSize::IOS_APPLE_WATCH_SERIES7 => "Watch Series7",
|
|
171
|
+
ScreenSize::IOS_APPLE_WATCH_ULTRA => "Watch Ultra",
|
|
166
172
|
ScreenSize::APPLE_TV => "Apple TV"
|
|
167
173
|
}
|
|
168
174
|
return matching[self.screen_size]
|
|
@@ -182,6 +188,7 @@ module Deliver
|
|
|
182
188
|
ScreenSize::IOS_47_MESSAGES,
|
|
183
189
|
ScreenSize::IOS_55_MESSAGES,
|
|
184
190
|
ScreenSize::IOS_58_MESSAGES,
|
|
191
|
+
ScreenSize::IOS_61_MESSAGES,
|
|
185
192
|
ScreenSize::IOS_65_MESSAGES,
|
|
186
193
|
ScreenSize::IOS_67_MESSAGES,
|
|
187
194
|
ScreenSize::IOS_IPAD_MESSAGES,
|
|
@@ -194,7 +201,7 @@ module Deliver
|
|
|
194
201
|
|
|
195
202
|
def self.device_messages
|
|
196
203
|
# This list does not include iPad Pro 12.9-inch (3rd generation)
|
|
197
|
-
# because it has same
|
|
204
|
+
# because it has same resolution as IOS_IPAD_PRO and will clobber
|
|
198
205
|
return {
|
|
199
206
|
ScreenSize::IOS_67_MESSAGES => [
|
|
200
207
|
[1290, 2796],
|
|
@@ -207,8 +214,8 @@ module Deliver
|
|
|
207
214
|
[2778, 1284]
|
|
208
215
|
],
|
|
209
216
|
ScreenSize::IOS_61_MESSAGES => [
|
|
210
|
-
[
|
|
211
|
-
[
|
|
217
|
+
[1179, 2556],
|
|
218
|
+
[2556, 1179]
|
|
212
219
|
],
|
|
213
220
|
ScreenSize::IOS_58_MESSAGES => [
|
|
214
221
|
[1125, 2436],
|
|
@@ -258,7 +265,7 @@ module Deliver
|
|
|
258
265
|
# reference: https://help.apple.com/app-store-connect/#/devd274dd925
|
|
259
266
|
def self.devices
|
|
260
267
|
# This list does not include iPad Pro 12.9-inch (3rd generation)
|
|
261
|
-
# because it has same
|
|
268
|
+
# because it has same resolution as IOS_IPAD_PRO and will clobber
|
|
262
269
|
return {
|
|
263
270
|
ScreenSize::IOS_67 => [
|
|
264
271
|
[1290, 2796],
|
|
@@ -271,8 +278,8 @@ module Deliver
|
|
|
271
278
|
[2778, 1284]
|
|
272
279
|
],
|
|
273
280
|
ScreenSize::IOS_61 => [
|
|
274
|
-
[
|
|
275
|
-
[
|
|
281
|
+
[1179, 2556],
|
|
282
|
+
[2556, 1179]
|
|
276
283
|
],
|
|
277
284
|
ScreenSize::IOS_58 => [
|
|
278
285
|
[1125, 2436],
|
|
@@ -337,6 +344,9 @@ module Deliver
|
|
|
337
344
|
ScreenSize::IOS_APPLE_WATCH_SERIES7 => [
|
|
338
345
|
[396, 484]
|
|
339
346
|
],
|
|
347
|
+
ScreenSize::IOS_APPLE_WATCH_ULTRA => [
|
|
348
|
+
[410, 502]
|
|
349
|
+
],
|
|
340
350
|
ScreenSize::APPLE_TV => [
|
|
341
351
|
[1920, 1080],
|
|
342
352
|
[3840, 2160]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Deliver
|
|
2
|
-
# This is a
|
|
2
|
+
# This is a convenient class that enumerates app store connect's screenshots in various degrees.
|
|
3
3
|
class AppScreenshotIterator
|
|
4
4
|
NUMBER_OF_THREADS = Helper.test? ? 1 : [ENV.fetch("DELIVER_NUMBER_OF_THREADS", 10).to_i, 10].min
|
|
5
5
|
|
|
@@ -59,7 +59,7 @@ module Deliver
|
|
|
59
59
|
# @yieldparam [optional, Spaceship::ConnectAPI::AppStoreVersionLocalization] localization
|
|
60
60
|
# @yieldparam [optional, Spaceship::ConnectAPI::AppStoreScreenshotSet] app_screenshot_set
|
|
61
61
|
# @yieldparam [optional, Deliver::AppScreenshot] screenshot
|
|
62
|
-
# @yieldparam [optional, Integer] index a number
|
|
62
|
+
# @yieldparam [optional, Integer] index a number represents which position the screenshot will be
|
|
63
63
|
def each_local_screenshot(screenshots_per_language, &block)
|
|
64
64
|
return enum_for(__method__, screenshots_per_language) unless block_given?
|
|
65
65
|
|
|
@@ -92,7 +92,7 @@ module Deliver
|
|
|
92
92
|
return unless languages
|
|
93
93
|
|
|
94
94
|
# 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
|
|
95
|
-
# Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is
|
|
95
|
+
# Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is available)
|
|
96
96
|
all_languages = Deliver::Languages::ALL_LANGUAGES
|
|
97
97
|
diff = languages - all_languages
|
|
98
98
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Deliver
|
|
2
2
|
module Languages
|
|
3
3
|
# 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
|
|
4
|
-
# Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is
|
|
4
|
+
# Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is available)
|
|
5
5
|
ALL_LANGUAGES = %w[ar-SA ca cs da de-DE el en-AU en-CA en-GB en-US es-ES es-MX fi fr-CA fr-FR he hi hr hu id it ja ko ms nl-NL no pl pt-BR pt-PT ro ru sk sv th tr uk vi zh-Hans zh-Hant]
|
|
6
6
|
end
|
|
7
7
|
end
|
|
@@ -31,7 +31,7 @@ module Deliver
|
|
|
31
31
|
|
|
32
32
|
def self.available_languages
|
|
33
33
|
# 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
|
|
34
|
-
# Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is
|
|
34
|
+
# Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is available)
|
|
35
35
|
Deliver::Languages::ALL_LANGUAGES
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -40,7 +40,7 @@ module Deliver
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
# @param path [String] A directory path otherwise this initializer fails
|
|
43
|
-
# @param nested [
|
|
43
|
+
# @param nested [Boolean] Whether given path is nested of another special directory.
|
|
44
44
|
# This affects `expandable?` to return `false` when this set to `true`.
|
|
45
45
|
def initialize(path, nested: false)
|
|
46
46
|
raise(ArgumentError, "Given path must be a directory path - #{path}") unless File.directory?(path)
|
|
@@ -186,12 +186,12 @@ module Deliver
|
|
|
186
186
|
# release
|
|
187
187
|
FastlaneCore::ConfigItem.new(key: :automatic_release,
|
|
188
188
|
env_name: "DELIVER_AUTOMATIC_RELEASE",
|
|
189
|
-
description: "Should the app be automatically released once it's approved? (
|
|
189
|
+
description: "Should the app be automatically released once it's approved? (Cannot be used together with `auto_release_date`)",
|
|
190
190
|
type: Boolean,
|
|
191
191
|
optional: true),
|
|
192
192
|
FastlaneCore::ConfigItem.new(key: :auto_release_date,
|
|
193
193
|
env_name: "DELIVER_AUTO_RELEASE_DATE",
|
|
194
|
-
description: "Date in milliseconds for automatically releasing on pending approval (
|
|
194
|
+
description: "Date in milliseconds for automatically releasing on pending approval (Cannot be used together with `automatic_release`)",
|
|
195
195
|
type: Integer,
|
|
196
196
|
optional: true,
|
|
197
197
|
conflicting_options: [:automatic_release],
|
|
@@ -201,7 +201,7 @@ module Deliver
|
|
|
201
201
|
verify_block: proc do |value|
|
|
202
202
|
now_in_ms = Time.now.to_i * 1000
|
|
203
203
|
if value < now_in_ms
|
|
204
|
-
UI.user_error!("'#{value}' needs to be in the future and in
|
|
204
|
+
UI.user_error!("'#{value}' needs to be in the future and in milliseconds (current time is '#{now_in_ms}')")
|
|
205
205
|
end
|
|
206
206
|
end),
|
|
207
207
|
FastlaneCore::ConfigItem.new(key: :phased_release,
|
|
@@ -311,7 +311,7 @@ module Deliver
|
|
|
311
311
|
|
|
312
312
|
# App Metadata
|
|
313
313
|
FastlaneCore::ConfigItem.new(key: :individual_metadata_items,
|
|
314
|
-
|
|
314
|
+
env_names: ["DELIVER_INDIVUDAL_METADATA_ITEMS", "DELIVER_INDIVIDUAL_METADATA_ITEMS"], # The version with typo must be deprecated
|
|
315
315
|
description: "An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow",
|
|
316
316
|
deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
|
|
317
317
|
type: Array,
|
|
@@ -55,7 +55,7 @@ module Deliver
|
|
|
55
55
|
verify_version if options[:app_version].to_s.length > 0 && !options[:skip_app_version_update]
|
|
56
56
|
|
|
57
57
|
# Rejecting before upload meta
|
|
58
|
-
# Screenshots
|
|
58
|
+
# Screenshots cannot be updated or deleted if the app is in the "waiting for review" state
|
|
59
59
|
reject_version_if_possible if options[:reject_if_possible]
|
|
60
60
|
|
|
61
61
|
upload_metadata
|
|
@@ -179,7 +179,7 @@ module Deliver
|
|
|
179
179
|
package_path: "/tmp",
|
|
180
180
|
platform: platform
|
|
181
181
|
)
|
|
182
|
-
result = transporter.verify(package_path: package_path)
|
|
182
|
+
result = transporter.verify(package_path: package_path, asset_path: ipa_path, platform: platform)
|
|
183
183
|
when "osx"
|
|
184
184
|
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
|
|
185
185
|
app_id: Deliver.cache[:app].id,
|
|
@@ -187,7 +187,7 @@ module Deliver
|
|
|
187
187
|
package_path: "/tmp",
|
|
188
188
|
platform: platform
|
|
189
189
|
)
|
|
190
|
-
result = transporter.verify(package_path: package_path)
|
|
190
|
+
result = transporter.verify(package_path: package_path, asset_path: pkg_path, platform: platform)
|
|
191
191
|
else
|
|
192
192
|
UI.user_error!("No suitable file found for verify for platform: #{options[:platform]}")
|
|
193
193
|
end
|
|
@@ -206,7 +206,7 @@ module Deliver
|
|
|
206
206
|
pkg_path = options[:pkg]
|
|
207
207
|
|
|
208
208
|
platform = options[:platform]
|
|
209
|
-
transporter = transporter_for_selected_team
|
|
209
|
+
transporter = transporter_for_selected_team
|
|
210
210
|
|
|
211
211
|
case platform
|
|
212
212
|
when "ios", "appletvos"
|
|
@@ -231,7 +231,8 @@ module Deliver
|
|
|
231
231
|
|
|
232
232
|
unless result
|
|
233
233
|
transporter_errors = transporter.displayable_errors
|
|
234
|
-
|
|
234
|
+
file_type = platform == "osx" ? "pkg" : "ipa"
|
|
235
|
+
UI.user_error!("Error uploading #{file_type} file: \n #{transporter_errors}")
|
|
235
236
|
end
|
|
236
237
|
end
|
|
237
238
|
|
|
@@ -266,7 +267,7 @@ module Deliver
|
|
|
266
267
|
# If itc_provider was explicitly specified, use it.
|
|
267
268
|
# If there are multiple teams, infer the provider from the selected team name.
|
|
268
269
|
# If there are fewer than two teams, don't infer the provider.
|
|
269
|
-
def transporter_for_selected_team
|
|
270
|
+
def transporter_for_selected_team
|
|
270
271
|
# Use JWT auth
|
|
271
272
|
api_token = Spaceship::ConnectAPI.token
|
|
272
273
|
api_key = if options[:api_key].nil? && !api_token.nil?
|
|
@@ -281,12 +282,12 @@ module Deliver
|
|
|
281
282
|
|
|
282
283
|
unless api_token.nil?
|
|
283
284
|
api_token.refresh! if api_token.expired?
|
|
284
|
-
return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text,
|
|
285
|
+
return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text, altool_compatible_command: true, api_key: api_key)
|
|
285
286
|
end
|
|
286
287
|
|
|
287
288
|
tunes_client = Spaceship::ConnectAPI.client.tunes_client
|
|
288
289
|
|
|
289
|
-
generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider],
|
|
290
|
+
generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider], altool_compatible_command: true, api_key: api_key)
|
|
290
291
|
return generic_transporter unless options[:itc_provider].nil? && tunes_client.teams.count > 1
|
|
291
292
|
|
|
292
293
|
begin
|
|
@@ -294,7 +295,7 @@ module Deliver
|
|
|
294
295
|
name = team['name']
|
|
295
296
|
provider_id = generic_transporter.provider_ids[name]
|
|
296
297
|
UI.verbose("Inferred provider id #{provider_id} for team #{name}.")
|
|
297
|
-
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id,
|
|
298
|
+
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id, altool_compatible_command: true, api_key: api_key)
|
|
298
299
|
rescue => ex
|
|
299
300
|
UI.verbose("Couldn't infer a provider short name for team with id #{tunes_client.team_id} automatically: #{ex}. Proceeding without provider short name.")
|
|
300
301
|
return generic_transporter
|
|
@@ -47,6 +47,19 @@ module Deliver
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
submission.add_app_store_version_to_review_items(app_store_version_id: version.id)
|
|
50
|
+
|
|
51
|
+
10.times do
|
|
52
|
+
version_with_latest_info = Spaceship::ConnectAPI::AppStoreVersion.get(app_store_version_id: version.id)
|
|
53
|
+
|
|
54
|
+
if version_with_latest_info.app_store_state == Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_REVIEW
|
|
55
|
+
break
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
UI.message("Waiting for the state of the version to become #{Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_REVIEW}...")
|
|
59
|
+
|
|
60
|
+
sleep(15)
|
|
61
|
+
end
|
|
62
|
+
|
|
50
63
|
submission.submit_for_review
|
|
51
64
|
end
|
|
52
65
|
|
|
@@ -45,7 +45,7 @@ module Deliver
|
|
|
45
45
|
|
|
46
46
|
unless FastlaneCore::Feature.enabled?('FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS')
|
|
47
47
|
UI.user_error!('Please set a value to "FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS" environment variable ' \
|
|
48
|
-
'if you
|
|
48
|
+
'if you acknowledge the risk and try this out.')
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
UI.important("Will begin uploading snapshots for '#{version.version_string}' on App Store Connect")
|
|
@@ -106,7 +106,7 @@ module Deliver
|
|
|
106
106
|
local_screenshots = iterator.each_local_screenshot(screenshots.group_by(&:language)).map do |localization, app_screenshot_set, screenshot, index|
|
|
107
107
|
if index >= 10
|
|
108
108
|
UI.user_error!("Found #{localization.locale} has more than 10 screenshots for #{app_screenshot_set.screenshot_display_type}. "\
|
|
109
|
-
"Make sure
|
|
109
|
+
"Make sure contains only necessary screenshots.")
|
|
110
110
|
end
|
|
111
111
|
ScreenshotComparable.create_from_local(screenshot: screenshot, app_screenshot_set: app_screenshot_set)
|
|
112
112
|
end
|