fastlane 2.157.2 → 2.157.3
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 +66 -66
- data/deliver/lib/deliver/runner.rb +0 -1
- data/fastlane/lib/fastlane/actions/{.git_commit.rb.swp → .ensure_git_status_clean.rb.swp} +0 -0
- data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +11 -8
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +87 -68
- data/fastlane/lib/fastlane/actions/set_changelog.rb +0 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +12 -12
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- 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/match/lib/match/spaceship_ensure.rb +5 -5
- data/{fastlane/lib/fastlane/.erb_template_helper.rb.swp → pilot/lib/pilot/.manager.rb.swp} +0 -0
- data/pilot/lib/pilot/build_manager.rb +0 -3
- data/pilot/lib/pilot/manager.rb +1 -2
- data/produce/lib/produce/itunes_connect.rb +0 -1
- data/sigh/lib/assets/resign.sh +9 -6
- data/sigh/lib/sigh/runner.rb +0 -1
- data/spaceship/lib/spaceship/client.rb +1 -0
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/{.DS_Store → connect_api/.DS_Store} +0 -0
- data/spaceship/lib/spaceship/connect_api/client.rb +10 -4
- data/spaceship/lib/spaceship/connect_api/file_uploader.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +5 -5
- data/spaceship/lib/spaceship/connect_api/models/app_price_point.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +7 -1
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +50 -50
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +8 -0
- metadata +25 -20
@@ -6,7 +6,6 @@ module Fastlane
|
|
6
6
|
|
7
7
|
UI.message("Login to App Store Connect (#{params[:username]})")
|
8
8
|
Spaceship::ConnectAPI.login(params[:username], use_portal: false, use_tunes: true)
|
9
|
-
Spaceship::ConnectAPI.select_team
|
10
9
|
UI.message("Login successful")
|
11
10
|
|
12
11
|
app = Spaceship::ConnectAPI::App.find(params[:app_identifier])
|
@@ -2886,7 +2886,7 @@ func downloadDsyms(username: String,
|
|
2886
2886
|
func downloadFromPlayStore(packageName: String,
|
2887
2887
|
versionName: String? = nil,
|
2888
2888
|
track: String = "production",
|
2889
|
-
metadataPath: String
|
2889
|
+
metadataPath: String = "./metadata",
|
2890
2890
|
key: String? = nil,
|
2891
2891
|
issuer: String? = nil,
|
2892
2892
|
jsonKey: String? = nil,
|
@@ -7431,7 +7431,7 @@ func supply(packageName: String,
|
|
7431
7431
|
releaseStatus: String = "completed",
|
7432
7432
|
track: String = "production",
|
7433
7433
|
rollout: String? = nil,
|
7434
|
-
metadataPath: String
|
7434
|
+
metadataPath: String = "./metadata",
|
7435
7435
|
key: String? = nil,
|
7436
7436
|
issuer: String? = nil,
|
7437
7437
|
jsonKey: String? = nil,
|
@@ -8588,7 +8588,7 @@ func uploadToPlayStore(packageName: String,
|
|
8588
8588
|
releaseStatus: String = "completed",
|
8589
8589
|
track: String = "production",
|
8590
8590
|
rollout: String? = nil,
|
8591
|
-
metadataPath: String
|
8591
|
+
metadataPath: String = "./metadata",
|
8592
8592
|
key: String? = nil,
|
8593
8593
|
issuer: String? = nil,
|
8594
8594
|
jsonKey: String? = nil,
|
@@ -9118,7 +9118,7 @@ func xcov(workspace: String? = nil,
|
|
9118
9118
|
coverallsServiceJobId: String? = nil,
|
9119
9119
|
coverallsRepoToken: String? = nil,
|
9120
9120
|
xcconfig: String? = nil,
|
9121
|
-
ideFoundationPath: String = "/Applications/Xcode-
|
9121
|
+
ideFoundationPath: String = "/Applications/Xcode-12.beta.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
9122
9122
|
legacySupport: Bool = false)
|
9123
9123
|
{
|
9124
9124
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
@@ -9254,14 +9254,14 @@ func parseInt(fromString: String, function: String = #function) -> Int {
|
|
9254
9254
|
return NSString(string: fromString.trimmingCharacters(in: .punctuationCharacters)).integerValue
|
9255
9255
|
}
|
9256
9256
|
|
9257
|
-
let deliverfile
|
9258
|
-
let gymfile
|
9259
|
-
let matchfile
|
9260
|
-
let precheckfile
|
9261
|
-
let scanfile
|
9262
|
-
let screengrabfile
|
9263
|
-
let snapshotfile
|
9257
|
+
let deliverfile = Deliverfile()
|
9258
|
+
let gymfile = Gymfile()
|
9259
|
+
let matchfile = Matchfile()
|
9260
|
+
let precheckfile = Precheckfile()
|
9261
|
+
let scanfile = Scanfile()
|
9262
|
+
let screengrabfile = Screengrabfile()
|
9263
|
+
let snapshotfile = Snapshotfile()
|
9264
9264
|
|
9265
9265
|
// Please don't remove the lines below
|
9266
9266
|
// They are used to detect outdated files
|
9267
|
-
// FastlaneRunnerAPIVersion [0.9.
|
9267
|
+
// FastlaneRunnerAPIVersion [0.9.91]
|
Binary file
|
@@ -19,17 +19,17 @@ module Match
|
|
19
19
|
end
|
20
20
|
|
21
21
|
UI.message("Verifying that the certificate and profile are still valid on the Dev Portal...")
|
22
|
-
Spaceship.login(
|
23
|
-
Spaceship.select_team
|
22
|
+
Spaceship::ConnectAPI.login(use_portal: true, use_tunes: false)
|
23
|
+
Spaceship::ConnectAPI.select_team
|
24
24
|
end
|
25
25
|
|
26
26
|
# The team ID of the currently logged in team
|
27
27
|
def team_id
|
28
|
-
return Spaceship.client.team_id
|
28
|
+
return Spaceship::ConnectAPI.client.team_id
|
29
29
|
end
|
30
30
|
|
31
31
|
def bundle_identifier_exists(username: nil, app_identifier: nil, platform: nil)
|
32
|
-
found = Spaceship.
|
32
|
+
found = Spaceship::ConnectAPI::BundleId.find(app_identifier)
|
33
33
|
return if found
|
34
34
|
|
35
35
|
require 'sigh/runner'
|
@@ -39,7 +39,7 @@ module Match
|
|
39
39
|
})
|
40
40
|
UI.error("An app with that bundle ID needs to exist in order to create a provisioning profile for it")
|
41
41
|
UI.error("================================================================")
|
42
|
-
available_apps = Spaceship.
|
42
|
+
available_apps = Spaceship::ConnectAPI::BundleId.all.collect { |a| "#{a.identifier} (#{a.name})" }
|
43
43
|
UI.message("Available apps:\n- #{available_apps.join("\n- ")}")
|
44
44
|
UI.error("Make sure to run `fastlane match` with the same user and team every time.")
|
45
45
|
UI.user_error!("Couldn't find bundle identifier '#{app_identifier}' for the user '#{username}'")
|
Binary file
|
@@ -364,10 +364,7 @@ module Pilot
|
|
364
364
|
begin
|
365
365
|
team = tunes_client.teams.find { |t| t['contentProvider']['contentProviderId'].to_s == tunes_client.team_id }
|
366
366
|
name = team['contentProvider']['name']
|
367
|
-
STDERR.puts("name: #{name}")
|
368
|
-
STDERR.puts("id: #{generic_transporter.provider_ids}")
|
369
367
|
provider_id = generic_transporter.provider_ids[name]
|
370
|
-
STDERR.puts("provider_id: #{provider_id}")
|
371
368
|
UI.verbose("Inferred provider id #{provider_id} for team #{name}.")
|
372
369
|
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id)
|
373
370
|
rescue => ex
|
data/pilot/lib/pilot/manager.rb
CHANGED
@@ -24,8 +24,7 @@ module Pilot
|
|
24
24
|
config[:username] ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
|
25
25
|
|
26
26
|
UI.message("Login to App Store Connect (#{config[:username]})")
|
27
|
-
Spaceship::ConnectAPI.login(config[:username], use_portal: false, use_tunes: true)
|
28
|
-
Spaceship::ConnectAPI.select_team(tunes_team_id: config[:team_id], team_name: config[:team_name])
|
27
|
+
Spaceship::ConnectAPI.login(config[:username], use_portal: false, use_tunes: true, tunes_team_id: config[:team_id], team_name: config[:team_name])
|
29
28
|
UI.message("Login successful")
|
30
29
|
end
|
31
30
|
end
|
@@ -10,7 +10,6 @@ module Produce
|
|
10
10
|
@full_bundle_identifier.gsub!('*', Produce.config[:bundle_identifier_suffix].to_s) if wildcard_bundle?
|
11
11
|
|
12
12
|
Spaceship::ConnectAPI.login(Produce.config[:username], nil, use_portal: false, use_tunes: true)
|
13
|
-
Spaceship::ConnectAPI.client.select_team
|
14
13
|
|
15
14
|
create_new_app
|
16
15
|
end
|
data/sigh/lib/assets/resign.sh
CHANGED
@@ -72,6 +72,9 @@
|
|
72
72
|
# new features June 2020
|
73
73
|
# 1. enable (re)signing of OnDemandResources when ipa has been built for the appstore
|
74
74
|
#
|
75
|
+
# new features August 2020
|
76
|
+
# 1. fixes usage for users with GNU-sed in their $PATH
|
77
|
+
#
|
75
78
|
|
76
79
|
# Logging functions
|
77
80
|
|
@@ -762,7 +765,7 @@ function resign {
|
|
762
765
|
|
763
766
|
# Get the entry from app's entitlements
|
764
767
|
# Read it with PlistBuddy as XML, then strip the header and <plist></plist> part
|
765
|
-
ENTITLEMENTS_VALUE="$(PlistBuddy -x -c "Print $KEY" "$APP_ENTITLEMENTS" 2>/dev/null | sed -e 's,.*<plist[^>]*>\(.*\)</plist>,\1,g')"
|
768
|
+
ENTITLEMENTS_VALUE="$(PlistBuddy -x -c "Print $KEY" "$APP_ENTITLEMENTS" 2>/dev/null | /usr/bin/sed -e 's,.*<plist[^>]*>\(.*\)</plist>,\1,g')"
|
766
769
|
if [[ -z "$ENTITLEMENTS_VALUE" ]]; then
|
767
770
|
log "No value for '$KEY'"
|
768
771
|
continue
|
@@ -780,7 +783,7 @@ function resign {
|
|
780
783
|
log "Certificate $CERTIFICATE matches a SHA1 pattern"
|
781
784
|
local certificate_matches="$( security find-identity -v -p codesigning | grep -m 1 "$CERTIFICATE" )"
|
782
785
|
if [ -n "$certificate_matches" ]; then
|
783
|
-
certificate_name="$(
|
786
|
+
certificate_name="$(/usr/bin/sed -E s/[^\"]+\"\([^\"]+\)\".*/\\1/ <<< $certificate_matches )"
|
784
787
|
log "Certificate name: $certificate_name"
|
785
788
|
fi
|
786
789
|
fi
|
@@ -807,18 +810,18 @@ function resign {
|
|
807
810
|
# otherwise it interprets they key path as nested keys
|
808
811
|
# TODO: Should be able to replace with echo ${KEY//\./\\\\.} and remove shellcheck disable directive
|
809
812
|
# shellcheck disable=SC2001
|
810
|
-
PLUTIL_KEY=$(echo "$KEY" | sed 's/\./\\\./g')
|
813
|
+
PLUTIL_KEY=$(echo "$KEY" | /usr/bin/sed 's/\./\\\./g')
|
811
814
|
plutil -insert "$PLUTIL_KEY" -xml "$ENTITLEMENTS_VALUE" "$PATCHED_ENTITLEMENTS"
|
812
815
|
|
813
816
|
# Patch the ID value if specified
|
814
817
|
if [[ "$ID_TYPE" == "APP_ID" ]]; then
|
815
818
|
# Replace old value with new value in patched entitlements
|
816
819
|
log "Replacing old app identifier prefix '$OLD_APP_ID' with new value '$NEW_APP_ID'"
|
817
|
-
sed -i .bak "s/$OLD_APP_ID/$NEW_APP_ID/g" "$PATCHED_ENTITLEMENTS"
|
820
|
+
/usr/bin/sed -i .bak "s/$OLD_APP_ID/$NEW_APP_ID/g" "$PATCHED_ENTITLEMENTS"
|
818
821
|
elif [[ "$ID_TYPE" == "TEAM_ID" ]]; then
|
819
822
|
# Replace old team identifier with new value
|
820
823
|
log "Replacing old team ID '$OLD_TEAM_ID' with new team ID: '$NEW_TEAM_ID'"
|
821
|
-
sed -i .bak "s/$OLD_TEAM_ID/$NEW_TEAM_ID/g" "$PATCHED_ENTITLEMENTS"
|
824
|
+
/usr/bin/sed -i .bak "s/$OLD_TEAM_ID/$NEW_TEAM_ID/g" "$PATCHED_ENTITLEMENTS"
|
822
825
|
else
|
823
826
|
continue
|
824
827
|
fi
|
@@ -835,7 +838,7 @@ function resign {
|
|
835
838
|
# e.g. <string>AB1GP98Q19.com.example.foo</string>
|
836
839
|
# vs
|
837
840
|
# com.example.foo
|
838
|
-
sed -i .bak "s!${OLD_BUNDLE_ID}</string>!${NEW_BUNDLE_ID}</string>!g" "$PATCHED_ENTITLEMENTS"
|
841
|
+
/usr/bin/sed -i .bak "s!${OLD_BUNDLE_ID}</string>!${NEW_BUNDLE_ID}</string>!g" "$PATCHED_ENTITLEMENTS"
|
839
842
|
|
840
843
|
log "Resigning application using certificate: '$CERTIFICATE'"
|
841
844
|
log "and patched entitlements:"
|
data/sigh/lib/sigh/runner.rb
CHANGED
@@ -19,7 +19,6 @@ module Sigh
|
|
19
19
|
|
20
20
|
UI.message("Starting login with user '#{Sigh.config[:username]}'")
|
21
21
|
Spaceship::ConnectAPI.login(Sigh.config[:username], nil, use_portal: true, use_tunes: false)
|
22
|
-
Spaceship::ConnectAPI.select_team
|
23
22
|
UI.message("Successfully logged in")
|
24
23
|
|
25
24
|
profiles = [] if Sigh.config[:skip_fetch_profiles]
|
@@ -39,6 +39,7 @@ require 'spaceship/connect_api/models/app_info_localization'
|
|
39
39
|
require 'spaceship/connect_api/models/app_preview_set'
|
40
40
|
require 'spaceship/connect_api/models/app_preview'
|
41
41
|
require 'spaceship/connect_api/models/app_price'
|
42
|
+
require 'spaceship/connect_api/models/app_price_point'
|
42
43
|
require 'spaceship/connect_api/models/app_price_tier'
|
43
44
|
require 'spaceship/connect_api/models/app_store_review_attachment'
|
44
45
|
require 'spaceship/connect_api/models/app_store_review_detail'
|
Binary file
|
@@ -51,12 +51,18 @@ module Spaceship
|
|
51
51
|
portal_client = Spaceship::Portal.login(user, password) if use_portal
|
52
52
|
tunes_client = Spaceship::Tunes.login(user, password) if use_tunes
|
53
53
|
|
54
|
+
# Check if environment variables are set for Spaceship::Portal or Spaceship::Tunes to select team
|
55
|
+
portal_team_id ||= ENV['FASTLANE_TEAM_ID']
|
56
|
+
portal_team_name = team_name || ENV['FASTLANE_TEAM_NAME']
|
57
|
+
tunes_team_id ||= ENV['FASTLANE_ITC_TEAM_ID']
|
58
|
+
tunes_team_name = team_name || ENV['FASTLANE_ITC_TEAM_NAME']
|
59
|
+
|
54
60
|
# The clients will automatically select the first team if none is given
|
55
|
-
if portal_client && (!portal_team_id.
|
56
|
-
portal_client.select_team(team_id: portal_team_id, team_name:
|
61
|
+
if portal_client && (!portal_team_id.to_s.strip.empty? || !portal_team_name.to_s.strip.empty?)
|
62
|
+
portal_client.select_team(team_id: portal_team_id, team_name: portal_team_name)
|
57
63
|
end
|
58
|
-
if tunes_client && (!tunes_team_id.
|
59
|
-
tunes_client.select_team(team_id: tunes_team_id, team_name:
|
64
|
+
if tunes_client && (!tunes_team_id.to_s.strip.empty? || !tunes_team_name.to_s.strip.empty?)
|
65
|
+
tunes_client.select_team(team_id: tunes_team_id, team_name: tunes_team_name)
|
60
66
|
end
|
61
67
|
|
62
68
|
return ConnectAPI::Client.new(tunes_client: tunes_client, portal_client: portal_client)
|
@@ -192,7 +192,7 @@ module Spaceship
|
|
192
192
|
.last
|
193
193
|
end
|
194
194
|
|
195
|
-
def get_live_app_store_version(platform: nil, includes:
|
195
|
+
def get_live_app_store_version(platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES)
|
196
196
|
platform ||= Spaceship::ConnectAPI::Platform::IOS
|
197
197
|
filter = {
|
198
198
|
appStoreState: Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_SALE,
|
@@ -201,7 +201,7 @@ module Spaceship
|
|
201
201
|
return get_app_store_versions(filter: filter, includes: includes).first
|
202
202
|
end
|
203
203
|
|
204
|
-
def get_edit_app_store_version(platform: nil, includes:
|
204
|
+
def get_edit_app_store_version(platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES)
|
205
205
|
platform ||= Spaceship::ConnectAPI::Platform::IOS
|
206
206
|
filter = {
|
207
207
|
appStoreState: [
|
@@ -221,7 +221,7 @@ module Spaceship
|
|
221
221
|
.last
|
222
222
|
end
|
223
223
|
|
224
|
-
def get_in_review_app_store_version(platform: nil, includes:
|
224
|
+
def get_in_review_app_store_version(platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES)
|
225
225
|
platform ||= Spaceship::ConnectAPI::Platform::IOS
|
226
226
|
filter = {
|
227
227
|
appStoreState: Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::IN_REVIEW,
|
@@ -230,7 +230,7 @@ module Spaceship
|
|
230
230
|
return get_app_store_versions(filter: filter, includes: includes).first
|
231
231
|
end
|
232
232
|
|
233
|
-
def get_pending_release_app_store_version(platform: nil, includes:
|
233
|
+
def get_pending_release_app_store_version(platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES)
|
234
234
|
platform ||= Spaceship::ConnectAPI::Platform::IOS
|
235
235
|
filter = {
|
236
236
|
appStoreState: Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_DEVELOPER_RELEASE,
|
@@ -239,7 +239,7 @@ module Spaceship
|
|
239
239
|
return get_app_store_versions(filter: filter, includes: includes).first
|
240
240
|
end
|
241
241
|
|
242
|
-
def get_app_store_versions(filter: {}, includes:
|
242
|
+
def get_app_store_versions(filter: {}, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES, limit: nil, sort: nil)
|
243
243
|
resps = Spaceship::ConnectAPI.get_app_store_versions(app_id: id, filter: filter, includes: includes, limit: limit, sort: sort).all_pages
|
244
244
|
return resps.flat_map(&:to_models)
|
245
245
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../model'
|
2
|
+
module Spaceship
|
3
|
+
class ConnectAPI
|
4
|
+
class AppPricePoint
|
5
|
+
include Spaceship::ConnectAPI::Model
|
6
|
+
|
7
|
+
attr_accessor :customer_price
|
8
|
+
|
9
|
+
attr_accessor :proceeds
|
10
|
+
|
11
|
+
attr_accessor :price_tier
|
12
|
+
attr_accessor :territory
|
13
|
+
|
14
|
+
attr_mapping({
|
15
|
+
"customerPrice" => "customer_price",
|
16
|
+
"proceeds" => "proceeds",
|
17
|
+
"priceTier" => "price_tier",
|
18
|
+
"territory" => "territory"
|
19
|
+
})
|
20
|
+
|
21
|
+
def self.type
|
22
|
+
return "appPricePoints"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -55,9 +55,15 @@ module Spaceship
|
|
55
55
|
"downloadable" => "downloadable",
|
56
56
|
"createdDate" => "created_date",
|
57
57
|
|
58
|
-
"appStoreVersionSubmission" => "app_store_version_submission"
|
58
|
+
"appStoreVersionSubmission" => "app_store_version_submission",
|
59
|
+
"build" => "build"
|
59
60
|
})
|
60
61
|
|
62
|
+
ESSENTIAL_INCLUDES = [
|
63
|
+
"appStoreVersionSubmission",
|
64
|
+
"build"
|
65
|
+
].join(",")
|
66
|
+
|
61
67
|
def self.type
|
62
68
|
return "appStoreVersions"
|
63
69
|
end
|