fastlane 2.216.0 → 2.218.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 +96 -96
- data/deliver/lib/deliver/app_screenshot.rb +9 -2
- 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 +3 -2
- 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 +1 -1
- data/deliver/lib/deliver/upload_screenshots.rb +3 -3
- 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/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/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/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/plugins/template/%gem_name%.gemspec.erb +0 -11
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
- data/fastlane/lib/fastlane/plugins/template/Gemfile.erb +27 -0
- 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 +1 -1
- 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 +99 -31
- 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 +6 -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 +2 -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 +19 -29
- 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 +3 -3
- 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 +5 -2
- 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/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/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/generator.rb +9 -1
- data/match/lib/match/module.rb +2 -1
- data/match/lib/match/options.rb +5 -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 +79 -172
- 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 +1 -1
- data/match/lib/match/storage/gitlab_secure_files.rb +1 -1
- data/match/lib/match/storage/interface.rb +1 -1
- data/match/lib/match/storage/s3_storage.rb +1 -1
- data/match/lib/match.rb +3 -0
- 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 +78 -20
- data/scan/lib/scan/options.rb +1 -1
- data/scan/lib/scan/runner.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 +35 -111
- data/snapshot/lib/assets/SnapshotHelper.swift +13 -9
- 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/spaceship/lib/spaceship/client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/api_client.rb +3 -2
- data/spaceship/lib/spaceship/connect_api/client.rb +4 -4
- 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 +2 -0
- 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/provisioning/provisioning.rb +14 -8
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +3 -6
- 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 +2 -2
- data/supply/lib/supply/client.rb +1 -1
- data/supply/lib/supply/setup.rb +1 -1
- data/supply/lib/supply/uploader.rb +28 -13
- 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 +27 -293
- data/fastlane/lib/fastlane/.features.rb.swp +0 -0
- data/fastlane/lib/fastlane/plugins/template/Gemfile +0 -6
- data/fastlane_core/lib/fastlane_core/.env.rb.swp +0 -0
- data/supply/lib/supply/.client.rb.swp +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 207ef9c2fe4564f7949fc47ec3693583185a7cf46cdeebcab96485d4b0a9ffa1
|
|
4
|
+
data.tar.gz: 80053bd7ef7de964bf4b3ddeeab4698b149cf8bc2cccbe1355d5f8d49de541b2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a9ea4c0b0093fcceed9e353ece98359675754b8ab17b7e2b2a8f3efd6da34f6ad012e7fb2aca9ff33c08022195e5fd271db52db6d51ca3dbbb6472bec76e95eb
|
|
7
|
+
data.tar.gz: edb1ba5f075dce4d8a43af1e12ef886f0c572f416255818f1878c5ea14cd93c5d67105882fc999a7d794f2ad1ab1e0a8293c35c028e72fa9254b9d28924074bf
|
data/README.md
CHANGED
|
@@ -35,93 +35,81 @@ 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='danielle-tomlinson'>
|
|
39
|
-
<a href='https://github.com/endocrimes'>
|
|
40
|
-
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
41
|
-
</a>
|
|
42
|
-
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
43
|
-
</td>
|
|
44
|
-
<td id='łukasz-grabowski'>
|
|
45
|
-
<a href='https://github.com/lucgrabowski'>
|
|
46
|
-
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
47
|
-
</a>
|
|
48
|
-
<h4 align='center'>Łukasz Grabowski</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='stefan-natchev'>
|
|
57
|
-
<a href='https://github.com/snatchev'>
|
|
58
|
-
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
59
|
-
</a>
|
|
60
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
61
|
-
</td>
|
|
62
|
-
<td id='daniel-jankowski'>
|
|
63
|
-
<a href='https://github.com/mollyIV'>
|
|
64
|
-
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
65
|
-
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
67
|
-
</td>
|
|
68
|
-
</tr>
|
|
69
|
-
<tr>
|
|
70
38
|
<td id='roger-oba'>
|
|
71
39
|
<a href='https://github.com/rogerluan'>
|
|
72
40
|
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
73
41
|
</a>
|
|
74
42
|
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
75
43
|
</td>
|
|
76
|
-
<td id='iulian-onofrei'>
|
|
77
|
-
<a href='https://github.com/revolter'>
|
|
78
|
-
<img src='https://github.com/revolter.png' width='140px;'>
|
|
79
|
-
</a>
|
|
80
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
81
|
-
</td>
|
|
82
44
|
<td id='fumiya-nakamura'>
|
|
83
45
|
<a href='https://github.com/nafu'>
|
|
84
46
|
<img src='https://github.com/nafu.png' width='140px;'>
|
|
85
47
|
</a>
|
|
86
48
|
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
87
49
|
</td>
|
|
88
|
-
<td id='
|
|
89
|
-
<a href='https://github.com/
|
|
90
|
-
<img src='https://github.com/
|
|
50
|
+
<td id='danielle-tomlinson'>
|
|
51
|
+
<a href='https://github.com/endocrimes'>
|
|
52
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
91
53
|
</a>
|
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
54
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
93
55
|
</td>
|
|
94
|
-
<td id='
|
|
95
|
-
<a href='https://github.com/
|
|
96
|
-
<img src='https://github.com/
|
|
56
|
+
<td id='max-ott'>
|
|
57
|
+
<a href='https://github.com/max-ott'>
|
|
58
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
97
59
|
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
61
|
+
</td>
|
|
62
|
+
<td id='jorge-revuelta-h'>
|
|
63
|
+
<a href='https://github.com/minuscorp'>
|
|
64
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
65
|
+
</a>
|
|
66
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
99
67
|
</td>
|
|
100
68
|
</tr>
|
|
101
69
|
<tr>
|
|
70
|
+
<td id='maksym-grebenets'>
|
|
71
|
+
<a href='https://github.com/mgrebenets'>
|
|
72
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
73
|
+
</a>
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
75
|
+
</td>
|
|
102
76
|
<td id='satoshi-namai'>
|
|
103
77
|
<a href='https://github.com/ainame'>
|
|
104
78
|
<img src='https://github.com/ainame.png' width='140px;'>
|
|
105
79
|
</a>
|
|
106
80
|
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
107
81
|
</td>
|
|
108
|
-
<td id='
|
|
109
|
-
<a href='https://github.com/
|
|
110
|
-
<img src='https://github.com/
|
|
82
|
+
<td id='matthew-ellis'>
|
|
83
|
+
<a href='https://github.com/matthewellis'>
|
|
84
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
111
85
|
</a>
|
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
113
87
|
</td>
|
|
114
|
-
<td id='
|
|
115
|
-
<a href='https://github.com/
|
|
116
|
-
<img src='https://github.com/
|
|
88
|
+
<td id='manu-wallner'>
|
|
89
|
+
<a href='https://github.com/milch'>
|
|
90
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
117
91
|
</a>
|
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
92
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
119
93
|
</td>
|
|
120
|
-
<td id='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
94
|
+
<td id='łukasz-grabowski'>
|
|
95
|
+
<a href='https://github.com/lucgrabowski'>
|
|
96
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
123
97
|
</a>
|
|
124
|
-
<h4 align='center'
|
|
98
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
99
|
+
</td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr>
|
|
102
|
+
<td id='josh-holtz'>
|
|
103
|
+
<a href='https://github.com/joshdholtz'>
|
|
104
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
105
|
+
</a>
|
|
106
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
107
|
+
</td>
|
|
108
|
+
<td id='kohki-miki'>
|
|
109
|
+
<a href='https://github.com/giginet'>
|
|
110
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
111
|
+
</a>
|
|
112
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
125
113
|
</td>
|
|
126
114
|
<td id='olivier-halligon'>
|
|
127
115
|
<a href='https://github.com/AliSoftware'>
|
|
@@ -129,6 +117,18 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
129
117
|
</a>
|
|
130
118
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
131
119
|
</td>
|
|
120
|
+
<td id='manish-rathi'>
|
|
121
|
+
<a href='https://github.com/crazymanish'>
|
|
122
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
123
|
+
</a>
|
|
124
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
125
|
+
</td>
|
|
126
|
+
<td id='andrew-mcburney'>
|
|
127
|
+
<a href='https://github.com/armcburney'>
|
|
128
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
129
|
+
</a>
|
|
130
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
131
|
+
</td>
|
|
132
132
|
</tr>
|
|
133
133
|
<tr>
|
|
134
134
|
<td id='helmut-januschka'>
|
|
@@ -137,69 +137,69 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
137
137
|
</a>
|
|
138
138
|
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
139
139
|
</td>
|
|
140
|
-
<td id='aaron-brager'>
|
|
141
|
-
<a href='https://github.com/getaaron'>
|
|
142
|
-
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
143
|
-
</a>
|
|
144
|
-
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
145
|
-
</td>
|
|
146
140
|
<td id='felix-krause'>
|
|
147
141
|
<a href='https://github.com/KrauseFx'>
|
|
148
142
|
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
149
143
|
</a>
|
|
150
144
|
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
151
145
|
</td>
|
|
152
|
-
<td id='
|
|
153
|
-
<a href='https://github.com/
|
|
154
|
-
<img src='https://github.com/
|
|
146
|
+
<td id='jérôme-lacoste'>
|
|
147
|
+
<a href='https://github.com/lacostej'>
|
|
148
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
155
149
|
</a>
|
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
150
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
157
151
|
</td>
|
|
158
|
-
<td id='
|
|
159
|
-
<a href='https://github.com/
|
|
160
|
-
<img src='https://github.com/
|
|
152
|
+
<td id='aaron-brager'>
|
|
153
|
+
<a href='https://github.com/getaaron'>
|
|
154
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
161
155
|
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
156
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
157
|
+
</td>
|
|
158
|
+
<td id='joshua-liebowitz'>
|
|
159
|
+
<a href='https://github.com/taquitos'>
|
|
160
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
161
|
+
</a>
|
|
162
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
163
163
|
</td>
|
|
164
164
|
</tr>
|
|
165
165
|
<tr>
|
|
166
|
-
<td id='
|
|
167
|
-
<a href='https://github.com/
|
|
168
|
-
<img src='https://github.com/
|
|
166
|
+
<td id='jimmy-dee'>
|
|
167
|
+
<a href='https://github.com/jdee'>
|
|
168
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
169
169
|
</a>
|
|
170
|
-
<h4 align='center'
|
|
170
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
171
171
|
</td>
|
|
172
|
-
<td id='
|
|
173
|
-
<a href='https://github.com/
|
|
174
|
-
<img src='https://github.com/
|
|
172
|
+
<td id='iulian-onofrei'>
|
|
173
|
+
<a href='https://github.com/revolter'>
|
|
174
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
175
175
|
</a>
|
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
177
177
|
</td>
|
|
178
|
-
<td id='
|
|
179
|
-
<a href='https://github.com/
|
|
180
|
-
<img src='https://github.com/
|
|
178
|
+
<td id='stefan-natchev'>
|
|
179
|
+
<a href='https://github.com/snatchev'>
|
|
180
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
181
181
|
</a>
|
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
182
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
183
183
|
</td>
|
|
184
|
-
<td id='
|
|
185
|
-
<a href='https://github.com/
|
|
186
|
-
<img src='https://github.com/
|
|
184
|
+
<td id='jan-piotrowski'>
|
|
185
|
+
<a href='https://github.com/janpio'>
|
|
186
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
187
187
|
</a>
|
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
189
189
|
</td>
|
|
190
|
-
<td id='
|
|
191
|
-
<a href='https://github.com/
|
|
192
|
-
<img src='https://github.com/
|
|
190
|
+
<td id='daniel-jankowski'>
|
|
191
|
+
<a href='https://github.com/mollyIV'>
|
|
192
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
193
193
|
</a>
|
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</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='luka-mirosevic'>
|
|
199
|
+
<a href='https://github.com/lmirosevic'>
|
|
200
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
201
201
|
</a>
|
|
202
|
-
<h4 align='center'>
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
203
203
|
</td>
|
|
204
204
|
</table>
|
|
205
205
|
|
|
@@ -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"
|
|
@@ -128,6 +130,7 @@ module Deliver
|
|
|
128
130
|
ScreenSize::IOS_APPLE_WATCH => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_3,
|
|
129
131
|
ScreenSize::IOS_APPLE_WATCH_SERIES4 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_WATCH_SERIES_4,
|
|
130
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,
|
|
131
134
|
ScreenSize::APPLE_TV => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_APPLE_TV
|
|
132
135
|
}
|
|
133
136
|
return matching[self.screen_size]
|
|
@@ -165,6 +168,7 @@ module Deliver
|
|
|
165
168
|
ScreenSize::IOS_APPLE_WATCH => "Watch",
|
|
166
169
|
ScreenSize::IOS_APPLE_WATCH_SERIES4 => "Watch Series4",
|
|
167
170
|
ScreenSize::IOS_APPLE_WATCH_SERIES7 => "Watch Series7",
|
|
171
|
+
ScreenSize::IOS_APPLE_WATCH_ULTRA => "Watch Ultra",
|
|
168
172
|
ScreenSize::APPLE_TV => "Apple TV"
|
|
169
173
|
}
|
|
170
174
|
return matching[self.screen_size]
|
|
@@ -197,7 +201,7 @@ module Deliver
|
|
|
197
201
|
|
|
198
202
|
def self.device_messages
|
|
199
203
|
# This list does not include iPad Pro 12.9-inch (3rd generation)
|
|
200
|
-
# because it has same
|
|
204
|
+
# because it has same resolution as IOS_IPAD_PRO and will clobber
|
|
201
205
|
return {
|
|
202
206
|
ScreenSize::IOS_67_MESSAGES => [
|
|
203
207
|
[1290, 2796],
|
|
@@ -261,7 +265,7 @@ module Deliver
|
|
|
261
265
|
# reference: https://help.apple.com/app-store-connect/#/devd274dd925
|
|
262
266
|
def self.devices
|
|
263
267
|
# This list does not include iPad Pro 12.9-inch (3rd generation)
|
|
264
|
-
# because it has same
|
|
268
|
+
# because it has same resolution as IOS_IPAD_PRO and will clobber
|
|
265
269
|
return {
|
|
266
270
|
ScreenSize::IOS_67 => [
|
|
267
271
|
[1290, 2796],
|
|
@@ -340,6 +344,9 @@ module Deliver
|
|
|
340
344
|
ScreenSize::IOS_APPLE_WATCH_SERIES7 => [
|
|
341
345
|
[396, 484]
|
|
342
346
|
],
|
|
347
|
+
ScreenSize::IOS_APPLE_WATCH_ULTRA => [
|
|
348
|
+
[410, 502]
|
|
349
|
+
],
|
|
343
350
|
ScreenSize::APPLE_TV => [
|
|
344
351
|
[1920, 1080],
|
|
345
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
|
|
@@ -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
|
|
|
@@ -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
|
|
@@ -89,7 +89,8 @@ module Deliver
|
|
|
89
89
|
enabled_languages = detect_languages(options)
|
|
90
90
|
|
|
91
91
|
app_store_version_localizations = verify_available_version_languages!(options, app, enabled_languages) unless options[:edit_live]
|
|
92
|
-
|
|
92
|
+
app_info = fetch_edit_app_info(app)
|
|
93
|
+
app_info_localizations = verify_available_info_languages!(options, app, app_info, enabled_languages) unless options[:edit_live] || !updating_localized_app_info?(options, app, app_info)
|
|
93
94
|
|
|
94
95
|
if options[:edit_live]
|
|
95
96
|
# not all values are editable when using live_version
|
|
@@ -211,18 +212,19 @@ module Deliver
|
|
|
211
212
|
store_version_worker.start
|
|
212
213
|
|
|
213
214
|
# Update app info localizations
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
215
|
+
if app_info_localizations
|
|
216
|
+
app_info_worker = FastlaneCore::QueueWorker.new do |app_info_localization|
|
|
217
|
+
attributes = localized_info_attributes_by_locale[app_info_localization.locale]
|
|
218
|
+
if attributes
|
|
219
|
+
UI.message("Uploading metadata to App Store Connect for localized info '#{app_info_localization.locale}'")
|
|
220
|
+
app_info_localization.update(attributes: attributes)
|
|
221
|
+
end
|
|
219
222
|
end
|
|
223
|
+
app_info_worker.batch_enqueue(app_info_localizations)
|
|
224
|
+
app_info_worker.start
|
|
220
225
|
end
|
|
221
|
-
app_info_worker.batch_enqueue(app_info_localizations)
|
|
222
|
-
app_info_worker.start
|
|
223
226
|
|
|
224
227
|
# Update categories
|
|
225
|
-
app_info = fetch_edit_app_info(app)
|
|
226
228
|
if app_info
|
|
227
229
|
category_id_map = {}
|
|
228
230
|
|
|
@@ -235,7 +237,7 @@ module Deliver
|
|
|
235
237
|
|
|
236
238
|
mapped_values = {}
|
|
237
239
|
|
|
238
|
-
# Only update primary and
|
|
240
|
+
# Only update primary and secondary category if explicitly set
|
|
239
241
|
unless primary_category.empty?
|
|
240
242
|
mapped = Spaceship::ConnectAPI::AppCategory.map_category_from_itc(
|
|
241
243
|
primary_category
|
|
@@ -437,6 +439,12 @@ module Deliver
|
|
|
437
439
|
end
|
|
438
440
|
end
|
|
439
441
|
|
|
442
|
+
def fetch_live_app_info(app, wait_time: 10)
|
|
443
|
+
retry_if_nil("Cannot find live app info", wait_time: wait_time) do
|
|
444
|
+
app.fetch_live_app_info
|
|
445
|
+
end
|
|
446
|
+
end
|
|
447
|
+
|
|
440
448
|
def retry_if_nil(message, tries: 5, wait_time: 10)
|
|
441
449
|
loop do
|
|
442
450
|
tries -= 1
|
|
@@ -451,12 +459,49 @@ module Deliver
|
|
|
451
459
|
end
|
|
452
460
|
end
|
|
453
461
|
|
|
454
|
-
#
|
|
455
|
-
def
|
|
456
|
-
app_info
|
|
462
|
+
# Checking if the metadata to update includes localised App Info
|
|
463
|
+
def updating_localized_app_info?(options, app, app_info)
|
|
464
|
+
app_info ||= fetch_live_app_info(app)
|
|
465
|
+
unless app_info
|
|
466
|
+
UI.important("Can't find edit or live App info. Skipping upload.")
|
|
467
|
+
return false
|
|
468
|
+
end
|
|
469
|
+
localizations = app_info.get_app_info_localizations
|
|
470
|
+
|
|
471
|
+
LOCALISED_APP_VALUES.each do |key, localized_key|
|
|
472
|
+
current = options[key]
|
|
473
|
+
next unless current
|
|
474
|
+
|
|
475
|
+
unless current.kind_of?(Hash)
|
|
476
|
+
UI.error("Error with provided '#{key}'. Must be a hash, the key being the language.")
|
|
477
|
+
next
|
|
478
|
+
end
|
|
479
|
+
|
|
480
|
+
current.each do |language, value|
|
|
481
|
+
strip_value = value.to_s.strip
|
|
482
|
+
next if strip_value.empty?
|
|
483
|
+
|
|
484
|
+
app_info_locale = localizations.find { |l| l.locale == language }
|
|
485
|
+
next if app_info_locale.nil?
|
|
457
486
|
|
|
487
|
+
begin
|
|
488
|
+
current_value = app_info_locale.public_send(localized_key.to_sym)
|
|
489
|
+
rescue NoMethodError
|
|
490
|
+
next
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
return true if current_value != strip_value
|
|
494
|
+
end
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
UI.message('No changes to localized App Info detected. Skipping upload.')
|
|
498
|
+
return false
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
# Finding languages to enable
|
|
502
|
+
def verify_available_info_languages!(options, app, app_info, languages)
|
|
458
503
|
unless app_info
|
|
459
|
-
UI.user_error!("Cannot update languages - could not find an editable
|
|
504
|
+
UI.user_error!("Cannot update languages - could not find an editable 'App Info'. Verify that your app is in one of the editable states in App Store Connect")
|
|
460
505
|
return
|
|
461
506
|
end
|
|
462
507
|
|
|
@@ -654,7 +699,7 @@ module Deliver
|
|
|
654
699
|
end
|
|
655
700
|
UI.message("Setting the app's age rating...")
|
|
656
701
|
|
|
657
|
-
#
|
|
702
|
+
# Mapping from legacy ITC values to App Store Connect Values
|
|
658
703
|
mapped_values = {}
|
|
659
704
|
attributes = {}
|
|
660
705
|
json.each do |k, v|
|
|
@@ -19,7 +19,7 @@ module Deliver
|
|
|
19
19
|
# As of 2020-09-14:
|
|
20
20
|
# Official App Store Connect does not have an endpoint to get app prices for an app
|
|
21
21
|
# Need to get prices from the app's relationships
|
|
22
|
-
# Prices from app's relationship
|
|
22
|
+
# Prices from app's relationship does not have price tier so need to fetch app price with price tier relationship
|
|
23
23
|
app_prices = app.prices
|
|
24
24
|
if app_prices&.first
|
|
25
25
|
app_price = Spaceship::ConnectAPI.get_app_price(app_price_id: app_prices.first.id, includes: "priceTier").first
|
|
@@ -85,7 +85,7 @@ module Deliver
|
|
|
85
85
|
# Only delete screenshots if trying to upload
|
|
86
86
|
next unless screenshots_per_language.keys.include?(localization.locale)
|
|
87
87
|
|
|
88
|
-
UI.verbose("Queued delete
|
|
88
|
+
UI.verbose("Queued delete screenshot set job for #{localization.locale} #{app_screenshot_set.screenshot_display_type}")
|
|
89
89
|
worker.enqueue(DeleteScreenshotSetJob.new(app_screenshot_set, localization))
|
|
90
90
|
end
|
|
91
91
|
|
|
@@ -145,7 +145,7 @@ module Deliver
|
|
|
145
145
|
if duplicate
|
|
146
146
|
UI.message("Previous uploaded. Skipping '#{screenshot.path}'...")
|
|
147
147
|
else
|
|
148
|
-
UI.verbose("Queued upload
|
|
148
|
+
UI.verbose("Queued upload screenshot job for #{localization.locale} #{app_screenshot_set.screenshot_display_type} #{screenshot.path}")
|
|
149
149
|
worker.enqueue(UploadScreenshotJob.new(app_screenshot_set, screenshot.path))
|
|
150
150
|
number_of_screenshots_per_set[app_screenshot_set] += 1
|
|
151
151
|
end
|
|
@@ -258,7 +258,7 @@ module Deliver
|
|
|
258
258
|
# helper method so Spaceship::Tunes.client.available_languages is easier to test
|
|
259
259
|
def self.available_languages
|
|
260
260
|
# 2020-08-24 - Available locales are not available as an endpoint in App Store Connect
|
|
261
|
-
# Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is
|
|
261
|
+
# Update with Spaceship::Tunes.client.available_languages.sort (as long as endpoint is available)
|
|
262
262
|
Deliver::Languages::ALL_LANGUAGES
|
|
263
263
|
end
|
|
264
264
|
|
|
@@ -179,7 +179,7 @@ class String
|
|
|
179
179
|
|
|
180
180
|
def markdown_clean_heredoc!
|
|
181
181
|
self.chomp! # remove the last new line added by the heredoc
|
|
182
|
-
self.dedent! # remove the leading whitespace (similar to the
|
|
182
|
+
self.dedent! # remove the leading whitespace (similar to the squiggly heredoc `<<~`)
|
|
183
183
|
end
|
|
184
184
|
|
|
185
185
|
def dedent!
|