fastlane 2.132.0.beta.20190929200020 → 2.132.0.beta.20190930200026

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7475d8243a69dbe47e5ac7e78c92a3d42fbf49b1
4
- data.tar.gz: 4a9eb1f935cab51481216628acfc61e2f50a898f
3
+ metadata.gz: c14e4ec05ffa2e8bb2bfed039373bf6e6a379c6a
4
+ data.tar.gz: e4e202342dd405c57ceaa1f2417478e83d270b5a
5
5
  SHA512:
6
- metadata.gz: c05bb507156f0d3e3dc825629dc186c1da3b8bfdd70fdf2cfa4112e4110b85f64c0764e2b70d4af3760690861c615d6b7c1a75f2a69e3f1aa9ec707e4d54d0dd
7
- data.tar.gz: e17d98b3ec76b346e8418c07fb12185178fc24e90e6561cd34c11022676f7abf9e3a38f76b93393e74271c98bcffc30a452799905ee661066fbf23875b6744c9
6
+ metadata.gz: 2a092f7038dcf6ada9776771f2d61e81307e806969a00c3dc1ca96108cf9d20103e5f318f908c61ec64feb866ed1870801a111c60dfbf664a618cff3aab48186
7
+ data.tar.gz: caa998a9b5b5fddad183c38eb848ad0bfab157fe2be1fa7b866797effdea8ed21d3af7da23c943e94ed4ba340b24c905d313a7e152195ee683e3285ab29b4da4
@@ -1,4 +1,5 @@
1
1
  require 'fastlane_core/helper'
2
+ require 'fastlane/boolean'
2
3
 
3
4
  module Cert
4
5
  # Use this to just setup the configuration attribute and set it later somewhere else
@@ -8,6 +9,7 @@ module Cert
8
9
 
9
10
  Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
10
11
  UI = FastlaneCore::UI
12
+ Boolean = Fastlane::Boolean
11
13
  ROOT = Pathname.new(File.expand_path('../../..', __FILE__))
12
14
 
13
15
  ENV['FASTLANE_TEAM_ID'] ||= ENV["CERT_TEAM_ID"]
@@ -20,6 +20,12 @@ module Cert
20
20
  description: "Create a certificate even if an existing certificate exists",
21
21
  is_string: false,
22
22
  default_value: false),
23
+ FastlaneCore::ConfigItem.new(key: :generate_apple_certs,
24
+ env_name: "CERT_GENERATE_APPLE_CERTS",
25
+ description: "Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)",
26
+ type: Boolean,
27
+ default_value: FastlaneCore::Helper.mac? && FastlaneCore::Helper.xcode_at_least?('11'),
28
+ default_value_dynamic: true),
23
29
  FastlaneCore::ConfigItem.new(key: :username,
24
30
  short_option: "-u",
25
31
  env_name: "CERT_USERNAME",
@@ -134,19 +134,25 @@ module Cert
134
134
 
135
135
  # The kind of certificate we're interested in
136
136
  def certificate_type
137
- case Cert.config[:platform].to_s
138
- when 'ios', 'tvos'
139
- cert_type = Spaceship.certificate.production
140
- cert_type = Spaceship.certificate.in_house if Spaceship.client.in_house?
141
- cert_type = Spaceship.certificate.development if Cert.config[:development]
142
-
143
- when 'macos'
144
- cert_type = Spaceship.certificate.mac_app_distribution
145
- cert_type = Spaceship.certificate.mac_development if Cert.config[:development]
146
-
137
+ # Check if apple certs (Xcode 11 and later) should be used
138
+ if Cert.config[:generate_apple_certs]
139
+ cert_type = Spaceship.certificate.apple_distribution
140
+ cert_type = Spaceship.certificate.in_house if Spaceship.client.in_house? # Enterprise doesn't use Apple Distribution
141
+ cert_type = Spaceship.certificate.apple_development if Cert.config[:development]
142
+ else
143
+ case Cert.config[:platform].to_s
144
+ when 'ios', 'tvos'
145
+ cert_type = Spaceship.certificate.production
146
+ cert_type = Spaceship.certificate.in_house if Spaceship.client.in_house?
147
+ cert_type = Spaceship.certificate.development if Cert.config[:development]
148
+
149
+ when 'macos'
150
+ cert_type = Spaceship.certificate.mac_app_distribution
151
+ cert_type = Spaceship.certificate.mac_development if Cert.config[:development]
152
+ end
147
153
  end
148
154
 
149
- cert_type
155
+ return cert_type
150
156
  end
151
157
 
152
158
  def create_certificate
@@ -16,7 +16,7 @@ module Fastlane
16
16
  # If any of the paths include "*", we assume that we are referring to the Unix entries
17
17
  # e.g /tmp/fastlane/* refers to all the files in /tmp/fastlane
18
18
  # We use Dir.glob to expand all those paths, this would create an array of arrays though, so flatten
19
- artifacts = artifacts_to_search.map { |f| f.include?("*") ? Dir.glob(f) : f }.flatten
19
+ artifacts = artifacts_to_search.flat_map { |f| f.include?("*") ? Dir.glob(f) : f }
20
20
 
21
21
  UI.verbose("Copying artifacts #{artifacts.join(', ')} to #{target_path}")
22
22
  UI.verbose(params[:keep_original] ? "Keeping original files" : "Not keeping original files")
@@ -45,7 +45,7 @@ module Fastlane
45
45
  end
46
46
  supported_platforms = all_platforms.select { |platform| self.is_supported?(platform.to_sym) }
47
47
 
48
- existing_devices = supported_platforms.map { |platform| Spaceship::Device.all(mac: platform == "mac") }.flatten
48
+ existing_devices = supported_platforms.flat_map { |platform| Spaceship::Device.all(mac: platform == "mac") }
49
49
 
50
50
  device_objs = new_devices.map do |device|
51
51
  next if existing_devices.map(&:udid).include?(device[0])
@@ -26,10 +26,15 @@ module Fastlane
26
26
  'you should turn off smart quotes in your editor of choice.')
27
27
  end
28
28
 
29
- content.scan(/^\s*require (.*)/).each do |current|
29
+ content.scan(/^\s*require ["'](.*?)["']/).each do |current|
30
30
  gem_name = current.last
31
31
  next if gem_name.include?(".") # these are local gems
32
- UI.important("You have required a gem, if this is a third party gem, please use `fastlane_require #{gem_name}` to ensure the gem is installed locally.")
32
+
33
+ begin
34
+ require(gem_name)
35
+ rescue LoadError
36
+ UI.important("You have required a gem, if this is a third party gem, please use `fastlane_require '#{gem_name}'` to ensure the gem is installed locally.")
37
+ end
33
38
  end
34
39
 
35
40
  parse(content, @path)
@@ -55,7 +55,7 @@ module Fastlane
55
55
 
56
56
  self.package_name = UI.input("Package Name (com.krausefx.app): ")
57
57
  puts("")
58
- puts("To automatically upload builds and metadata to Google Play, fastlane needs a service action json secret file".yellow)
58
+ puts("To automatically upload builds and metadata to Google Play, fastlane needs a service account json secret file".yellow)
59
59
  puts("Follow the Setup Guide on how to get the Json file: https://docs.fastlane.tools/actions/supply/".yellow)
60
60
  puts("Feel free to press Enter at any time in order to skip providing pieces of information when asked")
61
61
  self.json_key_file = UI.input("Path to the json secret file: ")
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.132.0.beta.20190929200020'.freeze
2
+ VERSION = '2.132.0.beta.20190930200026'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -154,7 +154,7 @@ module FastlaneCore
154
154
  # As there was no communication from Apple, we don't know if this is a temporary
155
155
  # server outage, or something they changed without giving a heads-up
156
156
  if ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"].to_s.length == 0
157
- ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t DAV"
157
+ ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t DAV,Signiant"
158
158
  end
159
159
  return ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"]
160
160
  end
@@ -170,7 +170,6 @@ module FastlaneCore
170
170
  "-p #{shell_escaped_password(password)}",
171
171
  "-f \"#{source}\"",
172
172
  additional_upload_parameters, # that's here, because the user might overwrite the -t option
173
- "-t Signiant",
174
173
  "-k 100000",
175
174
  ("-WONoPause true" if Helper.windows?), # Windows only: process instantly returns instead of waiting for key press
176
175
  ("-itc_provider #{provider_short_name}" unless provider_short_name.to_s.empty?)
@@ -255,7 +254,6 @@ module FastlaneCore
255
254
  "-p #{password.shellescape}",
256
255
  "-f #{source.shellescape}",
257
256
  additional_upload_parameters, # that's here, because the user might overwrite the -t option
258
- '-t Signiant',
259
257
  '-k 100000',
260
258
  ("-itc_provider #{provider_short_name}" unless provider_short_name.to_s.empty?),
261
259
  '2>&1' # cause stderr to be written to stdout
@@ -11,6 +11,7 @@ module Match
11
11
 
12
12
  arguments = FastlaneCore::Configuration.create(Cert::Options.available_options, {
13
13
  development: params[:type] == "development",
14
+ generate_apple_certs: params[:generate_apple_certs],
14
15
  output_path: output_path,
15
16
  force: true, # we don't need a certificate without its private key, we only care about a new certificate
16
17
  username: params[:username],
@@ -1,8 +1,10 @@
1
1
  require 'fastlane_core/helper'
2
+ require 'fastlane/boolean'
2
3
 
3
4
  module Match
4
5
  Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
5
6
  UI = FastlaneCore::UI
7
+ Boolean = Fastlane::Boolean
6
8
  ROOT = Pathname.new(File.expand_path('../../..', __FILE__))
7
9
  DESCRIPTION = "Easily sync your certificates and profiles across your team"
8
10
 
@@ -100,7 +100,7 @@ module Match
100
100
  prov_types = [:enterprise] if cert_type == :enterprise
101
101
 
102
102
  Spaceship.login(params[:username])
103
- Spaceship.select_team
103
+ Spaceship.select_team(team_id: params[:team_id], team_name: params[:team_name])
104
104
 
105
105
  if Spaceship.client.in_house? && (type == "distribution" || type == "enterprise")
106
106
  UI.error("---")
@@ -112,7 +112,7 @@ module Match
112
112
  UI.user_error!("Enterprise account nuke cancelled") unless UI.confirm("Do you really want to nuke your Enterprise account?")
113
113
  end
114
114
 
115
- self.certs = certificate_type(cert_type).all
115
+ self.certs = certificate_type(cert_type).flat_map(&:all)
116
116
  self.profiles = []
117
117
  prov_types.each do |prov_type|
118
118
  self.profiles += profile_type(prov_type).all
@@ -241,9 +241,9 @@ module Match
241
241
  # The kind of certificate we're interested in
242
242
  def certificate_type(type)
243
243
  {
244
- distribution: Spaceship.certificate.production,
245
- development: Spaceship.certificate.development,
246
- enterprise: Spaceship.certificate.in_house
244
+ distribution: [Spaceship.certificate.production, Spaceship.certificate.apple_distribution],
245
+ development: [Spaceship.certificate.development, Spaceship.certificate.apple_development],
246
+ enterprise: [Spaceship.certificate.in_house]
247
247
  }[type] ||= raise "Unknown type '#{type}'"
248
248
  end
249
249
 
@@ -32,6 +32,12 @@ module Match
32
32
  description: "Only fetch existing certificates and profiles, don't generate new ones",
33
33
  is_string: false,
34
34
  default_value: false),
35
+ FastlaneCore::ConfigItem.new(key: :generate_apple_certs,
36
+ env_name: "MATCH_GENERATE_APPLE_CERTS",
37
+ description: "Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)",
38
+ type: Boolean,
39
+ default_value: FastlaneCore::Helper.mac? && FastlaneCore::Helper.xcode_at_least?('11'),
40
+ default_value_dynamic: true),
35
41
  FastlaneCore::ConfigItem.new(key: :skip_provisioning_profiles,
36
42
  env_name: "MATCH_SKIP_PROVISIONING_PROFILES",
37
43
  description: "Skip syncing provisioning profiles",
@@ -39,6 +39,7 @@ module Match
39
39
  clone_branch_directly: params[:clone_branch_directly],
40
40
  git_basic_authorization: params[:git_basic_authorization],
41
41
  type: params[:type].to_s,
42
+ generate_apple_certs: params[:generate_apple_certs],
42
43
  platform: params[:platform].to_s,
43
44
  google_cloud_bucket_name: params[:google_cloud_bucket_name].to_s,
44
45
  google_cloud_keys_file: params[:google_cloud_keys_file].to_s,
@@ -155,27 +155,35 @@ module Sigh
155
155
  case Sigh.config[:platform].to_s
156
156
  when 'ios', 'tvos'
157
157
  if profile_type == Spaceship.provisioning_profile.Development
158
- certificates = Spaceship.certificate.development.all
158
+ certificates = Spaceship.certificate.development.all +
159
+ Spaceship.certificate.apple_development.all
159
160
  elsif profile_type == Spaceship.provisioning_profile.InHouse
161
+ # Enterprise accounts don't have access to Apple Distribution certificates
160
162
  certificates = Spaceship.certificate.in_house.all
161
163
  # handles case where the desired certificate type is adhoc but the account is an enterprise account
162
164
  # the apple dev portal api has a weird quirk in it where if you query for distribution certificates
163
165
  # for enterprise accounts, you get nothing back even if they exist.
164
166
  elsif profile_type == Spaceship.provisioning_profile.AdHoc && Spaceship.client && Spaceship.client.in_house?
167
+ # Enterprise accounts don't have access to Apple Distribution certificates
165
168
  certificates = Spaceship.certificate.in_house.all
166
169
  else
167
- certificates = Spaceship.certificate.production.all # Ad hoc or App Store
170
+ # Ad hoc or App Store
171
+ certificates = Spaceship.certificate.production.all +
172
+ Spaceship.certificate.apple_distribution.all
168
173
  end
169
174
 
170
175
  when 'macos'
171
176
  if profile_type == Spaceship.provisioning_profile.Development
172
- certificates = Spaceship.certificate.mac_development.all
177
+ certificates = Spaceship.certificate.mac_development.all +
178
+ Spaceship.certificate.apple_development.all
173
179
  elsif profile_type == Spaceship.provisioning_profile.AppStore
174
- certificates = Spaceship.certificate.mac_app_distribution.all
180
+ certificates = Spaceship.certificate.mac_app_distribution.all +
181
+ Spaceship.certificate.apple_distribution.all
175
182
  elsif profile_type == Spaceship.provisioning_profile.Direct
176
183
  certificates = Spaceship.certificate.developer_id_application.all
177
184
  else
178
- certificates = Spaceship.certificate.mac_app_distribution.all
185
+ certificates = Spaceship.certificate.mac_app_distribution.all +
186
+ Spaceship.certificate.apple_distribution.all
179
187
  end
180
188
  end
181
189
 
@@ -190,7 +190,7 @@ module Snapshot
190
190
  hash[name] = ["No tests were executed"]
191
191
  else
192
192
  tests = Array(summary.data.first[:tests])
193
- hash[name] = tests.map { |test| Array(test[:failures]).map { |failure| failure[:failure_message] } }.flatten
193
+ hash[name] = tests.flat_map { |test| Array(test[:failures]).map { |failure| failure[:failure_message] } }
194
194
  end
195
195
  end
196
196
  end
@@ -32,7 +32,7 @@ module Spaceship
32
32
 
33
33
  def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
34
34
  resps = Spaceship::ConnectAPI.get_apps(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
35
- return resps.map(&:to_models).flatten
35
+ return resps.flat_map(&:to_models)
36
36
  end
37
37
 
38
38
  def self.find(bundle_id)
@@ -54,7 +54,7 @@ module Spaceship
54
54
  filter[:apps] = id
55
55
 
56
56
  resps = Spaceship::ConnectAPI.get_beta_testers(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
57
- return resps.map(&:to_models).flatten
57
+ return resps.flat_map(&:to_models)
58
58
  end
59
59
 
60
60
  #
@@ -66,7 +66,7 @@ module Spaceship
66
66
  filter[:app] = id
67
67
 
68
68
  resps = Spaceship::ConnectAPI.get_builds(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
69
- return resps.map(&:to_models).flatten
69
+ return resps.flat_map(&:to_models)
70
70
  end
71
71
 
72
72
  def get_build_deliveries(filter: {}, includes: nil, limit: nil, sort: nil)
@@ -74,7 +74,7 @@ module Spaceship
74
74
  filter[:app] = id
75
75
 
76
76
  resps = Spaceship::ConnectAPI.get_build_deliveries(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
77
- return resps.map(&:to_models).flatten
77
+ return resps.flat_map(&:to_models)
78
78
  end
79
79
 
80
80
  def get_beta_app_localizations(filter: {}, includes: nil, limit: nil, sort: nil)
@@ -82,7 +82,7 @@ module Spaceship
82
82
  filter[:app] = id
83
83
 
84
84
  resps = Spaceship::ConnectAPI.get_beta_app_localizations(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
85
- return resps.map(&:to_models).flatten
85
+ return resps.flat_map(&:to_models)
86
86
  end
87
87
 
88
88
  def get_beta_groups(filter: {}, includes: nil, limit: nil, sort: nil)
@@ -90,7 +90,7 @@ module Spaceship
90
90
  filter[:app] = id
91
91
 
92
92
  resps = Spaceship::ConnectAPI.get_beta_groups(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
93
- return resps.map(&:to_models).flatten
93
+ return resps.flat_map(&:to_models)
94
94
  end
95
95
  end
96
96
  end
@@ -109,7 +109,7 @@ module Spaceship
109
109
  sort: sort,
110
110
  limit: limit
111
111
  ).all_pages
112
- models = resps.map(&:to_models).flatten
112
+ models = resps.flat_map(&:to_models)
113
113
 
114
114
  # Filtering after models are fetched since there is no way to do this in a query param filter
115
115
  if platform
@@ -138,7 +138,7 @@ module Spaceship
138
138
  sort: sort,
139
139
  limit: limit
140
140
  ).all_pages
141
- return resps.map(&:to_models).flatten
141
+ return resps.flat_map(&:to_models)
142
142
  end
143
143
 
144
144
  def get_build_beta_details(filter: {}, includes: nil, limit: nil, sort: nil)
@@ -148,7 +148,7 @@ module Spaceship
148
148
  sort: sort,
149
149
  limit: limit
150
150
  ).all_pages
151
- return resps.map(&:to_models).flatten
151
+ return resps.flat_map(&:to_models)
152
152
  end
153
153
 
154
154
  def post_beta_app_review_submission
@@ -29,7 +29,7 @@ module Spaceship
29
29
  filter: { app: app_id, cfBundleShortVersionString: version, cfBundleVersion: build_number },
30
30
  limit: 1
31
31
  ).all_pages
32
- return resps.map(&:to_models).flatten
32
+ return resps.flat_map(&:to_models)
33
33
  end
34
34
  end
35
35
  end
@@ -35,7 +35,7 @@ module Spaceship
35
35
 
36
36
  def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
37
37
  resps = Spaceship::ConnectAPI.get_bundle_ids(filter: filter, includes: includes).all_pages
38
- return resps.map(&:to_models).flatten
38
+ return resps.flat_map(&:to_models)
39
39
  end
40
40
 
41
41
  def self.get(bundle_id_id: nil, includes: nil)
@@ -41,7 +41,7 @@ module Spaceship
41
41
 
42
42
  def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
43
43
  resps = Spaceship::ConnectAPI.get_certificates(filter: filter, includes: includes).all_pages
44
- return resps.map(&:to_models).flatten
44
+ return resps.flat_map(&:to_models)
45
45
  end
46
46
  end
47
47
  end
@@ -46,7 +46,7 @@ module Spaceship
46
46
 
47
47
  def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
48
48
  resps = Spaceship::ConnectAPI.get_devices(filter: filter, includes: includes).all_pages
49
- return resps.map(&:to_models).flatten
49
+ return resps.flat_map(&:to_models)
50
50
  end
51
51
  end
52
52
  end
@@ -53,7 +53,7 @@ module Spaceship
53
53
 
54
54
  def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
55
55
  resps = Spaceship::ConnectAPI.get_profiles(filter: filter, includes: includes).all_pages
56
- return resps.map(&:to_models).flatten
56
+ return resps.flat_map(&:to_models)
57
57
  end
58
58
  end
59
59
  end
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.132.0.beta.20190929200020
4
+ version: 2.132.0.beta.20190930200026
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew McBurney
@@ -27,7 +27,7 @@ authors:
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2019-09-29 00:00:00.000000000 Z
30
+ date: 2019-09-30 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: slack-notifier
@@ -1747,24 +1747,24 @@ metadata:
1747
1747
  post_install_message:
1748
1748
  rdoc_options: []
1749
1749
  require_paths:
1750
+ - frameit/lib
1750
1751
  - pilot/lib
1751
- - cert/lib
1752
- - match/lib
1753
- - fastlane/lib
1754
1752
  - produce/lib
1753
+ - sigh/lib
1755
1754
  - screengrab/lib
1756
- - fastlane_core/lib
1755
+ - fastlane/lib
1756
+ - pem/lib
1757
+ - gym/lib
1758
+ - deliver/lib
1759
+ - snapshot/lib
1757
1760
  - spaceship/lib
1761
+ - cert/lib
1758
1762
  - credentials_manager/lib
1759
- - deliver/lib
1760
1763
  - supply/lib
1764
+ - fastlane_core/lib
1761
1765
  - scan/lib
1762
- - snapshot/lib
1763
- - frameit/lib
1764
- - pem/lib
1766
+ - match/lib
1765
1767
  - precheck/lib
1766
- - sigh/lib
1767
- - gym/lib
1768
1768
  required_ruby_version: !ruby/object:Gem::Requirement
1769
1769
  requirements:
1770
1770
  - - ">="