fastlane 2.28.3 → 2.28.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +4 -0
- data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +2 -2
- data/pilot/lib/pilot/build_manager.rb +16 -14
- data/pilot/lib/pilot/options.rb +2 -1
- data/pilot/lib/pilot/tester_manager.rb +12 -3
- data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
- data/spaceship/lib/spaceship/test_flight.rb +1 -0
- data/spaceship/lib/spaceship/test_flight/build.rb +4 -0
- data/spaceship/lib/spaceship/test_flight/client.rb +24 -2
- data/spaceship/lib/spaceship/test_flight/tester.rb +34 -0
- data/spaceship/lib/spaceship/tunes/app_status.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0741fe0112b31121452836380edebdb3b28bc426
|
4
|
+
data.tar.gz: 5993c9a13295c5d4e068c4d198c72950955860af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f17c50a5bf22101dd424d8aeba9dc18ee8e5ba136e2e051609cc67cf68b704ed458e1cf3e89ab36b8b57f7fb7f08312941eb7c302195a0d88b14ced356669ac
|
7
|
+
data.tar.gz: 60e9099954524f4e149cbd1a1645b4bdea6a157a4540fda6720bb2e75f6ad8f27a8d383660ea5c0156e285a0bb3a58535aa58dfcd9b1974f4a4ab866a6cfa7c7
|
@@ -25,7 +25,7 @@ module FastlaneCore
|
|
25
25
|
elsif matching_build.active?
|
26
26
|
UI.success("Build #{matching_build.train_version} - #{matching_build.build_version} is already being tested")
|
27
27
|
return matching_build
|
28
|
-
elsif matching_build.ready_to_submit?
|
28
|
+
elsif matching_build.ready_to_submit? || matching_build.export_compliance_missing?
|
29
29
|
UI.success("Successfully finished processing the build #{matching_build.train_version} - #{matching_build.build_version}")
|
30
30
|
return matching_build
|
31
31
|
end
|
@@ -108,6 +108,10 @@ module Commander
|
|
108
108
|
FastlaneCore::UI.error("builds for testing, adding and removing testers from groups, and")
|
109
109
|
FastlaneCore::UI.error("waiting for builds to process.")
|
110
110
|
FastlaneCore::UI.error("")
|
111
|
+
FastlaneCore::UI.error("Please open an issue on https://github.com/fastlane/fastlane/issues")
|
112
|
+
FastlaneCore::UI.error("if you believe this failure is the result of a bug in _pilot_ and we")
|
113
|
+
FastlaneCore::UI.error("will be happy to look into this further.")
|
114
|
+
FastlaneCore::UI.error("")
|
111
115
|
FastlaneCore::UI.error("Please stay tuned for more updates from _fastlane_ as we fix more issues!")
|
112
116
|
FastlaneCore::UI.error("")
|
113
117
|
if FastlaneCore::Globals.verbose?
|
@@ -45,8 +45,8 @@ module Fastlane
|
|
45
45
|
status = (resolved ? issue.state.green : issue.state.red)
|
46
46
|
|
47
47
|
puts "➡️ #{issue.title.yellow}"
|
48
|
-
puts "
|
49
|
-
puts "
|
48
|
+
puts " #{issue.html_url} [#{status}] #{issue.comments} 💬"
|
49
|
+
puts " #{Time.parse(issue.updated_at).to_pretty}"
|
50
50
|
puts ""
|
51
51
|
end
|
52
52
|
|
@@ -46,11 +46,9 @@ module Pilot
|
|
46
46
|
config[:app_identifier] = UI.input("App Identifier: ")
|
47
47
|
end
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
UI.success "Successfully set the changelog and/or description for build"
|
53
|
-
end
|
49
|
+
if should_update_build_information(options)
|
50
|
+
build.update_build_information!(whats_new: options[:changelog], description: options[:beta_app_description], feedback_email: options[:beta_app_feedback_email])
|
51
|
+
UI.success "Successfully set the changelog and/or description for build"
|
54
52
|
end
|
55
53
|
|
56
54
|
return if config[:skip_submission]
|
@@ -110,10 +108,10 @@ module Pilot
|
|
110
108
|
|
111
109
|
# This is where we could add a check to see if encryption is required and has been updated
|
112
110
|
uploaded_build.export_compliance.encryption_updated = false
|
113
|
-
uploaded_build.beta_review_info.demo_account_required = false
|
114
|
-
uploaded_build.submit_for_testflight_review!
|
115
111
|
|
116
112
|
if options[:distribute_external]
|
113
|
+
uploaded_build.beta_review_info.demo_account_required = false
|
114
|
+
uploaded_build.submit_for_testflight_review!
|
117
115
|
external_group = Spaceship::TestFlight::Group.default_external_group(app_id: uploaded_build.app_id)
|
118
116
|
uploaded_build.add_group!(external_group) unless external_group.nil?
|
119
117
|
|
@@ -121,14 +119,18 @@ module Pilot
|
|
121
119
|
UI.user_error!("You must specify at least one group using the `:groups` option to distribute externally")
|
122
120
|
end
|
123
121
|
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
122
|
+
if options[:groups]
|
123
|
+
groups = Spaceship::TestFlight::Group.filter_groups(app_id: uploaded_build.app_id) do |group|
|
124
|
+
options[:groups].include?(group.name)
|
125
|
+
end
|
126
|
+
groups.each do |group|
|
127
|
+
uploaded_build.add_group!(group)
|
128
|
+
end
|
129
129
|
end
|
130
|
-
|
131
|
-
|
130
|
+
else # distribute internally
|
131
|
+
# in case any changes to export_compliance are required
|
132
|
+
if uploaded_build.export_compliance_missing?
|
133
|
+
uploaded_build.save!
|
132
134
|
end
|
133
135
|
end
|
134
136
|
|
data/pilot/lib/pilot/options.rb
CHANGED
@@ -65,9 +65,10 @@ module Pilot
|
|
65
65
|
is_string: false,
|
66
66
|
default_value: false),
|
67
67
|
FastlaneCore::ConfigItem.new(key: :update_build_info_on_upload,
|
68
|
+
deprecated: true,
|
68
69
|
short_option: "-x",
|
69
70
|
env_name: "PILOT_UPDATE_BUILD_INFO_ON_UPLOAD",
|
70
|
-
description: "Update build info immediately after validation. This will
|
71
|
+
description: "Update build info immediately after validation. This is deprecated and will be removed in a future release. iTunesConnect no longer supports setting build info until after build processing has completed, which is when build info is updated by default",
|
71
72
|
is_string: false,
|
72
73
|
default_value: false),
|
73
74
|
FastlaneCore::ConfigItem.new(key: :apple_id,
|
@@ -65,9 +65,18 @@ module Pilot
|
|
65
65
|
begin
|
66
66
|
app = Spaceship::Application.find(app_filter)
|
67
67
|
UI.user_error!("Couldn't find app with '#{app_filter}'") unless app
|
68
|
-
|
69
|
-
|
70
|
-
|
68
|
+
|
69
|
+
# If no groups are passed to options, remove the tester from the app-level,
|
70
|
+
# otherwise remove the tester from the groups specified.
|
71
|
+
if config[:groups].nil?
|
72
|
+
test_flight_tester = Spaceship::TestFlight::Tester.find(app_id: app.apple_id, email: tester.email)
|
73
|
+
test_flight_tester.remove_from_app!(app_id: app.apple_id)
|
74
|
+
UI.success("Successfully removed tester, #{test_flight_tester.email}, from app: #{app_filter}")
|
75
|
+
else
|
76
|
+
groups = remove_tester_from_groups!(tester: tester, app: app, groups: config[:groups])
|
77
|
+
group_names = groups.map(&:name).join(", ")
|
78
|
+
UI.success("Successfully removed tester #{tester.email} from app #{app_filter} in group(s) #{group_names}")
|
79
|
+
end
|
71
80
|
rescue => ex
|
72
81
|
UI.error("Could not remove #{tester.email} from app: #{ex}")
|
73
82
|
raise ex
|
@@ -145,7 +145,7 @@ open class Snapshot: NSObject {
|
|
145
145
|
print("Can't prepare environment. Simulator home location is inaccessible. Does \(simulatorHostHome) exist?")
|
146
146
|
return nil
|
147
147
|
}
|
148
|
-
homeDir = homeDirUrl
|
148
|
+
homeDir = URL(fileURLWithPath: homeDirUrl.path)
|
149
149
|
#endif
|
150
150
|
return homeDir.appendingPathComponent("Library/Caches/tools.fastlane")
|
151
151
|
}
|
@@ -121,6 +121,10 @@ module Spaceship::TestFlight
|
|
121
121
|
external_state == BUILD_STATES[:processing]
|
122
122
|
end
|
123
123
|
|
124
|
+
def export_compliance_missing?
|
125
|
+
external_state == BUILD_STATES[:export_compliance_missing]
|
126
|
+
end
|
127
|
+
|
124
128
|
# Getting builds from BuildTrains only gets a partial Build object
|
125
129
|
# We are then requesting the full build from iTC when we need to access
|
126
130
|
# any of the variables below, because they are not inlcuded in the partial Build objects
|
@@ -20,6 +20,20 @@ module Spaceship::TestFlight
|
|
20
20
|
handle_response(response)
|
21
21
|
end
|
22
22
|
|
23
|
+
def testers_for_app(app_id: nil)
|
24
|
+
assert_required_params(__method__, binding)
|
25
|
+
url = "providers/#{team_id}/apps/#{app_id}/testers"
|
26
|
+
response = request(:get, url)
|
27
|
+
handle_response(response)
|
28
|
+
end
|
29
|
+
|
30
|
+
def delete_tester_from_app(app_id: nil, tester_id: nil)
|
31
|
+
assert_required_params(__method__, binding)
|
32
|
+
url = "providers/#{team_id}/apps/#{app_id}/testers/#{tester_id}"
|
33
|
+
response = request(:delete, url)
|
34
|
+
handle_response(response)
|
35
|
+
end
|
36
|
+
|
23
37
|
def post_tester(app_id: nil, tester: nil)
|
24
38
|
assert_required_params(__method__, binding)
|
25
39
|
url = "providers/#{team_id}/apps/#{app_id}/testers"
|
@@ -128,12 +142,20 @@ module Spaceship::TestFlight
|
|
128
142
|
#
|
129
143
|
# @raises NameError if the values are nil
|
130
144
|
def assert_required_params(method_name, binding)
|
131
|
-
parameter_names =
|
145
|
+
parameter_names = method(method_name).parameters.map { |k, v| v }
|
132
146
|
parameter_names.each do |name|
|
133
|
-
if
|
147
|
+
if local_variable_get(binding, name).nil?
|
134
148
|
raise NameError, "`#{name}' is a required parameter"
|
135
149
|
end
|
136
150
|
end
|
137
151
|
end
|
152
|
+
|
153
|
+
def local_variable_get(binding, name)
|
154
|
+
if binding.respond_to?(:local_variable_get)
|
155
|
+
binding.local_variable_get(name)
|
156
|
+
else
|
157
|
+
binding.eval(name.to_s)
|
158
|
+
end
|
159
|
+
end
|
138
160
|
end
|
139
161
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Spaceship::TestFlight
|
2
|
+
class Tester < Base
|
3
|
+
# @return (String) The identifier of this tester, provided by iTunes Connect
|
4
|
+
# @example
|
5
|
+
# "60f858b4-60a8-428a-963a-f943a3d68d17"
|
6
|
+
attr_accessor :tester_id
|
7
|
+
|
8
|
+
# @return (String) The email of this tester
|
9
|
+
# @example
|
10
|
+
# "tester@spaceship.com"
|
11
|
+
attr_accessor :email
|
12
|
+
|
13
|
+
attr_mapping(
|
14
|
+
'id' => :tester_id,
|
15
|
+
'email' => :email
|
16
|
+
)
|
17
|
+
|
18
|
+
# @return (Array) Returns all beta testers available for this account
|
19
|
+
def self.all(app_id: nil)
|
20
|
+
client.testers_for_app(app_id: app_id).map { |data| self.new(data) }
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return (Spaceship::TestFlight::Tester) Returns the tester matching the parameter
|
24
|
+
# as either the Tester id or email
|
25
|
+
# @param email (String) (required): Value used to filter the tester, case insensitive
|
26
|
+
def self.find(app_id: nil, email: nil)
|
27
|
+
self.all(app_id: app_id).find { |tester| tester.email == email }
|
28
|
+
end
|
29
|
+
|
30
|
+
def remove_from_app!(app_id: nil)
|
31
|
+
client.delete_tester_from_app(app_id: app_id, tester_id: self.tester_id)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -46,6 +46,7 @@ module Spaceship
|
|
46
46
|
'developerRemovedFromSale' => DEVELOPER_REMOVED_FROM_SALE,
|
47
47
|
'waitingForReview' => WAITING_FOR_REVIEW,
|
48
48
|
'inReview' => IN_REVIEW,
|
49
|
+
'rejected' => REJECTED,
|
49
50
|
'pendingDeveloperRelease' => PENDING_DEVELOPER_RELEASE,
|
50
51
|
'metadataRejected' => METADATA_REJECTED
|
51
52
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.28.
|
4
|
+
version: 2.28.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2017-04-
|
18
|
+
date: 2017-04-25 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: slack-notifier
|
@@ -1279,6 +1279,7 @@ files:
|
|
1279
1279
|
- spaceship/lib/spaceship/test_flight/export_compliance.rb
|
1280
1280
|
- spaceship/lib/spaceship/test_flight/group.rb
|
1281
1281
|
- spaceship/lib/spaceship/test_flight/test_info.rb
|
1282
|
+
- spaceship/lib/spaceship/test_flight/tester.rb
|
1282
1283
|
- spaceship/lib/spaceship/tunes/app_details.rb
|
1283
1284
|
- spaceship/lib/spaceship/tunes/app_image.rb
|
1284
1285
|
- spaceship/lib/spaceship/tunes/app_ratings.rb
|