fastlane 2.202.0 → 2.212.1
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 +98 -98
- data/cert/lib/cert/runner.rb +15 -7
- data/deliver/lib/deliver/app_screenshot.rb +18 -0
- data/deliver/lib/deliver/options.rb +6 -2
- data/deliver/lib/deliver/runner.rb +76 -29
- data/deliver/lib/deliver/upload_price_tier.rb +3 -1
- data/deliver/lib/deliver/upload_screenshots.rb +1 -1
- data/fastlane/lib/assets/AppfileTemplate +1 -1
- data/fastlane/lib/assets/AppfileTemplate.swift +1 -1
- data/fastlane/lib/fastlane/actions/badge.rb +1 -1
- data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +1 -1
- data/fastlane/lib/fastlane/actions/danger.rb +14 -0
- data/fastlane/lib/fastlane/actions/docs/build_app.md +5 -5
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +19 -2
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/run_tests.md +1 -1
- data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/git_commit.rb +4 -6
- data/fastlane/lib/fastlane/actions/import_certificate.rb +1 -1
- data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +1 -1
- data/fastlane/lib/fastlane/actions/pod_push.rb +19 -1
- data/fastlane/lib/fastlane/actions/read_podspec.rb +1 -1
- data/fastlane/lib/fastlane/actions/run_tests.rb +11 -9
- data/fastlane/lib/fastlane/actions/setup_ci.rb +13 -4
- data/fastlane/lib/fastlane/actions/trainer.rb +2 -2
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +14 -4
- data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +10 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
- data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcode_install.rb +5 -1
- data/fastlane/lib/fastlane/actions/xcode_select.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +8 -2
- data/fastlane/lib/fastlane/actions/xcodes.rb +152 -0
- data/fastlane/lib/fastlane/actions/xcversion.rb +10 -15
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +5 -0
- data/fastlane/lib/fastlane/commands_generator.rb +2 -1
- data/fastlane/lib/fastlane/fast_file.rb +18 -5
- data/fastlane/lib/fastlane/features.rb +3 -0
- data/fastlane/lib/fastlane/helper/xcodes_helper.rb +28 -0
- data/fastlane/lib/fastlane/helper/xcversion_helper.rb +0 -9
- data/fastlane/lib/fastlane/lane_manager.rb +1 -1
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
- data/fastlane/lib/fastlane/setup/setup_ios.rb +1 -1
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +1 -1
- data/fastlane/lib/fastlane/swift_lane_manager.rb +11 -3
- data/fastlane/lib/fastlane/swift_runner_upgrader.rb +54 -1
- data/fastlane/lib/fastlane/tools.rb +16 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +2 -2
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/Atomic.swift +150 -0
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +8 -4
- data/fastlane/swift/Fastlane.swift +363 -184
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +30 -20
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme +1 -1
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +7 -3
- data/fastlane/swift/LaneFileProtocol.swift +2 -2
- data/fastlane/swift/MainProcess.swift +3 -3
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +21 -5
- 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 +3 -3
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +10 -2
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +11 -3
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +3 -3
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +4 -4
- data/fastlane/swift/SocketClient.swift +9 -5
- data/fastlane/swift/SocketClientDelegateProtocol.swift +2 -2
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +42 -24
- data/fastlane/swift/main.swift +1 -1
- data/fastlane/swift/upgrade_manifest.json +1 -1
- data/fastlane_core/README.md +1 -0
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +79 -17
- data/fastlane_core/lib/fastlane_core/device_manager.rb +5 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +335 -20
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -0
- data/fastlane_core/lib/fastlane_core/project.rb +19 -2
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +4 -2
- data/frameit/lib/frameit/device.rb +1 -1
- data/frameit/lib/frameit/device_types.rb +9 -0
- data/frameit/lib/frameit/frame_downloader.rb +1 -1
- data/gym/lib/gym/generators/build_command_generator.rb +1 -0
- data/gym/lib/gym/options.rb +7 -0
- data/match/lib/match/change_password.rb +2 -0
- data/match/lib/match/commands_generator.rb +2 -1
- data/match/lib/match/encryption/openssl.rb +1 -1
- data/match/lib/match/encryption.rb +3 -0
- data/match/lib/match/generator.rb +1 -0
- data/match/lib/match/importer.rb +10 -1
- data/match/lib/match/migrate.rb +4 -3
- data/match/lib/match/module.rb +54 -2
- data/match/lib/match/nuke.rb +36 -47
- data/match/lib/match/options.rb +22 -1
- data/match/lib/match/runner.rb +25 -6
- data/match/lib/match/setup.rb +1 -1
- data/match/lib/match/spaceship_ensure.rb +4 -2
- data/match/lib/match/storage/gitlab/client.rb +102 -0
- data/match/lib/match/storage/gitlab/secure_file.rb +65 -0
- data/match/lib/match/storage/gitlab_secure_files.rb +182 -0
- data/match/lib/match/storage/google_cloud_storage.rb +7 -6
- data/match/lib/match/storage/s3_storage.rb +3 -3
- data/match/lib/match/storage.rb +4 -0
- data/match/lib/match/table_printer.rb +2 -1
- data/match/lib/match/utils.rb +15 -2
- data/pem/lib/pem/manager.rb +1 -1
- data/pilot/lib/pilot/build_manager.rb +33 -13
- data/pilot/lib/pilot/options.rb +6 -1
- data/scan/lib/scan/detect_values.rb +6 -0
- data/scan/lib/scan/options.rb +16 -1
- data/scan/lib/scan/runner.rb +33 -14
- data/scan/lib/scan/test_command_generator.rb +7 -1
- data/sigh/lib/sigh/download_all.rb +14 -2
- data/sigh/lib/sigh/module.rb +3 -1
- data/sigh/lib/sigh/options.rb +5 -0
- data/sigh/lib/sigh/runner.rb +12 -2
- data/snapshot/lib/assets/SnapshotHelper.swift +3 -3
- data/snapshot/lib/snapshot/options.rb +1 -1
- data/snapshot/lib/snapshot/reports_generator.rb +1 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +9 -2
- data/spaceship/lib/spaceship/client.rb +36 -25
- data/spaceship/lib/spaceship/connect_api/api_client.rb +10 -5
- data/spaceship/lib/spaceship/connect_api/models/actor.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +7 -5
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +27 -10
- data/spaceship/lib/spaceship/connect_api/models/build_bundle.rb +9 -0
- data/spaceship/lib/spaceship/connect_api/models/build_bundle_file_sizes.rb +34 -0
- data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +2 -1
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/device.rb +47 -4
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/resolution_center_message.rb +29 -0
- data/spaceship/lib/spaceship/connect_api/models/resolution_center_thread.rb +67 -0
- data/spaceship/lib/spaceship/connect_api/models/review_rejection.rb +19 -0
- data/spaceship/lib/spaceship/connect_api/models/review_submission.rb +13 -0
- data/spaceship/lib/spaceship/connect_api/models/user.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +19 -0
- data/spaceship/lib/spaceship/connect_api/response.rb +10 -6
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +33 -2
- data/spaceship/lib/spaceship/connect_api/token.rb +5 -2
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +41 -8
- data/spaceship/lib/spaceship/connect_api.rb +6 -0
- data/spaceship/lib/spaceship/errors.rb +34 -0
- data/spaceship/lib/spaceship/hashcash.rb +52 -0
- data/spaceship/lib/spaceship/portal/certificate.rb +4 -3
- data/spaceship/lib/spaceship/tunes/app_ratings.rb +6 -6
- data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -1
- data/spaceship/lib/spaceship/tunes/tunes.rb +0 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +79 -21
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +11 -3
- data/spaceship/lib/spaceship.rb +1 -0
- data/supply/lib/supply/client.rb +2 -7
- data/trainer/lib/assets/junit.xml.erb +9 -1
- data/trainer/lib/trainer/junit_generator.rb +2 -2
- data/trainer/lib/trainer/options.rb +1 -1
- data/trainer/lib/trainer/test_parser.rb +25 -3
- metadata +36 -33
- data/deliver/lib/deliver/.runner.rb.swp +0 -0
- data/deliver/lib/deliver/.submit_for_review.rb.swp +0 -0
- data/fastlane/lib/.DS_Store +0 -0
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/testflight/.testflight.rb.swp +0 -0
- data/spaceship/lib/spaceship/tunes/user_detail.rb +0 -15
- data/trainer/lib/.DS_Store +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 244364fbe5e40c851dc1afbb79fe8c79ba76fedee6e607d7cf950f043ba7b921
|
|
4
|
+
data.tar.gz: 5f4f4f4462eb64a87ed63df0ece646c100ae8d3a0c37a84eff9cbad76f51c2a8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ae5c7a99e698db70b74516d415601ee4368fa864cd114a867d44098e0e52a2b68a361fc0178f902c0f0e6fefe3618639a259c92bde33906cb6a0501aa82d18e2
|
|
7
|
+
data.tar.gz: b736ceec481316c6d9cde333299bff4c8145e5b11f5e802acb60a9c59028c9a9444a7a771dcf8f21f952a3cd64e2959e7a87ae224fecad503e34a1d032481123
|
data/README.md
CHANGED
|
@@ -35,11 +35,11 @@ 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/
|
|
38
|
+
<td id='roger-oba'>
|
|
39
|
+
<a href='https://github.com/rogerluan'>
|
|
40
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
41
41
|
</a>
|
|
42
|
-
<h4 align='center'>
|
|
42
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
43
43
|
</td>
|
|
44
44
|
<td id='fumiya-nakamura'>
|
|
45
45
|
<a href='https://github.com/nafu'>
|
|
@@ -47,107 +47,101 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
47
47
|
</a>
|
|
48
48
|
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
49
49
|
</td>
|
|
50
|
-
<td id='
|
|
51
|
-
<a href='https://github.com/
|
|
52
|
-
<img src='https://github.com/
|
|
50
|
+
<td id='josh-holtz'>
|
|
51
|
+
<a href='https://github.com/joshdholtz'>
|
|
52
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
53
53
|
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
54
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
55
55
|
</td>
|
|
56
|
-
<td id='
|
|
57
|
-
<a href='https://github.com/
|
|
58
|
-
<img src='https://github.com/
|
|
56
|
+
<td id='daniel-jankowski'>
|
|
57
|
+
<a href='https://github.com/mollyIV'>
|
|
58
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
59
59
|
</a>
|
|
60
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
61
61
|
</td>
|
|
62
|
-
<td id='
|
|
63
|
-
<a href='https://github.com/
|
|
64
|
-
<img src='https://github.com/
|
|
62
|
+
<td id='jan-piotrowski'>
|
|
63
|
+
<a href='https://github.com/janpio'>
|
|
64
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
65
65
|
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
66
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
67
67
|
</td>
|
|
68
68
|
</tr>
|
|
69
69
|
<tr>
|
|
70
|
-
<td id='
|
|
71
|
-
<a href='https://github.com/
|
|
72
|
-
<img src='https://github.com/
|
|
70
|
+
<td id='satoshi-namai'>
|
|
71
|
+
<a href='https://github.com/ainame'>
|
|
72
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
73
73
|
</a>
|
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
75
75
|
</td>
|
|
76
|
-
<td id='
|
|
77
|
-
<a href='https://github.com/
|
|
78
|
-
<img src='https://github.com/
|
|
76
|
+
<td id='danielle-tomlinson'>
|
|
77
|
+
<a href='https://github.com/endocrimes'>
|
|
78
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
79
79
|
</a>
|
|
80
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
80
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
81
81
|
</td>
|
|
82
|
-
<td id='
|
|
83
|
-
<a href='https://github.com/
|
|
84
|
-
<img src='https://github.com/
|
|
82
|
+
<td id='stefan-natchev'>
|
|
83
|
+
<a href='https://github.com/snatchev'>
|
|
84
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
85
85
|
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
87
87
|
</td>
|
|
88
|
-
<td id='
|
|
89
|
-
<a href='https://github.com/
|
|
90
|
-
<img src='https://github.com/
|
|
88
|
+
<td id='matthew-ellis'>
|
|
89
|
+
<a href='https://github.com/matthewellis'>
|
|
90
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
91
91
|
</a>
|
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
92
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
93
93
|
</td>
|
|
94
|
-
<td id='
|
|
95
|
-
<a href='https://github.com/
|
|
96
|
-
<img src='https://github.com/
|
|
94
|
+
<td id='iulian-onofrei'>
|
|
95
|
+
<a href='https://github.com/revolter'>
|
|
96
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
97
97
|
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
98
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
99
99
|
</td>
|
|
100
100
|
</tr>
|
|
101
101
|
<tr>
|
|
102
|
-
<td id='
|
|
103
|
-
<a href='https://github.com/
|
|
104
|
-
<img src='https://github.com/
|
|
102
|
+
<td id='jorge-revuelta-h'>
|
|
103
|
+
<a href='https://github.com/minuscorp'>
|
|
104
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
105
105
|
</a>
|
|
106
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
106
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
107
107
|
</td>
|
|
108
|
-
<td id='
|
|
109
|
-
<a href='https://github.com/
|
|
110
|
-
<img src='https://github.com/
|
|
108
|
+
<td id='maksym-grebenets'>
|
|
109
|
+
<a href='https://github.com/mgrebenets'>
|
|
110
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
111
111
|
</a>
|
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
112
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
113
113
|
</td>
|
|
114
|
-
<td id='
|
|
115
|
-
<a href='https://github.com/
|
|
116
|
-
<img src='https://github.com/
|
|
114
|
+
<td id='luka-mirosevic'>
|
|
115
|
+
<a href='https://github.com/lmirosevic'>
|
|
116
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
117
117
|
</a>
|
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
118
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
119
119
|
</td>
|
|
120
|
-
<td id='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
120
|
+
<td id='manish-rathi'>
|
|
121
|
+
<a href='https://github.com/crazymanish'>
|
|
122
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
123
123
|
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
124
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
125
125
|
</td>
|
|
126
|
-
<td id='
|
|
127
|
-
<a href='https://github.com/
|
|
128
|
-
<img src='https://github.com/
|
|
126
|
+
<td id='felix-krause'>
|
|
127
|
+
<a href='https://github.com/KrauseFx'>
|
|
128
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
129
129
|
</a>
|
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
130
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
131
131
|
</td>
|
|
132
132
|
</tr>
|
|
133
133
|
<tr>
|
|
134
|
-
<td id='
|
|
135
|
-
<a href='https://github.com/
|
|
136
|
-
<img src='https://github.com/
|
|
137
|
-
</a>
|
|
138
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
139
|
-
</td>
|
|
140
|
-
<td id='max-ott'>
|
|
141
|
-
<a href='https://github.com/max-ott'>
|
|
142
|
-
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
134
|
+
<td id='helmut-januschka'>
|
|
135
|
+
<a href='https://github.com/hjanuschka'>
|
|
136
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
143
137
|
</a>
|
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
138
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
145
139
|
</td>
|
|
146
|
-
<td id='
|
|
147
|
-
<a href='https://github.com/
|
|
148
|
-
<img src='https://github.com/
|
|
140
|
+
<td id='olivier-halligon'>
|
|
141
|
+
<a href='https://github.com/AliSoftware'>
|
|
142
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
149
143
|
</a>
|
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
144
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
151
145
|
</td>
|
|
152
146
|
<td id='łukasz-grabowski'>
|
|
153
147
|
<a href='https://github.com/lucgrabowski'>
|
|
@@ -155,51 +149,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
155
149
|
</a>
|
|
156
150
|
<h4 align='center'>Łukasz Grabowski</h4>
|
|
157
151
|
</td>
|
|
158
|
-
<td id='
|
|
159
|
-
<a href='https://github.com/
|
|
160
|
-
<img src='https://github.com/
|
|
152
|
+
<td id='kohki-miki'>
|
|
153
|
+
<a href='https://github.com/giginet'>
|
|
154
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
161
155
|
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
156
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</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='manu-wallner'>
|
|
173
|
+
<a href='https://github.com/milch'>
|
|
174
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
175
175
|
</a>
|
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
177
177
|
</td>
|
|
178
|
-
<td id='
|
|
179
|
-
<a href='https://github.com/
|
|
180
|
-
<img src='https://github.com/
|
|
178
|
+
<td id='aaron-brager'>
|
|
179
|
+
<a href='https://github.com/getaaron'>
|
|
180
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
181
181
|
</a>
|
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
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='max-ott'>
|
|
185
|
+
<a href='https://github.com/max-ott'>
|
|
186
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
187
187
|
</a>
|
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
189
189
|
</td>
|
|
190
|
-
<td id='
|
|
191
|
-
<a href='https://github.com/
|
|
192
|
-
<img src='https://github.com/
|
|
190
|
+
<td id='andrew-mcburney'>
|
|
191
|
+
<a href='https://github.com/armcburney'>
|
|
192
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
193
193
|
</a>
|
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</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='jérôme-lacoste'>
|
|
199
|
+
<a href='https://github.com/lacostej'>
|
|
200
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
201
201
|
</a>
|
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
203
203
|
</td>
|
|
204
204
|
</table>
|
|
205
205
|
|
data/cert/lib/cert/runner.rb
CHANGED
|
@@ -138,26 +138,34 @@ module Cert
|
|
|
138
138
|
# All certificates of this type
|
|
139
139
|
def certificates
|
|
140
140
|
filter = {
|
|
141
|
-
certificateType:
|
|
141
|
+
certificateType: certificate_types.join(",")
|
|
142
142
|
}
|
|
143
143
|
return Spaceship::ConnectAPI::Certificate.all(filter: filter)
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
-
# The kind of certificate we're interested in
|
|
146
|
+
# The kind of certificate we're interested in (for creating)
|
|
147
147
|
def certificate_type
|
|
148
|
+
return certificate_types.first
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# The kind of certificates we're interested in (for listing)
|
|
152
|
+
def certificate_types
|
|
148
153
|
if Cert.config[:type]
|
|
149
154
|
case Cert.config[:type].to_sym
|
|
150
155
|
when :mac_installer_distribution
|
|
151
|
-
return Spaceship::ConnectAPI::Certificate::CertificateType::MAC_INSTALLER_DISTRIBUTION
|
|
156
|
+
return [Spaceship::ConnectAPI::Certificate::CertificateType::MAC_INSTALLER_DISTRIBUTION]
|
|
152
157
|
when :developer_id_application
|
|
153
|
-
return
|
|
158
|
+
return [
|
|
159
|
+
Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION_G2,
|
|
160
|
+
Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION
|
|
161
|
+
]
|
|
154
162
|
when :developer_id_kext
|
|
155
|
-
return Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_KEXT
|
|
163
|
+
return [Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_KEXT]
|
|
156
164
|
when :developer_id_installer
|
|
157
165
|
if !Spaceship::ConnectAPI.token.nil?
|
|
158
166
|
raise "As of 2021-11-09, the App Store Connect API does not allow accessing DEVELOPER_ID_INSTALLER with the API Key. Please file an issue on GitHub if this has changed and needs to be updated"
|
|
159
167
|
else
|
|
160
|
-
return Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_INSTALLER
|
|
168
|
+
return [Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_INSTALLER]
|
|
161
169
|
end
|
|
162
170
|
else
|
|
163
171
|
UI.user_error("Unaccepted value for :type - #{Cert.config[:type]}")
|
|
@@ -182,7 +190,7 @@ module Cert
|
|
|
182
190
|
end
|
|
183
191
|
end
|
|
184
192
|
|
|
185
|
-
return cert_type
|
|
193
|
+
return [cert_type]
|
|
186
194
|
end
|
|
187
195
|
|
|
188
196
|
def create_certificate
|
|
@@ -23,6 +23,8 @@ module Deliver
|
|
|
23
23
|
IOS_61 = "iOS-6.1-in"
|
|
24
24
|
# iPhone XS Max
|
|
25
25
|
IOS_65 = "iOS-6.5-in"
|
|
26
|
+
# iPhone 14 Pro Max
|
|
27
|
+
IOS_67 = "iOS-6.7-in"
|
|
26
28
|
|
|
27
29
|
# iPad
|
|
28
30
|
IOS_IPAD = "iOS-iPad"
|
|
@@ -47,6 +49,8 @@ module Deliver
|
|
|
47
49
|
IOS_61_MESSAGES = "iOS-6.1-in-messages"
|
|
48
50
|
# iPhone XS Max iMessage
|
|
49
51
|
IOS_65_MESSAGES = "iOS-6.5-in-messages"
|
|
52
|
+
# iPhone 14 Pro Max iMessage
|
|
53
|
+
IOS_67_MESSAGES = "iOS-6.7-in-messages"
|
|
50
54
|
|
|
51
55
|
# iPad iMessage
|
|
52
56
|
IOS_IPAD_MESSAGES = "iOS-iPad-messages"
|
|
@@ -101,6 +105,7 @@ module Deliver
|
|
|
101
105
|
ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
|
|
102
106
|
ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
|
|
103
107
|
ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
|
|
108
|
+
ScreenSize::IOS_67 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_67,
|
|
104
109
|
ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
|
|
105
110
|
ScreenSize::IOS_IPAD_10_5 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_105,
|
|
106
111
|
ScreenSize::IOS_IPAD_11 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_11,
|
|
@@ -111,6 +116,7 @@ module Deliver
|
|
|
111
116
|
ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
|
|
112
117
|
ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
|
|
113
118
|
ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
|
|
119
|
+
ScreenSize::IOS_67_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_67,
|
|
114
120
|
ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
|
|
115
121
|
ScreenSize::IOS_IPAD_PRO_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_129,
|
|
116
122
|
ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_3GEN_129,
|
|
@@ -135,6 +141,7 @@ module Deliver
|
|
|
135
141
|
ScreenSize::IOS_58 => "iPhone XS",
|
|
136
142
|
ScreenSize::IOS_61 => "iPhone XR",
|
|
137
143
|
ScreenSize::IOS_65 => "iPhone XS Max",
|
|
144
|
+
ScreenSize::IOS_67 => "iPhone 14 Pro Max",
|
|
138
145
|
ScreenSize::IOS_IPAD => "iPad",
|
|
139
146
|
ScreenSize::IOS_IPAD_10_5 => "iPad 10.5",
|
|
140
147
|
ScreenSize::IOS_IPAD_11 => "iPad 11",
|
|
@@ -146,6 +153,7 @@ module Deliver
|
|
|
146
153
|
ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
|
|
147
154
|
ScreenSize::IOS_61_MESSAGES => "iPhone XR (iMessage)",
|
|
148
155
|
ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
|
|
156
|
+
ScreenSize::IOS_67_MESSAGES => "iPhone 14 Pro Max (iMessage)",
|
|
149
157
|
ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
|
|
150
158
|
ScreenSize::IOS_IPAD_PRO_MESSAGES => "iPad Pro (iMessage)",
|
|
151
159
|
ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => "iPad Pro (12.9-inch) (3rd generation) (iMessage)",
|
|
@@ -175,6 +183,7 @@ module Deliver
|
|
|
175
183
|
ScreenSize::IOS_55_MESSAGES,
|
|
176
184
|
ScreenSize::IOS_58_MESSAGES,
|
|
177
185
|
ScreenSize::IOS_65_MESSAGES,
|
|
186
|
+
ScreenSize::IOS_67_MESSAGES,
|
|
178
187
|
ScreenSize::IOS_IPAD_MESSAGES,
|
|
179
188
|
ScreenSize::IOS_IPAD_PRO_MESSAGES,
|
|
180
189
|
ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES,
|
|
@@ -187,6 +196,10 @@ module Deliver
|
|
|
187
196
|
# This list does not include iPad Pro 12.9-inch (3rd generation)
|
|
188
197
|
# because it has same resoluation as IOS_IPAD_PRO and will clobber
|
|
189
198
|
return {
|
|
199
|
+
ScreenSize::IOS_67_MESSAGES => [
|
|
200
|
+
[1290, 2796],
|
|
201
|
+
[2796, 1290]
|
|
202
|
+
],
|
|
190
203
|
ScreenSize::IOS_65_MESSAGES => [
|
|
191
204
|
[1242, 2688],
|
|
192
205
|
[2688, 1242],
|
|
@@ -247,6 +260,10 @@ module Deliver
|
|
|
247
260
|
# This list does not include iPad Pro 12.9-inch (3rd generation)
|
|
248
261
|
# because it has same resoluation as IOS_IPAD_PRO and will clobber
|
|
249
262
|
return {
|
|
263
|
+
ScreenSize::IOS_67 => [
|
|
264
|
+
[1290, 2796],
|
|
265
|
+
[2796, 1290]
|
|
266
|
+
],
|
|
250
267
|
ScreenSize::IOS_65 => [
|
|
251
268
|
[1242, 2688],
|
|
252
269
|
[2688, 1242],
|
|
@@ -332,6 +349,7 @@ module Deliver
|
|
|
332
349
|
"iPad Pro (12.9-inch) (3rd generation)", # Default simulator has this name
|
|
333
350
|
"iPad Pro (12.9-inch) (4th generation)", # Default simulator has this name
|
|
334
351
|
"iPad Pro (12.9-inch) (5th generation)", # Default simulator has this name
|
|
352
|
+
"iPad Pro (12.9-inch) (6th generation)", # Default simulator has this name
|
|
335
353
|
"IPAD_PRO_3GEN_129", # Screenshots downloaded from App Store Connect has this name
|
|
336
354
|
"ipadPro129" # Legacy: screenshots downloaded from iTunes Connect used to have this name
|
|
337
355
|
].any? { |key| filename.include?(key) }
|
|
@@ -164,8 +164,7 @@ module Deliver
|
|
|
164
164
|
default_value: false),
|
|
165
165
|
FastlaneCore::ConfigItem.new(key: :sync_screenshots,
|
|
166
166
|
env_name: "DELIVER_SYNC_SCREENSHOTS",
|
|
167
|
-
description: "Sync screenshots with local ones. This is currently beta option"
|
|
168
|
-
"so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well",
|
|
167
|
+
description: "Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well",
|
|
169
168
|
type: Boolean,
|
|
170
169
|
default_value: false),
|
|
171
170
|
FastlaneCore::ConfigItem.new(key: :submit_for_review,
|
|
@@ -173,6 +172,11 @@ module Deliver
|
|
|
173
172
|
description: "Submit the new version for Review after uploading everything",
|
|
174
173
|
type: Boolean,
|
|
175
174
|
default_value: false),
|
|
175
|
+
FastlaneCore::ConfigItem.new(key: :verify_only,
|
|
176
|
+
env_name: "DELIVER_VERIFY_ONLY",
|
|
177
|
+
description: "Verifies archive with App Store Connect without uploading",
|
|
178
|
+
type: Boolean,
|
|
179
|
+
default_value: false),
|
|
176
180
|
FastlaneCore::ConfigItem.new(key: :reject_if_possible,
|
|
177
181
|
env_name: "DELIVER_REJECT_IF_POSSIBLE",
|
|
178
182
|
description: "Rejects the previously submitted build if it's in a state where it's possible",
|
|
@@ -46,6 +46,12 @@ module Deliver
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def run
|
|
49
|
+
if options[:verify_only]
|
|
50
|
+
UI.important("Verify flag is set, only package validation will take place and no submission will be made")
|
|
51
|
+
verify_binary
|
|
52
|
+
return
|
|
53
|
+
end
|
|
54
|
+
|
|
49
55
|
verify_version if options[:app_version].to_s.length > 0 && !options[:skip_app_version_update]
|
|
50
56
|
|
|
51
57
|
# Rejecting before upload meta
|
|
@@ -155,39 +161,74 @@ module Deliver
|
|
|
155
161
|
UploadPriceTier.new.upload(options)
|
|
156
162
|
end
|
|
157
163
|
|
|
164
|
+
# Verify the binary with App Store Connect
|
|
165
|
+
def verify_binary
|
|
166
|
+
UI.message("Verifying binary with App Store Connect")
|
|
167
|
+
|
|
168
|
+
ipa_path = options[:ipa]
|
|
169
|
+
pkg_path = options[:pkg]
|
|
170
|
+
|
|
171
|
+
platform = options[:platform]
|
|
172
|
+
transporter = transporter_for_selected_team
|
|
173
|
+
|
|
174
|
+
case platform
|
|
175
|
+
when "ios", "appletvos"
|
|
176
|
+
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
|
|
177
|
+
app_id: Deliver.cache[:app].id,
|
|
178
|
+
ipa_path: ipa_path,
|
|
179
|
+
package_path: "/tmp",
|
|
180
|
+
platform: platform
|
|
181
|
+
)
|
|
182
|
+
result = transporter.verify(package_path: package_path)
|
|
183
|
+
when "osx"
|
|
184
|
+
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
|
|
185
|
+
app_id: Deliver.cache[:app].id,
|
|
186
|
+
pkg_path: pkg_path,
|
|
187
|
+
package_path: "/tmp",
|
|
188
|
+
platform: platform
|
|
189
|
+
)
|
|
190
|
+
result = transporter.verify(package_path: package_path)
|
|
191
|
+
else
|
|
192
|
+
UI.user_error!("No suitable file found for verify for platform: #{options[:platform]}")
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
unless result
|
|
196
|
+
transporter_errors = transporter.displayable_errors
|
|
197
|
+
UI.user_error!("Error verifying the binary file: \n #{transporter_errors}")
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
158
201
|
# Upload the binary to App Store Connect
|
|
159
202
|
def upload_binary
|
|
160
203
|
UI.message("Uploading binary to App Store Connect")
|
|
161
204
|
|
|
162
|
-
|
|
163
|
-
|
|
205
|
+
ipa_path = options[:ipa]
|
|
206
|
+
pkg_path = options[:pkg]
|
|
164
207
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if upload_ipa && upload_pkg
|
|
168
|
-
upload_ipa = ["ios", "appletvos"].include?(options[:platform])
|
|
169
|
-
upload_pkg = options[:platform] == "osx"
|
|
170
|
-
end
|
|
208
|
+
platform = options[:platform]
|
|
209
|
+
transporter = transporter_for_selected_team(upload: true)
|
|
171
210
|
|
|
172
|
-
|
|
211
|
+
case platform
|
|
212
|
+
when "ios", "appletvos"
|
|
173
213
|
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
|
|
174
214
|
app_id: Deliver.cache[:app].id,
|
|
175
|
-
ipa_path:
|
|
215
|
+
ipa_path: ipa_path,
|
|
176
216
|
package_path: "/tmp",
|
|
177
|
-
platform:
|
|
217
|
+
platform: platform
|
|
178
218
|
)
|
|
179
|
-
|
|
219
|
+
result = transporter.upload(package_path: package_path, asset_path: ipa_path, platform: platform)
|
|
220
|
+
when "osx"
|
|
180
221
|
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
|
|
181
222
|
app_id: Deliver.cache[:app].id,
|
|
182
|
-
pkg_path:
|
|
223
|
+
pkg_path: pkg_path,
|
|
183
224
|
package_path: "/tmp",
|
|
184
|
-
platform:
|
|
225
|
+
platform: platform
|
|
185
226
|
)
|
|
227
|
+
result = transporter.upload(package_path: package_path, asset_path: pkg_path, platform: platform)
|
|
228
|
+
else
|
|
229
|
+
UI.user_error!("No suitable file found for upload for platform: #{options[:platform]}")
|
|
186
230
|
end
|
|
187
231
|
|
|
188
|
-
transporter = transporter_for_selected_team
|
|
189
|
-
result = transporter.upload(package_path: package_path, asset_path: upload_ipa || upload_pkg)
|
|
190
|
-
|
|
191
232
|
unless result
|
|
192
233
|
transporter_errors = transporter.displayable_errors
|
|
193
234
|
UI.user_error!("Error uploading ipa file: \n #{transporter_errors}")
|
|
@@ -204,13 +245,9 @@ module Deliver
|
|
|
204
245
|
UI.message("Review submission cancellation has been requested")
|
|
205
246
|
|
|
206
247
|
# An app version won't get removed from review instantly
|
|
207
|
-
# Polling until
|
|
248
|
+
# Polling until there is no longer an in-progress version
|
|
208
249
|
loop do
|
|
209
|
-
|
|
210
|
-
if version.app_store_state == Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::DEVELOPER_REJECTED
|
|
211
|
-
break
|
|
212
|
-
end
|
|
213
|
-
|
|
250
|
+
break if app.get_in_progress_review_submission(platform: platform).nil?
|
|
214
251
|
UI.message("Waiting for cancellation to take effect...")
|
|
215
252
|
sleep(15)
|
|
216
253
|
end
|
|
@@ -229,25 +266,35 @@ module Deliver
|
|
|
229
266
|
# If itc_provider was explicitly specified, use it.
|
|
230
267
|
# If there are multiple teams, infer the provider from the selected team name.
|
|
231
268
|
# If there are fewer than two teams, don't infer the provider.
|
|
232
|
-
def transporter_for_selected_team
|
|
269
|
+
def transporter_for_selected_team(upload: false)
|
|
233
270
|
# Use JWT auth
|
|
234
271
|
api_token = Spaceship::ConnectAPI.token
|
|
272
|
+
api_key = if options[:api_key].nil? && !api_token.nil?
|
|
273
|
+
# Load api key info if user set api_key_path, not api_key
|
|
274
|
+
{ key_id: api_token.key_id, issuer_id: api_token.issuer_id, key: api_token.key_raw }
|
|
275
|
+
elsif !options[:api_key].nil?
|
|
276
|
+
api_key = options[:api_key].transform_keys(&:to_sym).dup
|
|
277
|
+
# key is still base 64 style if api_key is loaded from option
|
|
278
|
+
api_key[:key] = Base64.decode64(api_key[:key]) if api_key[:is_key_content_base64]
|
|
279
|
+
api_key
|
|
280
|
+
end
|
|
281
|
+
|
|
235
282
|
unless api_token.nil?
|
|
236
283
|
api_token.refresh! if api_token.expired?
|
|
237
|
-
return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text)
|
|
284
|
+
return FastlaneCore::ItunesTransporter.new(nil, nil, false, nil, api_token.text, upload: upload, api_key: api_key)
|
|
238
285
|
end
|
|
239
286
|
|
|
240
287
|
tunes_client = Spaceship::ConnectAPI.client.tunes_client
|
|
241
288
|
|
|
242
|
-
generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider])
|
|
289
|
+
generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider], upload: upload, api_key: api_key)
|
|
243
290
|
return generic_transporter unless options[:itc_provider].nil? && tunes_client.teams.count > 1
|
|
244
291
|
|
|
245
292
|
begin
|
|
246
|
-
team = tunes_client.teams.find { |t| t['
|
|
247
|
-
name = team['
|
|
293
|
+
team = tunes_client.teams.find { |t| t['providerId'].to_s == tunes_client.team_id }
|
|
294
|
+
name = team['name']
|
|
248
295
|
provider_id = generic_transporter.provider_ids[name]
|
|
249
296
|
UI.verbose("Inferred provider id #{provider_id} for team #{name}.")
|
|
250
|
-
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id)
|
|
297
|
+
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id, upload: upload, api_key: api_key)
|
|
251
298
|
rescue => ex
|
|
252
299
|
UI.verbose("Couldn't infer a provider short name for team with id #{tunes_client.team_id} automatically: #{ex}. Proceeding without provider short name.")
|
|
253
300
|
return generic_transporter
|
|
@@ -12,7 +12,9 @@ module Deliver
|
|
|
12
12
|
app = Deliver.cache[:app]
|
|
13
13
|
|
|
14
14
|
attributes = {}
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
# Check App update method to understand how to use territory_ids.
|
|
17
|
+
territory_ids = nil # nil won't update app's territory_ids, empty array would remove app from sale.
|
|
16
18
|
|
|
17
19
|
# As of 2020-09-14:
|
|
18
20
|
# Official App Store Connect does not have an endpoint to get app prices for an app
|
|
@@ -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
|
|
148
|
+
UI.verbose("Queued upload sceeenshot 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
|