fastlane 2.9.0 → 2.10.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 +1 -1
- data/cert/lib/cert/options.rb +11 -1
- data/cert/lib/cert/runner.rb +11 -3
- data/credentials_manager/lib/credentials_manager/account_manager.rb +1 -1
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +2 -2
- data/fastlane/README.md +1 -1
- data/fastlane/lib/assets/completions/completion.bash +3 -1
- data/fastlane/lib/assets/completions/completion.sh +4 -1
- data/fastlane/lib/assets/completions/completion.zsh +2 -0
- data/fastlane/lib/fastlane/actions/actions_helper.rb +2 -2
- data/fastlane/lib/fastlane/actions/clipboard.rb +1 -1
- data/fastlane/lib/fastlane/actions/deploygate.rb +2 -2
- data/fastlane/lib/fastlane/actions/ipa.rb +2 -2
- data/fastlane/lib/fastlane/actions/sonar.rb +10 -3
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcodebuild.rb +23 -6
- data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
- data/fastlane/lib/fastlane/fast_file.rb +2 -2
- data/fastlane/lib/fastlane/lane_manager.rb +5 -2
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -0
- data/fastlane/lib/fastlane/runner.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +2 -2
- data/fastlane_core/lib/fastlane_core/print_table.rb +6 -0
- data/frameit/lib/frameit/strings_parser.rb +1 -1
- data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +3 -0
- data/gym/lib/gym/generators/build_command_generator.rb +1 -0
- data/gym/lib/gym/options.rb +6 -1
- data/pem/README.md +1 -1
- data/scan/lib/scan/options.rb +14 -2
- data/scan/lib/scan/test_command_generator.rb +3 -2
- data/screengrab/lib/screengrab/options.rb +11 -1
- data/screengrab/lib/screengrab/runner.rb +48 -23
- data/sigh/lib/assets/resign.sh +75 -37
- data/sigh/lib/sigh/runner.rb +29 -9
- data/snapshot/lib/assets/SnapshotHelper.swift +4 -0
- data/snapshot/lib/assets/SnapshotHelper2-3.swift +4 -0
- data/snapshot/lib/snapshot/dependency_checker.rb +1 -1
- data/snapshot/lib/snapshot/options.rb +6 -0
- data/snapshot/lib/snapshot/runner.rb +15 -0
- data/spaceship/lib/spaceship/client.rb +1 -1
- data/spaceship/lib/spaceship/portal/certificate.rb +2 -1
- data/spaceship/lib/spaceship/portal/device.rb +3 -1
- data/spaceship/lib/spaceship/portal/portal_client.rb +2 -2
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +4 -2
- metadata +2 -2
data/sigh/lib/sigh/runner.rb
CHANGED
@@ -61,7 +61,7 @@ module Sigh
|
|
61
61
|
# Fetches a profile matching the user's search requirements
|
62
62
|
def fetch_profiles
|
63
63
|
UI.message "Fetching profiles..."
|
64
|
-
results = profile_type.find_by_bundle_id(Sigh.config[:app_identifier])
|
64
|
+
results = profile_type.find_by_bundle_id(Sigh.config[:app_identifier], mac: Sigh.config[:platform].to_s == 'macos')
|
65
65
|
results = results.find_all do |current_profile|
|
66
66
|
if current_profile.valid? || Sigh.config[:force]
|
67
67
|
true
|
@@ -136,15 +136,35 @@ module Sigh
|
|
136
136
|
profile
|
137
137
|
end
|
138
138
|
|
139
|
+
def certificates_for_profile_and_platform
|
140
|
+
case Sigh.config[:platform].to_s
|
141
|
+
when 'ios'
|
142
|
+
if profile_type == Spaceship.provisioning_profile.Development
|
143
|
+
certificates = Spaceship.certificate.development.all
|
144
|
+
elsif profile_type == Spaceship.provisioning_profile.InHouse
|
145
|
+
certificates = Spaceship.certificate.in_house.all
|
146
|
+
else
|
147
|
+
certificates = Spaceship.certificate.production.all # Ad hoc or App Store
|
148
|
+
end
|
149
|
+
|
150
|
+
when 'macos'
|
151
|
+
if profile_type == Spaceship.provisioning_profile.Development
|
152
|
+
certificates = Spaceship.certificate.mac_development.all
|
153
|
+
elsif profile_type == Spaceship.provisioning_profile.AppStore
|
154
|
+
certificates = Spaceship.certificate.mac_app_distribution.all
|
155
|
+
elsif profile_type == Spaceship.provisioning_profile.Direct
|
156
|
+
certificates = Spaceship.certificate.developer_id_application.all
|
157
|
+
else
|
158
|
+
certificates = Spaceship.certificate.mac_app_distribution.all
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
certificates
|
163
|
+
end
|
164
|
+
|
139
165
|
# Certificate to use based on the current distribution mode
|
140
166
|
def certificate_to_use
|
141
|
-
|
142
|
-
certificates = Spaceship.certificate.development.all
|
143
|
-
elsif profile_type == Spaceship.provisioning_profile.InHouse
|
144
|
-
certificates = Spaceship.certificate.in_house.all
|
145
|
-
else
|
146
|
-
certificates = Spaceship.certificate.production.all # Ad hoc or App Store
|
147
|
-
end
|
167
|
+
certificates = certificates_for_profile_and_platform
|
148
168
|
|
149
169
|
# Filter them
|
150
170
|
certificates = certificates.find_all do |c|
|
@@ -211,7 +231,7 @@ module Sigh
|
|
211
231
|
|
212
232
|
# Makes sure the current App ID exists. If not, it will show an appropriate error message
|
213
233
|
def ensure_app_exists!
|
214
|
-
return if Spaceship::App.find(Sigh.config[:app_identifier])
|
234
|
+
return if Spaceship::App.find(Sigh.config[:app_identifier], mac: Sigh.config[:platform].to_s == 'macos')
|
215
235
|
print_produce_command(Sigh.config)
|
216
236
|
UI.user_error!("Could not find App with App Identifier '#{Sigh.config[:app_identifier]}'")
|
217
237
|
end
|
@@ -129,6 +129,10 @@ open class Snapshot: NSObject {
|
|
129
129
|
|
130
130
|
extension XCUIElement {
|
131
131
|
var isLoadingIndicator: Bool {
|
132
|
+
let whiteListedLoaders = ["GeofenceLocationTrackingOn", "StandardLocationTrackingOn"]
|
133
|
+
if whiteListedLoaders.contains(self.identifier) {
|
134
|
+
return false
|
135
|
+
}
|
132
136
|
return self.frame.size == CGSize(width: 10, height: 20)
|
133
137
|
}
|
134
138
|
}
|
@@ -131,6 +131,10 @@ public class Snapshot: NSObject {
|
|
131
131
|
|
132
132
|
extension XCUIElement {
|
133
133
|
var isLoadingIndicator: Bool {
|
134
|
+
let whiteListedLoaders = ["GeofenceLocationTrackingOn", "StandardLocationTrackingOn"]
|
135
|
+
if whiteListedLoaders.contains(self.identifier) {
|
136
|
+
return false
|
137
|
+
}
|
134
138
|
return self.frame.size == CGSize(width: 10, height: 20)
|
135
139
|
}
|
136
140
|
}
|
@@ -43,7 +43,7 @@ module Snapshot
|
|
43
43
|
|
44
44
|
def self.check_simctl
|
45
45
|
unless `xcrun simctl`.include? "openurl"
|
46
|
-
UI.user_error!("Could not find `xcrun simctl`. Make sure you have the latest version of Xcode and
|
46
|
+
UI.user_error!("Could not find `xcrun simctl`. Make sure you have the latest version of Xcode and macOS installed.")
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
@@ -63,6 +63,12 @@ module Snapshot
|
|
63
63
|
env_name: "SNAPSHOT_OUTPUT_DIRECTORY",
|
64
64
|
description: "The directory where to store the screenshots",
|
65
65
|
default_value: output_directory),
|
66
|
+
FastlaneCore::ConfigItem.new(key: :output_simulator_logs,
|
67
|
+
env_name: "SNAPSHOT_OUTPUT_SIMULATOR_LOGS",
|
68
|
+
description: "If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory",
|
69
|
+
type: TrueClass,
|
70
|
+
default_value: false,
|
71
|
+
optional: true),
|
66
72
|
FastlaneCore::ConfigItem.new(key: :ios_version,
|
67
73
|
description: "By default, the latest version should be used automatically. If you want to change it, do it here",
|
68
74
|
short_option: "-i",
|
@@ -62,6 +62,10 @@ module Snapshot
|
|
62
62
|
# Generate HTML report
|
63
63
|
ReportsGenerator.new.generate
|
64
64
|
|
65
|
+
if Snapshot.config[:output_simulator_logs]
|
66
|
+
output_simulator_logs
|
67
|
+
end
|
68
|
+
|
65
69
|
# Clear the Derived Data
|
66
70
|
unless Snapshot.config[:derived_data_path]
|
67
71
|
FileUtils.rm_rf(TestCommandGenerator.derived_data_path)
|
@@ -96,6 +100,17 @@ module Snapshot
|
|
96
100
|
end
|
97
101
|
end
|
98
102
|
|
103
|
+
def output_simulator_logs
|
104
|
+
Snapshot.config[:devices].each do |device_name|
|
105
|
+
device = TestCommandGenerator.find_device(device_name)
|
106
|
+
sim_device_logfilepath_source = File.expand_path("~/Library/Logs/CoreSimulator/#{device.udid}/system.log")
|
107
|
+
next unless File.exist?(sim_device_logfilepath_source)
|
108
|
+
|
109
|
+
sim_device_logfilepath_dest = File.join(Snapshot.config[:output_directory], "#{device.name}_#{device.os_type}_#{device.os_version}_system.log")
|
110
|
+
FileUtils.cp(sim_device_logfilepath_source, sim_device_logfilepath_dest)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
99
114
|
def print_results(results)
|
100
115
|
return if results.count == 0
|
101
116
|
|
@@ -368,7 +368,7 @@ module Spaceship
|
|
368
368
|
|
369
369
|
def with_retry(tries = 5, &_block)
|
370
370
|
return yield
|
371
|
-
rescue Faraday::Error::ConnectionFailed, Faraday::Error::TimeoutError, AppleTimeoutError
|
371
|
+
rescue Faraday::Error::ConnectionFailed, Faraday::Error::TimeoutError, AppleTimeoutError => ex # New Faraday version: Faraday::TimeoutError => ex
|
372
372
|
tries -= 1
|
373
373
|
unless tries.zero?
|
374
374
|
logger.warn("Timeout received: '#{ex.message}'. Retrying after 3 seconds (remaining: #{tries})...")
|
@@ -283,6 +283,7 @@ module Spaceship
|
|
283
283
|
# @return (Certificate): The newly created certificate
|
284
284
|
def create!(csr: nil, bundle_id: nil)
|
285
285
|
type = CERTIFICATE_TYPE_IDS.key(self)
|
286
|
+
mac = MAC_CERTIFICATE_TYPE_IDS.include? type
|
286
287
|
|
287
288
|
# look up the app_id by the bundle_id
|
288
289
|
if bundle_id
|
@@ -295,7 +296,7 @@ module Spaceship
|
|
295
296
|
csr = OpenSSL::X509::Request.new(csr) if csr.kind_of?(String)
|
296
297
|
|
297
298
|
# if this succeeds, we need to save the .cer and the private key in keychain access or wherever they go in linux
|
298
|
-
response = client.create_certificate!(type, csr.to_pem, app_id)
|
299
|
+
response = client.create_certificate!(type, csr.to_pem, app_id, mac)
|
299
300
|
# munge the response to make it work for the factory
|
300
301
|
response['certificateTypeDisplayId'] = response['certificateType']['certificateTypeDisplayId']
|
301
302
|
self.new(response)
|
@@ -100,10 +100,12 @@ module Spaceship
|
|
100
100
|
all.select { |device| device.device_type != "tvOS" }
|
101
101
|
end
|
102
102
|
|
103
|
-
# @return (Array) Returns all devices
|
103
|
+
# @return (Array) Returns all devices matching the provided profile_type
|
104
104
|
def all_for_profile_type(profile_type)
|
105
105
|
if profile_type.include? "tvOS"
|
106
106
|
Spaceship::Device.all_apple_tvs
|
107
|
+
elsif profile_type.include? "Mac"
|
108
|
+
Spaceship::Device.all_macs
|
107
109
|
else
|
108
110
|
Spaceship::Device.all_ios_profile_devices
|
109
111
|
end
|
@@ -315,10 +315,10 @@ module Spaceship
|
|
315
315
|
end
|
316
316
|
end
|
317
317
|
|
318
|
-
def create_certificate!(type, csr, app_id = nil)
|
318
|
+
def create_certificate!(type, csr, app_id = nil, mac = false)
|
319
319
|
ensure_csrf(Spaceship::Certificate)
|
320
320
|
|
321
|
-
r = request(:post,
|
321
|
+
r = request(:post, "account/#{platform_slug(mac)}/certificate/submitCertificateRequest.action", {
|
322
322
|
teamId: team_id,
|
323
323
|
type: type,
|
324
324
|
csrContent: csr,
|
@@ -249,13 +249,15 @@ module Spaceship
|
|
249
249
|
# @return (Array) Returns all profiles registered for this account
|
250
250
|
# If you're calling this from a subclass (like AdHoc), this will
|
251
251
|
# only return the profiles that are of this type
|
252
|
-
|
252
|
+
# @param mac (Bool) (optional): Pass true to get all Mac provisioning profiles
|
253
|
+
# @param xcode (Bool) (optional): Pass true to include Xcode managed provisioning profiles
|
254
|
+
def all(mac: false, xcode: false)
|
253
255
|
profiles = client.provisioning_profiles(mac: mac).map do |profile|
|
254
256
|
self.factory(profile)
|
255
257
|
end
|
256
258
|
|
257
259
|
# filter out the profiles managed by xcode
|
258
|
-
profiles.delete_if(&:managed_by_xcode?)
|
260
|
+
profiles.delete_if(&:managed_by_xcode?) unless xcode
|
259
261
|
|
260
262
|
return profiles if self == ProvisioningProfile
|
261
263
|
|
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.
|
4
|
+
version: 2.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2017-01-
|
17
|
+
date: 2017-01-23 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: slack-notifier
|