fastlane 2.38.0.beta.20170612010035 → 2.38.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/deliver/lib/deliver/commands_generator.rb +8 -2
- data/deliver/lib/deliver/upload_assets.rb +4 -1
- data/fastlane/lib/.DS_Store +0 -0
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/gym.rb +10 -2
- data/fastlane/lib/fastlane/actions/match.rb +27 -4
- data/fastlane/lib/fastlane/actions/xcode_select.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +4 -2
- data/match/lib/match/commands_generator.rb +1 -1
- data/match/lib/match/git_helper.rb +3 -0
- data/spaceship/lib/.DS_Store +0 -0
- data/spaceship/lib/spaceship/tunes/app_version.rb +23 -0
- metadata +18 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1d4813843f6a0c883e796b89ff0cdc7db78b5393
|
|
4
|
+
data.tar.gz: 25a5db39445de2d3af5d09ed9d541362738b58e9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6772e065b7aee0118d6e6e6eb71db7b068c8b1a6c6489222715b492c132c7bdd329a30ba2ac606c3e58198774bfb3bd6eb0ae24c3b05d6b586b31ffac70a9533
|
|
7
|
+
data.tar.gz: 856a8512d48e5e280e33b5e184938622547c31e5f2925435c1433c69bdd613361119eca85b7f2e7d67f85d329aa7ec363b3a8e7c84b1164de05841a395349c09
|
|
@@ -28,6 +28,13 @@ module Deliver
|
|
|
28
28
|
return available_options
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
def self.force_overwrite_metadata?(options, path)
|
|
32
|
+
res = options[:force]
|
|
33
|
+
res ||= ENV["DELIVER_FORCE_OVERWRITE"] # for backward compatibility
|
|
34
|
+
res ||= UI.confirm("Do you want to overwrite existing metadata on path '#{File.expand_path(path)}'?") if UI.interactive?
|
|
35
|
+
res
|
|
36
|
+
end
|
|
37
|
+
|
|
31
38
|
# rubocop:disable Metrics/PerceivedComplexity
|
|
32
39
|
def run
|
|
33
40
|
program :name, 'deliver'
|
|
@@ -146,8 +153,7 @@ module Deliver
|
|
|
146
153
|
Deliver::Runner.new(options) # to login...
|
|
147
154
|
containing = FastlaneCore::Helper.fastlane_enabled? ? FastlaneCore::FastlaneFolder.path : '.'
|
|
148
155
|
path = options[:metadata_path] || File.join(containing, 'metadata')
|
|
149
|
-
res =
|
|
150
|
-
res ||= UI.confirm("Do you want to overwrite existing metadata on path '#{File.expand_path(path)}'?")
|
|
156
|
+
res = Deliver::CommandsGenerator.force_overwrite_metadata?(options, path)
|
|
151
157
|
return 0 unless res
|
|
152
158
|
|
|
153
159
|
require 'deliver/setup'
|
|
@@ -4,6 +4,7 @@ module Deliver
|
|
|
4
4
|
def upload(options)
|
|
5
5
|
return if options[:edit_live]
|
|
6
6
|
app = options[:app]
|
|
7
|
+
app_modified = false
|
|
7
8
|
|
|
8
9
|
v = app.edit_version(platform: options[:platform])
|
|
9
10
|
UI.user_error!("Could not find a version to edit for app '#{app.name}'") unless v
|
|
@@ -11,14 +12,16 @@ module Deliver
|
|
|
11
12
|
if options[:app_icon]
|
|
12
13
|
UI.message("Uploading app icon...")
|
|
13
14
|
v.upload_large_icon!(options[:app_icon])
|
|
15
|
+
app_modified = true
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
if options[:apple_watch_app_icon]
|
|
17
19
|
UI.message("Uploading apple watchapp icon...")
|
|
18
20
|
v.upload_watch_icon!(options[:apple_watch_app_icon])
|
|
21
|
+
app_modified = true
|
|
19
22
|
end
|
|
20
23
|
|
|
21
|
-
v.save!
|
|
24
|
+
v.save! if app_modified
|
|
22
25
|
end
|
|
23
26
|
end
|
|
24
27
|
end
|
|
Binary file
|
|
Binary file
|
|
@@ -12,11 +12,19 @@ module Fastlane
|
|
|
12
12
|
should_use_legacy_api = values[:use_legacy_build_api] || Gym::Xcode.pre_7?
|
|
13
13
|
|
|
14
14
|
if values[:provisioning_profile_path].to_s.length.zero? && should_use_legacy_api
|
|
15
|
-
sigh_path = Actions.lane_context[
|
|
15
|
+
sigh_path = Actions.lane_context[SharedValues::SIGH_PROFILE_PATH] || ENV["SIGH_PROFILE_PATH"]
|
|
16
16
|
values[:provisioning_profile_path] = File.expand_path(sigh_path) if sigh_path
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
values[:export_method] ||= Actions.lane_context[
|
|
19
|
+
values[:export_method] ||= Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE]
|
|
20
|
+
|
|
21
|
+
if Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING]
|
|
22
|
+
# Since Xcode 9 you need to explicitly provide the provisioning profile per app target
|
|
23
|
+
# If the user is smart and uses match and gym together with fastlane, we can do all
|
|
24
|
+
# the heavy lifting for them
|
|
25
|
+
values[:export_options] ||= {}
|
|
26
|
+
values[:export_options][:provisioningProfiles] = Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING]
|
|
27
|
+
end
|
|
20
28
|
|
|
21
29
|
absolute_ipa_path = File.expand_path(Gym::Manager.new.work(values))
|
|
22
30
|
absolute_dsym_path = absolute_ipa_path.gsub(".ipa", ".app.dSYM.zip")
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
module Fastlane
|
|
2
2
|
module Actions
|
|
3
|
+
module SharedValues
|
|
4
|
+
MATCH_PROVISIONING_PROFILE_MAPPING = :MATCH_PROVISIONING_PROFILE_MAPPING
|
|
5
|
+
end
|
|
6
|
+
|
|
3
7
|
class MatchAction < Action
|
|
4
8
|
def self.run(params)
|
|
5
9
|
require 'match'
|
|
@@ -8,19 +12,38 @@ module Fastlane
|
|
|
8
12
|
Match::Runner.new.run(params)
|
|
9
13
|
|
|
10
14
|
define_profile_type(params)
|
|
15
|
+
define_provisioning_profile_mapping(params)
|
|
11
16
|
end
|
|
12
17
|
|
|
13
|
-
def self.define_profile_type(
|
|
18
|
+
def self.define_profile_type(params)
|
|
14
19
|
profile_type = "app-store"
|
|
15
|
-
profile_type = "ad-hoc" if
|
|
16
|
-
profile_type = "development" if
|
|
17
|
-
profile_type = "enterprise" if
|
|
20
|
+
profile_type = "ad-hoc" if params[:type] == 'adhoc'
|
|
21
|
+
profile_type = "development" if params[:type] == 'development'
|
|
22
|
+
profile_type = "enterprise" if params[:type] == 'enterprise'
|
|
18
23
|
|
|
19
24
|
UI.message("Setting Provisioning Profile type to '#{profile_type}'")
|
|
20
25
|
|
|
21
26
|
Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE] = profile_type
|
|
22
27
|
end
|
|
23
28
|
|
|
29
|
+
# Maps the bundle identifier to the appropriate provisioning profile
|
|
30
|
+
# This is used in the _gym_ action as part of the export options
|
|
31
|
+
# e.g.
|
|
32
|
+
#
|
|
33
|
+
# export_options: {
|
|
34
|
+
# provisioningProfiles: { "me.themoji.app.beta": "match AppStore me.themoji.app.beta" }
|
|
35
|
+
# }
|
|
36
|
+
#
|
|
37
|
+
def self.define_provisioning_profile_mapping(params)
|
|
38
|
+
env_variable_name = Match::Utils.environment_variable_name_profile_name(app_identifier: params[:app_identifier],
|
|
39
|
+
type: Match.profile_type_sym(params[:type]),
|
|
40
|
+
platform: params[:platform])
|
|
41
|
+
|
|
42
|
+
mapping = Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING] || {}
|
|
43
|
+
mapping[params[:app_identifier]] = ENV[env_variable_name]
|
|
44
|
+
Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING] = mapping
|
|
45
|
+
end
|
|
46
|
+
|
|
24
47
|
#####################################################
|
|
25
48
|
# @!group Documentation
|
|
26
49
|
#####################################################
|
|
@@ -10,6 +10,8 @@ module Gym
|
|
|
10
10
|
# Responsible for building the fully working xcodebuild command
|
|
11
11
|
class PackageCommandGeneratorXcode7
|
|
12
12
|
class << self
|
|
13
|
+
DEFAULT_EXPORT_METHOD = "app-store"
|
|
14
|
+
|
|
13
15
|
def generate
|
|
14
16
|
print_legacy_information
|
|
15
17
|
|
|
@@ -134,14 +136,14 @@ module Gym
|
|
|
134
136
|
end
|
|
135
137
|
|
|
136
138
|
# Saves configuration for later use
|
|
137
|
-
Gym.config[:export_method] ||= hash[:method]
|
|
139
|
+
Gym.config[:export_method] ||= hash[:method] || DEFAULT_EXPORT_METHOD
|
|
138
140
|
Gym.config[:include_symbols] = hash[:uploadSymbols] if Gym.config[:include_symbols].nil?
|
|
139
141
|
Gym.config[:include_bitcode] = hash[:uploadBitcode] if Gym.config[:include_bitcode].nil?
|
|
140
142
|
Gym.config[:export_team_id] ||= hash[:teamID]
|
|
141
143
|
else
|
|
142
144
|
hash = {}
|
|
143
145
|
# Sets default values
|
|
144
|
-
Gym.config[:export_method] ||=
|
|
146
|
+
Gym.config[:export_method] ||= DEFAULT_EXPORT_METHOD
|
|
145
147
|
Gym.config[:include_symbols] = true if Gym.config[:include_symbols].nil?
|
|
146
148
|
Gym.config[:include_bitcode] = false if Gym.config[:include_bitcode].nil?
|
|
147
149
|
end
|
|
@@ -109,7 +109,7 @@ module Match
|
|
|
109
109
|
c.syntax = "fastlane match nuke"
|
|
110
110
|
c.description = "Delete all certificates and provisioning profiles from the Apple Dev Portal"
|
|
111
111
|
c.action do |args, options|
|
|
112
|
-
FastlaneCore::UI.user_error!("Please run `fastlane match nuke [type], allowed values: distribution
|
|
112
|
+
FastlaneCore::UI.user_error!("Please run `fastlane match nuke [type], allowed values: distribution and development. For the 'adhoc' type, please use 'distribution' instead.")
|
|
113
113
|
end
|
|
114
114
|
end
|
|
115
115
|
|
|
@@ -38,6 +38,9 @@ module Match
|
|
|
38
38
|
print_command: FastlaneCore::Globals.verbose?)
|
|
39
39
|
rescue
|
|
40
40
|
UI.error("Error cloning certificates repo, please make sure you have read access to the repository you want to use")
|
|
41
|
+
if branch && clone_branch_directly
|
|
42
|
+
UI.error("You passed '#{branch}' as branch in combination with the `clone_branch_directly` flag. Please remove `clone_branch_directly` flag on the first run for _match_ to create the branch.")
|
|
43
|
+
end
|
|
41
44
|
UI.error("Run the following command manually to make sure you're properly authenticated:")
|
|
42
45
|
UI.command(command)
|
|
43
46
|
UI.user_error!("Error cloning certificates git repo, please make sure you have access to the repository - see instructions above")
|
|
Binary file
|
|
@@ -173,6 +173,28 @@ module Spaceship
|
|
|
173
173
|
# @return (Hash) Represents the trailers of this app version (read-only)
|
|
174
174
|
attr_reader :trailers
|
|
175
175
|
|
|
176
|
+
# @return (Hash) Represents the phased_release hash (read-only)
|
|
177
|
+
# For now, please use the `toggle_phased_release` method and call `.save!`
|
|
178
|
+
# as the API will probably change in the future
|
|
179
|
+
attr_reader :phased_release
|
|
180
|
+
|
|
181
|
+
# Currently phased_release doesn't seem to have all the features enabled
|
|
182
|
+
#
|
|
183
|
+
# => {"state"=>{"value"=>"NOT_STARTED", "isEditable"=>true, "isRequired"=>false, "errorKeys"=>nil},
|
|
184
|
+
# "startDate"=>nil,
|
|
185
|
+
# "lastPaused"=>nil,
|
|
186
|
+
# "pausedDuration"=>nil,
|
|
187
|
+
# "totalPauseDays"=>30,
|
|
188
|
+
# "currentDayNumber"=>nil,
|
|
189
|
+
# "dayPercentageMap"=>{"1"=>1, "2"=>2, "3"=>5, "4"=>10, "5"=>20, "6"=>50, "7"=>100},
|
|
190
|
+
# "isEnabled"=>true}
|
|
191
|
+
#
|
|
192
|
+
def toggle_phased_release(enabled: false)
|
|
193
|
+
state = (enabled ? "INACTIVE" : "NOT_STARTED")
|
|
194
|
+
|
|
195
|
+
self.phased_release["state"]["value"] = state
|
|
196
|
+
end
|
|
197
|
+
|
|
176
198
|
attr_mapping({
|
|
177
199
|
'appType' => :app_type,
|
|
178
200
|
'platform' => :platform,
|
|
@@ -191,6 +213,7 @@ module Spaceship
|
|
|
191
213
|
'supportsAppleWatch' => :supports_apple_watch,
|
|
192
214
|
'versionId' => :version_id,
|
|
193
215
|
'version.value' => :version,
|
|
216
|
+
'phasedRelease' => :phased_release,
|
|
194
217
|
|
|
195
218
|
# GeoJson
|
|
196
219
|
# 'transitAppFile.value' => :transit_app_file
|
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.38.0
|
|
4
|
+
version: 2.38.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Felix Krause
|
|
@@ -802,6 +802,7 @@ files:
|
|
|
802
802
|
- deliver/lib/deliver/upload_price_tier.rb
|
|
803
803
|
- deliver/lib/deliver/upload_screenshots.rb
|
|
804
804
|
- fastlane/README.md
|
|
805
|
+
- fastlane/lib/.DS_Store
|
|
805
806
|
- fastlane/lib/assets/Actions.md.erb
|
|
806
807
|
- fastlane/lib/assets/AppfileTemplate
|
|
807
808
|
- fastlane/lib/assets/AppfileTemplateAndroid
|
|
@@ -818,6 +819,7 @@ files:
|
|
|
818
819
|
- fastlane/lib/assets/s3_plist_template.erb
|
|
819
820
|
- fastlane/lib/assets/s3_version_template.erb
|
|
820
821
|
- fastlane/lib/fastlane.rb
|
|
822
|
+
- fastlane/lib/fastlane/.DS_Store
|
|
821
823
|
- fastlane/lib/fastlane/action.rb
|
|
822
824
|
- fastlane/lib/fastlane/action_collector.rb
|
|
823
825
|
- fastlane/lib/fastlane/actions/README.md
|
|
@@ -1264,6 +1266,7 @@ files:
|
|
|
1264
1266
|
- snapshot/lib/snapshot/test_command_generator.rb
|
|
1265
1267
|
- snapshot/lib/snapshot/update.rb
|
|
1266
1268
|
- spaceship/README.md
|
|
1269
|
+
- spaceship/lib/.DS_Store
|
|
1267
1270
|
- spaceship/lib/assets/languageMapping.json
|
|
1268
1271
|
- spaceship/lib/assets/languageMappingReadable.json
|
|
1269
1272
|
- spaceship/lib/spaceship.rb
|
|
@@ -1369,22 +1372,22 @@ post_install_message:
|
|
|
1369
1372
|
rdoc_options: []
|
|
1370
1373
|
require_paths:
|
|
1371
1374
|
- cert/lib
|
|
1372
|
-
-
|
|
1373
|
-
-
|
|
1374
|
-
- snapshot/lib
|
|
1375
|
-
- scan/lib
|
|
1376
|
-
- spaceship/lib
|
|
1375
|
+
- credentials_manager/lib
|
|
1376
|
+
- deliver/lib
|
|
1377
1377
|
- fastlane/lib
|
|
1378
|
-
-
|
|
1378
|
+
- fastlane_core/lib
|
|
1379
|
+
- frameit/lib
|
|
1379
1380
|
- gym/lib
|
|
1380
1381
|
- match/lib
|
|
1381
1382
|
- pem/lib
|
|
1383
|
+
- pilot/lib
|
|
1382
1384
|
- produce/lib
|
|
1383
|
-
-
|
|
1384
|
-
- deliver/lib
|
|
1385
|
-
- fastlane_core/lib
|
|
1386
|
-
- frameit/lib
|
|
1385
|
+
- scan/lib
|
|
1387
1386
|
- screengrab/lib
|
|
1387
|
+
- sigh/lib
|
|
1388
|
+
- snapshot/lib
|
|
1389
|
+
- spaceship/lib
|
|
1390
|
+
- supply/lib
|
|
1388
1391
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
1389
1392
|
requirements:
|
|
1390
1393
|
- - ">="
|
|
@@ -1392,14 +1395,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1392
1395
|
version: 2.0.0
|
|
1393
1396
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1394
1397
|
requirements:
|
|
1395
|
-
- - "
|
|
1398
|
+
- - ">="
|
|
1396
1399
|
- !ruby/object:Gem::Version
|
|
1397
|
-
version:
|
|
1400
|
+
version: '0'
|
|
1398
1401
|
requirements: []
|
|
1399
1402
|
rubyforge_project:
|
|
1400
|
-
rubygems_version: 2.
|
|
1403
|
+
rubygems_version: 2.6.10
|
|
1401
1404
|
signing_key:
|
|
1402
1405
|
specification_version: 4
|
|
1403
1406
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
|
1404
1407
|
Android apps
|
|
1405
1408
|
test_files: []
|
|
1409
|
+
has_rdoc:
|