fastlane 2.237.0 → 2.239.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 +107 -100
- data/bin/fastlane +2 -2
- data/deliver/lib/deliver/html_generator.rb +1 -1
- data/deliver/lib/deliver/options.rb +9 -1
- data/deliver/lib/deliver/upload_metadata.rb +22 -0
- data/deliver/lib/deliver/upload_screenshots.rb +12 -4
- data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +7 -2
- data/fastlane/lib/fastlane/actions/deploygate.rb +3 -2
- data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +6 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -2
- data/fastlane/lib/fastlane/actions/hockey.rb +3 -2
- data/fastlane/lib/fastlane/actions/installr.rb +3 -2
- data/fastlane/lib/fastlane/actions/mailgun.rb +1 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +3 -18
- data/fastlane/lib/fastlane/actions/register_devices.rb +21 -5
- data/fastlane/lib/fastlane/actions/setup_ci.rb +7 -2
- data/fastlane/lib/fastlane/actions/spm.rb +6 -0
- data/fastlane/lib/fastlane/actions/testfairy.rb +5 -3
- data/fastlane/lib/fastlane/actions/tryouts.rb +3 -2
- data/fastlane/lib/fastlane/actions/update_project_team.rb +17 -9
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +33 -7
- data/fastlane/lib/fastlane/helper/git_helper.rb +4 -2
- data/fastlane/lib/fastlane/helper/sh_helper.rb +9 -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/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +9 -2
- data/fastlane/swift/Fastlane.swift +66 -20
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +1 -1
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +31 -5
- data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +24 -12
- data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +22 -12
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +22 -9
- data/fastlane_core/lib/fastlane_core/helper.rb +4 -3
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +6 -2
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +1 -1
- data/fastlane_core/lib/fastlane_core/print_table.rb +0 -16
- data/fastlane_core/lib/fastlane_core/queue_worker.rb +10 -1
- data/fastlane_core/lib/fastlane_core/video_utils.rb +4 -2
- data/gym/lib/gym/module.rb +20 -2
- data/match/lib/match/nuke.rb +2 -2
- data/match/lib/match/storage/git_storage.rb +1 -4
- data/match/lib/match/storage/google_cloud_storage.rb +6 -1
- data/pem/lib/pem/manager.rb +5 -1
- data/pem/lib/pem/options.rb +6 -0
- data/pilot/lib/pilot/build_manager.rb +34 -2
- data/pilot/lib/pilot/options.rb +10 -2
- data/pilot/lib/pilot/tester_manager.rb +2 -2
- data/precheck/lib/precheck/rules/copyright_date_rule.rb +1 -1
- data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +2 -2
- data/sigh/lib/assets/resign.sh +21 -9
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -1
- data/spaceship/lib/spaceship/client.rb +0 -1
- data/spaceship/lib/spaceship/connect_api/file_uploader.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +16 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/routing_app_coverage.rb +75 -0
- data/spaceship/lib/spaceship/connect_api/token.rb +6 -1
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +45 -0
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/helper/plist_middleware.rb +37 -8
- data/supply/lib/supply/client.rb +6 -0
- data/supply/lib/supply/reader.rb +15 -0
- metadata +79 -53
data/sigh/lib/assets/resign.sh
CHANGED
|
@@ -665,9 +665,18 @@ function resign {
|
|
|
665
665
|
# Get the old and the new team ID
|
|
666
666
|
# Old team ID is not part of app entitlements, have to get it from old embedded provisioning profile
|
|
667
667
|
security cms -D -i "$TEMP_DIR/old-embedded.mobileprovision" > "$TEMP_DIR/old-embedded-profile.plist"
|
|
668
|
-
OLD_TEAM_ID=$(PlistBuddy -c "Print :TeamIdentifier:0" "$TEMP_DIR/old-embedded-profile.plist")
|
|
668
|
+
OLD_TEAM_ID=$(PlistBuddy -c "Print :TeamIdentifier:0" "$TEMP_DIR/old-embedded-profile.plist" 2>/dev/null)
|
|
669
|
+
if [ "$OLD_TEAM_ID" == "" ]; then
|
|
670
|
+
OLD_TEAM_ID="$OLD_APP_ID"
|
|
671
|
+
fi
|
|
669
672
|
# New team ID is part of profile entitlements
|
|
670
|
-
NEW_TEAM_ID=$(PlistBuddy -c "Print com.apple.developer.team-identifier" "$PROFILE_ENTITLEMENTS" | grep -E '^[A-Z0-9]*' -o | tr -d '\n')
|
|
673
|
+
NEW_TEAM_ID=$(PlistBuddy -c "Print :com.apple.developer.team-identifier" "$PROFILE_ENTITLEMENTS" 2>/dev/null | grep -E '^[A-Z0-9]*' -o | tr -d '\n')
|
|
674
|
+
if [ "$NEW_TEAM_ID" == "" ]; then
|
|
675
|
+
NEW_TEAM_ID="$TEAM_IDENTIFIER"
|
|
676
|
+
fi
|
|
677
|
+
if [ "$NEW_TEAM_ID" == "" ]; then
|
|
678
|
+
NEW_TEAM_ID="$NEW_APP_ID"
|
|
679
|
+
fi
|
|
671
680
|
|
|
672
681
|
log "Patching profile entitlements with values from app entitlements"
|
|
673
682
|
PATCHED_ENTITLEMENTS="$TEMP_DIR/patchedEntitlements"
|
|
@@ -866,13 +875,16 @@ function resign {
|
|
|
866
875
|
OLD_BUNDLE_ID="$(PlistBuddy -c "Print :CFBundleIdentifier" "$TEMP_DIR/oldInfo.plist")"
|
|
867
876
|
NEW_BUNDLE_ID="$(bundle_id_for_provision "$NEW_PROVISION")"
|
|
868
877
|
log "Replacing old bundle ID '$OLD_BUNDLE_ID' with new bundle ID '$NEW_BUNDLE_ID' in patched entitlements"
|
|
869
|
-
#
|
|
870
|
-
#
|
|
871
|
-
#
|
|
872
|
-
#
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
878
|
+
# Anchor the replacement to OLD_TEAM_ID prefix, app group prefix, or the opening <string> tag
|
|
879
|
+
# so that if NEW_BUNDLE_ID contains OLD_BUNDLE_ID as a suffix (e.g. enterprise.com.example.foo),
|
|
880
|
+
# the already-correct values (like <TEAM_ID>.enterprise.com.example.foo) do not have their
|
|
881
|
+
# suffix duplicated.
|
|
882
|
+
ESCAPED_OLD_BUNDLE_ID="${OLD_BUNDLE_ID//./\\.}"
|
|
883
|
+
if [ -n "$OLD_TEAM_ID" ] && [ -n "$NEW_TEAM_ID" ]; then
|
|
884
|
+
/usr/bin/sed -i .bak "s!<string>${OLD_TEAM_ID}\.${ESCAPED_OLD_BUNDLE_ID}</string>!<string>${NEW_TEAM_ID}.${NEW_BUNDLE_ID}</string>!g" "$PATCHED_ENTITLEMENTS"
|
|
885
|
+
fi
|
|
886
|
+
/usr/bin/sed -i .bak "s!<string>group\.${ESCAPED_OLD_BUNDLE_ID}</string>!<string>group.${NEW_BUNDLE_ID}</string>!g" "$PATCHED_ENTITLEMENTS"
|
|
887
|
+
/usr/bin/sed -i .bak "s!<string>${ESCAPED_OLD_BUNDLE_ID}</string>!<string>${NEW_BUNDLE_ID}</string>!g" "$PATCHED_ENTITLEMENTS"
|
|
876
888
|
|
|
877
889
|
log "Resigning application using certificate: '$CERTIFICATE'"
|
|
878
890
|
log "and patched entitlements:"
|
|
@@ -81,7 +81,10 @@ module Snapshot
|
|
|
81
81
|
|
|
82
82
|
unless launcher_config.headless
|
|
83
83
|
simulator_path = File.join(Helper.xcode_path, 'Applications', 'Simulator.app')
|
|
84
|
-
|
|
84
|
+
device_udid = TestCommandGenerator.device_udid(device_types.first)
|
|
85
|
+
command = "open -a #{simulator_path} -g"
|
|
86
|
+
command += " --args -CurrentDeviceUDID #{device_udid}" if device_udid
|
|
87
|
+
Helper.backticks(command, print: FastlaneCore::Globals.verbose?)
|
|
85
88
|
end
|
|
86
89
|
end
|
|
87
90
|
|
|
@@ -27,6 +27,8 @@ module Spaceship
|
|
|
27
27
|
attr_accessor :loot_box
|
|
28
28
|
attr_accessor :messaging_and_chat
|
|
29
29
|
attr_accessor :parental_controls
|
|
30
|
+
attr_accessor :social_media
|
|
31
|
+
attr_accessor :social_media_age_restricted
|
|
30
32
|
attr_accessor :unrestricted_web_access
|
|
31
33
|
attr_accessor :user_generated_content
|
|
32
34
|
|
|
@@ -96,6 +98,8 @@ module Spaceship
|
|
|
96
98
|
"profanityOrCrudeHumor" => "profanity_or_crude_humor",
|
|
97
99
|
"sexualContentGraphicAndNudity" => "sexual_content_graphic_and_nudity",
|
|
98
100
|
"sexualContentOrNudity" => "sexual_content_or_nudity",
|
|
101
|
+
"socialMedia" => "social_media",
|
|
102
|
+
"socialMediaAgeRestricted" => "social_media_age_restricted",
|
|
99
103
|
"unrestrictedWebAccess" => "unrestricted_web_access",
|
|
100
104
|
"userGeneratedContent" => "user_generated_content",
|
|
101
105
|
"violenceCartoonOrFantasy" => "violence_cartoon_or_fantasy",
|
|
@@ -174,6 +178,8 @@ module Spaceship
|
|
|
174
178
|
"lootBox",
|
|
175
179
|
"messagingAndChat",
|
|
176
180
|
"parentalControls",
|
|
181
|
+
"socialMedia",
|
|
182
|
+
"socialMediaAgeRestricted",
|
|
177
183
|
"unrestrictedWebAccess",
|
|
178
184
|
"userGeneratedContent"
|
|
179
185
|
]
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require_relative '../model'
|
|
2
2
|
require_relative './app_store_review_detail'
|
|
3
3
|
require_relative './app_store_version_localization'
|
|
4
|
+
require_relative './routing_app_coverage'
|
|
4
5
|
|
|
5
6
|
module Spaceship
|
|
6
7
|
class ConnectAPI
|
|
@@ -243,6 +244,21 @@ module Spaceship
|
|
|
243
244
|
return resp.to_models.first
|
|
244
245
|
end
|
|
245
246
|
|
|
247
|
+
#
|
|
248
|
+
# Routing App Coverages
|
|
249
|
+
#
|
|
250
|
+
|
|
251
|
+
def fetch_routing_app_coverage(client: nil)
|
|
252
|
+
client ||= Spaceship::ConnectAPI
|
|
253
|
+
resp = client.get_routing_app_coverage(app_store_version_id: id)
|
|
254
|
+
return resp.to_models.first
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
def upload_routing_app_coverage(client: nil, path: nil)
|
|
258
|
+
client ||= Spaceship::ConnectAPI
|
|
259
|
+
return Spaceship::ConnectAPI::RoutingAppCoverage.create(client: client, app_store_version_id: id, path: path)
|
|
260
|
+
end
|
|
261
|
+
|
|
246
262
|
#
|
|
247
263
|
# Reset Ratings Requests
|
|
248
264
|
#
|
|
@@ -32,6 +32,11 @@ module Spaceship
|
|
|
32
32
|
return "betaGroups"
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
+
# Whether this group is referenced by any of the given identifiers (its name or id)
|
|
36
|
+
def matches_identifiers?(identifiers)
|
|
37
|
+
identifiers.include?(name) || identifiers.include?(id)
|
|
38
|
+
end
|
|
39
|
+
|
|
35
40
|
#
|
|
36
41
|
# API
|
|
37
42
|
#
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
require_relative '../model'
|
|
2
|
+
require_relative '../file_uploader'
|
|
3
|
+
require 'digest/md5'
|
|
4
|
+
|
|
5
|
+
module Spaceship
|
|
6
|
+
class ConnectAPI
|
|
7
|
+
class RoutingAppCoverage
|
|
8
|
+
include Spaceship::ConnectAPI::Model
|
|
9
|
+
|
|
10
|
+
attr_accessor :file_size
|
|
11
|
+
attr_accessor :file_name
|
|
12
|
+
attr_accessor :source_file_checksum
|
|
13
|
+
attr_accessor :upload_operations
|
|
14
|
+
attr_accessor :asset_delivery_state
|
|
15
|
+
attr_accessor :uploaded
|
|
16
|
+
|
|
17
|
+
attr_mapping({
|
|
18
|
+
"fileSize" => "file_size",
|
|
19
|
+
"fileName" => "file_name",
|
|
20
|
+
"sourceFileChecksum" => "source_file_checksum",
|
|
21
|
+
"uploadOperations" => "upload_operations",
|
|
22
|
+
"assetDeliveryState" => "asset_delivery_state",
|
|
23
|
+
"uploaded" => "uploaded"
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
def self.type
|
|
27
|
+
return "routingAppCoverages"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
#
|
|
31
|
+
# API
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
def self.create(client: nil, app_store_version_id: nil, path: nil)
|
|
35
|
+
client ||= Spaceship::ConnectAPI
|
|
36
|
+
require 'faraday'
|
|
37
|
+
|
|
38
|
+
filename = File.basename(path)
|
|
39
|
+
filesize = File.size(path)
|
|
40
|
+
bytes = File.binread(path)
|
|
41
|
+
|
|
42
|
+
post_attributes = {
|
|
43
|
+
fileSize: filesize,
|
|
44
|
+
fileName: filename
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
# Create placeholder
|
|
48
|
+
routing_app_coverage = client.post_routing_app_coverage(
|
|
49
|
+
app_store_version_id: app_store_version_id,
|
|
50
|
+
attributes: post_attributes
|
|
51
|
+
).to_models.first
|
|
52
|
+
|
|
53
|
+
# Upload the file
|
|
54
|
+
upload_operations = routing_app_coverage.upload_operations
|
|
55
|
+
Spaceship::ConnectAPI::FileUploader.upload(upload_operations, bytes)
|
|
56
|
+
|
|
57
|
+
# Update file uploading complete
|
|
58
|
+
patch_attributes = {
|
|
59
|
+
uploaded: true,
|
|
60
|
+
sourceFileChecksum: Digest::MD5.hexdigest(bytes)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
client.patch_routing_app_coverage(
|
|
64
|
+
routing_app_coverage_id: routing_app_coverage.id,
|
|
65
|
+
attributes: patch_attributes
|
|
66
|
+
).to_models.first
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def delete!(client: nil)
|
|
70
|
+
client ||= Spaceship::ConnectAPI
|
|
71
|
+
client.delete_routing_app_coverage(routing_app_coverage_id: id)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -36,7 +36,12 @@ module Spaceship
|
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def self.from_json_file(filepath)
|
|
39
|
-
|
|
39
|
+
begin
|
|
40
|
+
json = JSON.parse(File.read(filepath), { symbolize_names: true })
|
|
41
|
+
rescue JSON::ParserError
|
|
42
|
+
# Don't dump secret into logs in case a secret (p8) is passed. See fastlane/fastlane#21017
|
|
43
|
+
raise "Invalid JSON in App Store Connect API key file '#{filepath}'. Expected a JSON file with at least the 'key_id' and 'key' fields."
|
|
44
|
+
end
|
|
40
45
|
|
|
41
46
|
missing_keys = []
|
|
42
47
|
missing_keys << 'key_id' unless json.key?(:key_id)
|
|
@@ -1018,6 +1018,51 @@ module Spaceship
|
|
|
1018
1018
|
tunes_request_client.delete("#{Version::V1}/resetRatingsRequests/#{reset_ratings_request_id}", params)
|
|
1019
1019
|
end
|
|
1020
1020
|
|
|
1021
|
+
#
|
|
1022
|
+
# routingAppCoverages
|
|
1023
|
+
#
|
|
1024
|
+
|
|
1025
|
+
def get_routing_app_coverage(app_store_version_id: nil)
|
|
1026
|
+
params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
|
|
1027
|
+
tunes_request_client.get("#{Version::V1}/appStoreVersions/#{app_store_version_id}/routingAppCoverage", params)
|
|
1028
|
+
end
|
|
1029
|
+
|
|
1030
|
+
def post_routing_app_coverage(app_store_version_id: nil, attributes: {})
|
|
1031
|
+
body = {
|
|
1032
|
+
data: {
|
|
1033
|
+
type: "routingAppCoverages",
|
|
1034
|
+
attributes: attributes,
|
|
1035
|
+
relationships: {
|
|
1036
|
+
appStoreVersion: {
|
|
1037
|
+
data: {
|
|
1038
|
+
type: "appStoreVersions",
|
|
1039
|
+
id: app_store_version_id
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
tunes_request_client.post("#{Version::V1}/routingAppCoverages", body)
|
|
1047
|
+
end
|
|
1048
|
+
|
|
1049
|
+
def patch_routing_app_coverage(routing_app_coverage_id: nil, attributes: {})
|
|
1050
|
+
body = {
|
|
1051
|
+
data: {
|
|
1052
|
+
type: "routingAppCoverages",
|
|
1053
|
+
id: routing_app_coverage_id,
|
|
1054
|
+
attributes: attributes
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
tunes_request_client.patch("#{Version::V1}/routingAppCoverages/#{routing_app_coverage_id}", body)
|
|
1059
|
+
end
|
|
1060
|
+
|
|
1061
|
+
def delete_routing_app_coverage(routing_app_coverage_id: nil)
|
|
1062
|
+
params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
|
|
1063
|
+
tunes_request_client.delete("#{Version::V1}/routingAppCoverages/#{routing_app_coverage_id}", params)
|
|
1064
|
+
end
|
|
1065
|
+
|
|
1021
1066
|
#
|
|
1022
1067
|
# appStoreVersionSubmissions
|
|
1023
1068
|
#
|
|
@@ -66,6 +66,7 @@ require 'spaceship/connect_api/models/app_price_tier'
|
|
|
66
66
|
require 'spaceship/connect_api/models/app_store_review_attachment'
|
|
67
67
|
require 'spaceship/connect_api/models/app_store_review_detail'
|
|
68
68
|
require 'spaceship/connect_api/models/app_store_version_release_request'
|
|
69
|
+
require 'spaceship/connect_api/models/routing_app_coverage'
|
|
69
70
|
require 'spaceship/connect_api/models/app_store_version_submission'
|
|
70
71
|
require 'spaceship/connect_api/models/app_screenshot_set'
|
|
71
72
|
require 'spaceship/connect_api/models/app_screenshot'
|
|
@@ -1,16 +1,45 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'faraday'
|
|
2
2
|
|
|
3
|
-
module
|
|
4
|
-
class PlistMiddleware <
|
|
5
|
-
|
|
3
|
+
module Spaceship
|
|
4
|
+
class PlistMiddleware < Faraday::Middleware
|
|
5
|
+
def on_complete(env)
|
|
6
|
+
process_response(env) if parse_response?(env)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def process_response(env)
|
|
12
|
+
env.body = parse(env.body)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def parse(body)
|
|
6
16
|
require 'plist' unless Object.const_defined?("Plist")
|
|
17
|
+
Plist.parse_xml(body.force_encoding("UTF-8"))
|
|
18
|
+
rescue StandardError, SyntaxError => e
|
|
19
|
+
raise Faraday::ParsingError.new(e, env)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def parse_response?(env)
|
|
23
|
+
env.body.kind_of?(String) && process_response_type?(env) && env.parse_body?
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def process_response_type?(env)
|
|
27
|
+
type = response_type(env)
|
|
28
|
+
content_types.empty? || content_types.any? do |pattern|
|
|
29
|
+
pattern.kind_of?(Regexp) ? type.match?(pattern) : type == pattern
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def response_type(env)
|
|
34
|
+
type = env.response_headers['Content-Type'].to_s
|
|
35
|
+
type = type.split(';', 2).first if type.index(';')
|
|
36
|
+
type
|
|
7
37
|
end
|
|
8
38
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Plist.parse_xml(body)
|
|
39
|
+
def content_types
|
|
40
|
+
@content_types ||= Array(options[:content_type])
|
|
12
41
|
end
|
|
13
42
|
end
|
|
14
43
|
end
|
|
15
44
|
|
|
16
|
-
Faraday::Response.register_middleware(plist:
|
|
45
|
+
Faraday::Response.register_middleware(plist: Spaceship::PlistMiddleware)
|
data/supply/lib/supply/client.rb
CHANGED
|
@@ -535,6 +535,12 @@ module Supply
|
|
|
535
535
|
result&.releases || []
|
|
536
536
|
end
|
|
537
537
|
|
|
538
|
+
def list_track_release_summaries(package_name, track)
|
|
539
|
+
call_google_api do
|
|
540
|
+
client.list_application_track_releases("applications/#{package_name}/tracks/#{track}")
|
|
541
|
+
end.releases || []
|
|
542
|
+
end
|
|
543
|
+
|
|
538
544
|
def upload_changelogs(track, track_name)
|
|
539
545
|
ensure_active_edit!
|
|
540
546
|
|
data/supply/lib/supply/reader.rb
CHANGED
|
@@ -48,6 +48,21 @@ module Supply
|
|
|
48
48
|
release_names
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
+
def track_release_summaries
|
|
52
|
+
package_name = Supply.config[:package_name]
|
|
53
|
+
track = Supply.config[:track]
|
|
54
|
+
|
|
55
|
+
summaries = client.list_track_release_summaries(package_name, track)
|
|
56
|
+
|
|
57
|
+
if summaries.empty?
|
|
58
|
+
UI.important("No releases found in track '#{track}'")
|
|
59
|
+
else
|
|
60
|
+
UI.success("Found #{summaries.length} release(s) in track '#{track}'")
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
summaries
|
|
64
|
+
end
|
|
65
|
+
|
|
51
66
|
private
|
|
52
67
|
|
|
53
68
|
def client
|
metadata
CHANGED
|
@@ -1,40 +1,39 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastlane
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.239.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
- Josh Holtz
|
|
9
|
-
- Joshua Liebowitz
|
|
10
|
-
- Daniel Jankowski
|
|
11
|
-
- Satoshi Namai
|
|
12
|
-
- Luka Mirosevic
|
|
13
|
-
- Olivier Halligon
|
|
7
|
+
- Łukasz Grabowski
|
|
14
8
|
- Maksym Grebenets
|
|
15
|
-
- Roger Oba
|
|
16
|
-
- Andrew McBurney
|
|
17
|
-
- Manish Rathi
|
|
18
|
-
- Connor Tumbleson
|
|
19
|
-
- Jorge Revuelta H
|
|
20
|
-
- Felix Krause
|
|
21
9
|
- Jérôme Lacoste
|
|
22
10
|
- Stefan Natchev
|
|
23
|
-
-
|
|
24
|
-
- Fumiya Nakamura
|
|
25
|
-
- Łukasz Grabowski
|
|
26
|
-
- Jan Piotrowski
|
|
27
|
-
- Iulian Onofrei
|
|
11
|
+
- Roger Oba
|
|
28
12
|
- Aaron Brager
|
|
13
|
+
- Luka Mirosevic
|
|
14
|
+
- Joshua Liebowitz
|
|
15
|
+
- Manu Wallner
|
|
16
|
+
- Olivier Halligon
|
|
17
|
+
- Felix Krause
|
|
18
|
+
- Daniel Jankowski
|
|
19
|
+
- Jorge Revuelta H
|
|
20
|
+
- Satoshi Namai
|
|
29
21
|
- Kohki Miki
|
|
22
|
+
- Fumiya Nakamura
|
|
30
23
|
- Max Ott
|
|
31
|
-
-
|
|
32
|
-
- Helmut Januschka
|
|
24
|
+
- Connor Tumbleson
|
|
33
25
|
- Danielle Tomlinson
|
|
34
|
-
|
|
26
|
+
- Iulian Onofrei
|
|
27
|
+
- Jimmy Dee
|
|
28
|
+
- Jan Piotrowski
|
|
29
|
+
- Manish Rathi
|
|
30
|
+
- Josh Holtz
|
|
31
|
+
- Andrew McBurney
|
|
32
|
+
- Helmut Januschka
|
|
33
|
+
- Matthew Ellis
|
|
35
34
|
bindir: bin
|
|
36
35
|
cert_chain: []
|
|
37
|
-
date:
|
|
36
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
38
37
|
dependencies:
|
|
39
38
|
- !ruby/object:Gem::Dependency
|
|
40
39
|
name: addressable
|
|
@@ -233,35 +232,49 @@ dependencies:
|
|
|
233
232
|
- !ruby/object:Gem::Version
|
|
234
233
|
version: 2.0.0
|
|
235
234
|
- !ruby/object:Gem::Dependency
|
|
236
|
-
name:
|
|
235
|
+
name: faraday
|
|
237
236
|
requirement: !ruby/object:Gem::Requirement
|
|
238
237
|
requirements:
|
|
239
238
|
- - "~>"
|
|
240
239
|
- !ruby/object:Gem::Version
|
|
241
|
-
version: '
|
|
240
|
+
version: '2.7'
|
|
242
241
|
type: :runtime
|
|
243
242
|
prerelease: false
|
|
244
243
|
version_requirements: !ruby/object:Gem::Requirement
|
|
245
244
|
requirements:
|
|
246
245
|
- - "~>"
|
|
247
246
|
- !ruby/object:Gem::Version
|
|
248
|
-
version: '
|
|
247
|
+
version: '2.7'
|
|
249
248
|
- !ruby/object:Gem::Dependency
|
|
250
249
|
name: faraday-cookie_jar
|
|
251
250
|
requirement: !ruby/object:Gem::Requirement
|
|
252
251
|
requirements:
|
|
253
252
|
- - "~>"
|
|
254
253
|
- !ruby/object:Gem::Version
|
|
255
|
-
version: 0.0.
|
|
254
|
+
version: 0.0.8
|
|
256
255
|
type: :runtime
|
|
257
256
|
prerelease: false
|
|
258
257
|
version_requirements: !ruby/object:Gem::Requirement
|
|
259
258
|
requirements:
|
|
260
259
|
- - "~>"
|
|
261
260
|
- !ruby/object:Gem::Version
|
|
262
|
-
version: 0.0.
|
|
261
|
+
version: 0.0.8
|
|
263
262
|
- !ruby/object:Gem::Dependency
|
|
264
|
-
name: faraday
|
|
263
|
+
name: faraday-follow_redirects
|
|
264
|
+
requirement: !ruby/object:Gem::Requirement
|
|
265
|
+
requirements:
|
|
266
|
+
- - "~>"
|
|
267
|
+
- !ruby/object:Gem::Version
|
|
268
|
+
version: '0.3'
|
|
269
|
+
type: :runtime
|
|
270
|
+
prerelease: false
|
|
271
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
272
|
+
requirements:
|
|
273
|
+
- - "~>"
|
|
274
|
+
- !ruby/object:Gem::Version
|
|
275
|
+
version: '0.3'
|
|
276
|
+
- !ruby/object:Gem::Dependency
|
|
277
|
+
name: faraday-multipart
|
|
265
278
|
requirement: !ruby/object:Gem::Requirement
|
|
266
279
|
requirements:
|
|
267
280
|
- - "~>"
|
|
@@ -274,6 +287,20 @@ dependencies:
|
|
|
274
287
|
- - "~>"
|
|
275
288
|
- !ruby/object:Gem::Version
|
|
276
289
|
version: '1.0'
|
|
290
|
+
- !ruby/object:Gem::Dependency
|
|
291
|
+
name: faraday-retry
|
|
292
|
+
requirement: !ruby/object:Gem::Requirement
|
|
293
|
+
requirements:
|
|
294
|
+
- - "~>"
|
|
295
|
+
- !ruby/object:Gem::Version
|
|
296
|
+
version: '2.0'
|
|
297
|
+
type: :runtime
|
|
298
|
+
prerelease: false
|
|
299
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
300
|
+
requirements:
|
|
301
|
+
- - "~>"
|
|
302
|
+
- !ruby/object:Gem::Version
|
|
303
|
+
version: '2.0'
|
|
277
304
|
- !ruby/object:Gem::Dependency
|
|
278
305
|
name: fastimage
|
|
279
306
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -334,14 +361,14 @@ dependencies:
|
|
|
334
361
|
requirements:
|
|
335
362
|
- - "~>"
|
|
336
363
|
- !ruby/object:Gem::Version
|
|
337
|
-
version:
|
|
364
|
+
version: 0.99.0
|
|
338
365
|
type: :runtime
|
|
339
366
|
prerelease: false
|
|
340
367
|
version_requirements: !ruby/object:Gem::Requirement
|
|
341
368
|
requirements:
|
|
342
369
|
- - "~>"
|
|
343
370
|
- !ruby/object:Gem::Version
|
|
344
|
-
version:
|
|
371
|
+
version: 0.99.0
|
|
345
372
|
- !ruby/object:Gem::Dependency
|
|
346
373
|
name: google-apis-playcustomapp_v1
|
|
347
374
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -365,7 +392,7 @@ dependencies:
|
|
|
365
392
|
version: 1.6.0
|
|
366
393
|
- - "<"
|
|
367
394
|
- !ruby/object:Gem::Version
|
|
368
|
-
version: 2.
|
|
395
|
+
version: 2.4.0
|
|
369
396
|
type: :runtime
|
|
370
397
|
prerelease: false
|
|
371
398
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -375,7 +402,7 @@ dependencies:
|
|
|
375
402
|
version: 1.6.0
|
|
376
403
|
- - "<"
|
|
377
404
|
- !ruby/object:Gem::Version
|
|
378
|
-
version: 2.
|
|
405
|
+
version: 2.4.0
|
|
379
406
|
- !ruby/object:Gem::Dependency
|
|
380
407
|
name: google-cloud-storage
|
|
381
408
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -404,20 +431,6 @@ dependencies:
|
|
|
404
431
|
- - "~>"
|
|
405
432
|
- !ruby/object:Gem::Version
|
|
406
433
|
version: '2.0'
|
|
407
|
-
- !ruby/object:Gem::Dependency
|
|
408
|
-
name: http-cookie
|
|
409
|
-
requirement: !ruby/object:Gem::Requirement
|
|
410
|
-
requirements:
|
|
411
|
-
- - "~>"
|
|
412
|
-
- !ruby/object:Gem::Version
|
|
413
|
-
version: 1.0.5
|
|
414
|
-
type: :runtime
|
|
415
|
-
prerelease: false
|
|
416
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
417
|
-
requirements:
|
|
418
|
-
- - "~>"
|
|
419
|
-
- !ruby/object:Gem::Version
|
|
420
|
-
version: 1.0.5
|
|
421
434
|
- !ruby/object:Gem::Dependency
|
|
422
435
|
name: json
|
|
423
436
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -634,14 +647,14 @@ dependencies:
|
|
|
634
647
|
requirements:
|
|
635
648
|
- - "~>"
|
|
636
649
|
- !ruby/object:Gem::Version
|
|
637
|
-
version: '
|
|
650
|
+
version: '4'
|
|
638
651
|
type: :runtime
|
|
639
652
|
prerelease: false
|
|
640
653
|
version_requirements: !ruby/object:Gem::Requirement
|
|
641
654
|
requirements:
|
|
642
655
|
- - "~>"
|
|
643
656
|
- !ruby/object:Gem::Version
|
|
644
|
-
version: '
|
|
657
|
+
version: '4'
|
|
645
658
|
- !ruby/object:Gem::Dependency
|
|
646
659
|
name: tty-screen
|
|
647
660
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -820,6 +833,20 @@ dependencies:
|
|
|
820
833
|
- - "~>"
|
|
821
834
|
- !ruby/object:Gem::Version
|
|
822
835
|
version: '0.2'
|
|
836
|
+
- !ruby/object:Gem::Dependency
|
|
837
|
+
name: irb
|
|
838
|
+
requirement: !ruby/object:Gem::Requirement
|
|
839
|
+
requirements:
|
|
840
|
+
- - ">="
|
|
841
|
+
- !ruby/object:Gem::Version
|
|
842
|
+
version: '1.8'
|
|
843
|
+
type: :runtime
|
|
844
|
+
prerelease: false
|
|
845
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
846
|
+
requirements:
|
|
847
|
+
- - ">="
|
|
848
|
+
- !ruby/object:Gem::Version
|
|
849
|
+
version: '1.8'
|
|
823
850
|
- !ruby/object:Gem::Dependency
|
|
824
851
|
name: logger
|
|
825
852
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1669,6 +1696,7 @@ files:
|
|
|
1669
1696
|
- spaceship/lib/spaceship/connect_api/models/review_rejection.rb
|
|
1670
1697
|
- spaceship/lib/spaceship/connect_api/models/review_submission.rb
|
|
1671
1698
|
- spaceship/lib/spaceship/connect_api/models/review_submission_item.rb
|
|
1699
|
+
- spaceship/lib/spaceship/connect_api/models/routing_app_coverage.rb
|
|
1672
1700
|
- spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb
|
|
1673
1701
|
- spaceship/lib/spaceship/connect_api/models/territory.rb
|
|
1674
1702
|
- spaceship/lib/spaceship/connect_api/models/territory_availability.rb
|
|
@@ -1829,7 +1857,6 @@ metadata:
|
|
|
1829
1857
|
documentation_uri: https://docs.fastlane.tools/
|
|
1830
1858
|
homepage_uri: https://fastlane.tools
|
|
1831
1859
|
source_code_uri: https://github.com/fastlane/fastlane
|
|
1832
|
-
post_install_message:
|
|
1833
1860
|
rdoc_options: []
|
|
1834
1861
|
require_paths:
|
|
1835
1862
|
- cert/lib
|
|
@@ -1855,15 +1882,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1855
1882
|
requirements:
|
|
1856
1883
|
- - ">="
|
|
1857
1884
|
- !ruby/object:Gem::Version
|
|
1858
|
-
version: '3.
|
|
1885
|
+
version: '3.1'
|
|
1859
1886
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1860
1887
|
requirements:
|
|
1861
1888
|
- - ">="
|
|
1862
1889
|
- !ruby/object:Gem::Version
|
|
1863
1890
|
version: '0'
|
|
1864
1891
|
requirements: []
|
|
1865
|
-
rubygems_version: 3.
|
|
1866
|
-
signing_key:
|
|
1892
|
+
rubygems_version: 3.6.9
|
|
1867
1893
|
specification_version: 4
|
|
1868
1894
|
summary: The easiest way to build and release mobile apps.
|
|
1869
1895
|
test_files: []
|