fastlane 2.44.0.beta.20170630010021 → 2.44.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/options.rb +1 -1
- data/fastlane/lib/fastlane/actions/hockey.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/fastlane_core/lib/fastlane_core/project.rb +1 -1
- data/gym/README.md +14 -0
- data/gym/lib/gym/detect_values.rb +75 -0
- data/gym/lib/gym/error_handler.rb +4 -0
- metadata +17 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32e5c6e2bb77ee5eb7fc4c7ed5e21ea5a1989486
|
4
|
+
data.tar.gz: e2d209799b8b192c7acd63935457294431c0d64f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42095a29dd7a3b33474a72b5a68ff810f5110fcb066163f497575a55146c8f127d3eeea27075bf18aa7b28b160637db083ac4bbfdc92d61a96dc68cbe4cf2ea5
|
7
|
+
data.tar.gz: 694821c94a136fe86c1b54250a3aa4f017aea199bd82d586c48194f9de9039ba17bc3abbc5acc2a211af1bdd0744b1c7c752c5240085a055f235a9fda56d3b4f
|
@@ -112,7 +112,7 @@ module Deliver
|
|
112
112
|
is_string: false,
|
113
113
|
default_value: false),
|
114
114
|
FastlaneCore::ConfigItem.new(key: :phased_release,
|
115
|
-
description: "Enable
|
115
|
+
description: "Enable the phased release feature of iTC",
|
116
116
|
optional: true,
|
117
117
|
is_string: false,
|
118
118
|
default_value: nil),
|
@@ -189,7 +189,7 @@ module Fastlane
|
|
189
189
|
def self.download_url(body)
|
190
190
|
version_url = body['public_url']
|
191
191
|
version_url = body['public_url'] + '/app_versions/' + body['config_url'].split('/').last if body['config_url']
|
192
|
-
version_url = body['public_url'] + '/app_versions/' +
|
192
|
+
version_url = body['public_url'] + '/app_versions/' + body['version'] if body['version']
|
193
193
|
version_url
|
194
194
|
end
|
195
195
|
|
@@ -213,7 +213,7 @@ module FastlaneCore
|
|
213
213
|
keychain_path
|
214
214
|
end
|
215
215
|
|
216
|
-
# @return true if
|
216
|
+
# @return true if Xcode version is higher than 8.3
|
217
217
|
def self.xcode_at_least?(version)
|
218
218
|
FastlaneCore::UI.user_error!("Unable to locate Xcode. Please make sure to have Xcode installed on your machine") if xcode_version.nil?
|
219
219
|
v = xcode_version
|
@@ -292,7 +292,7 @@ module FastlaneCore
|
|
292
292
|
end
|
293
293
|
|
294
294
|
# Get the build settings for our project
|
295
|
-
#
|
295
|
+
# e.g. to properly get the DerivedData folder
|
296
296
|
# @param [String] The key of which we want the value for (e.g. "PRODUCT_NAME")
|
297
297
|
def build_settings(key: nil, optional: true)
|
298
298
|
unless @build_settings
|
data/gym/README.md
CHANGED
@@ -175,6 +175,20 @@ export_options(
|
|
175
175
|
)
|
176
176
|
```
|
177
177
|
|
178
|
+
Optional: If _gym_ can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles:
|
179
|
+
|
180
|
+
```ruby
|
181
|
+
export_options(
|
182
|
+
method: "app-store",
|
183
|
+
provisioningProfiles: {
|
184
|
+
"com.example.bundleid": "Provisioning Profile Name",
|
185
|
+
"com.example.bundleid2": "Provisioning Profile Name 2",
|
186
|
+
}
|
187
|
+
)
|
188
|
+
```
|
189
|
+
|
190
|
+
**Note**: If you use [fastlane](https://fastlane.tools) with [match](https://fastlane.tools/match) you don't need to provide those values manually.
|
191
|
+
|
178
192
|
For the list of available options run `xcodebuild -help`.
|
179
193
|
|
180
194
|
## Setup code signing
|
@@ -14,6 +14,8 @@ module Gym
|
|
14
14
|
FastlaneCore::Project.detect_projects(config)
|
15
15
|
Gym.project = FastlaneCore::Project.new(config)
|
16
16
|
|
17
|
+
detect_selected_provisioning_profiles
|
18
|
+
|
17
19
|
# Go into the project's folder, as there might be a Gymfile there
|
18
20
|
Dir.chdir(File.expand_path("..", Gym.project.path)) do
|
19
21
|
config.load_configuration_file(Gym.gymfile_name)
|
@@ -54,6 +56,79 @@ module Gym
|
|
54
56
|
CFPropertyList.native_types(CFPropertyList::List.new(file: path).value)
|
55
57
|
end
|
56
58
|
|
59
|
+
# Since Xcode 9 you need to provide the explicit mapping of what provisioning profile to use for
|
60
|
+
# each target of your app
|
61
|
+
# rubocop:disable Style/MultilineBlockChain
|
62
|
+
def self.detect_selected_provisioning_profiles
|
63
|
+
return if Gym.config[:export_options] && Gym.config[:export_options][:provisioningProfiles]
|
64
|
+
|
65
|
+
require 'xcodeproj'
|
66
|
+
|
67
|
+
provisioning_profile_mapping = {}
|
68
|
+
|
69
|
+
# Find the xcodeproj file, as the information isn't included in the workspace file
|
70
|
+
if Gym.project.workspace?
|
71
|
+
# We have a reference to the workspace, let's find the xcodeproj file
|
72
|
+
# For some reason the `plist` gem can't parse the content file
|
73
|
+
# so we'll use a regex to find all group references
|
74
|
+
|
75
|
+
workspace_data_path = File.join(Gym.project.path, "contents.xcworkspacedata")
|
76
|
+
workspace_data = File.read(workspace_data_path)
|
77
|
+
project_paths = workspace_data.scan(/\"group:(.*)\"/).collect do |current_match|
|
78
|
+
# It's a relative path from the workspace file
|
79
|
+
File.join(File.expand_path("..", Gym.project.path), current_match.first)
|
80
|
+
end.find_all do |current_match|
|
81
|
+
!current_match.end_with?("Pods/Pods.xcodeproj")
|
82
|
+
end
|
83
|
+
else
|
84
|
+
project_paths = [Gym.project.path]
|
85
|
+
end
|
86
|
+
|
87
|
+
# Because there might be multiple projects inside a workspace
|
88
|
+
# we iterate over all of them (except for CocoaPods)
|
89
|
+
project_paths.each do |project_path|
|
90
|
+
UI.verbose("Parsing project file '#{project_path}' to find selected provisioning profiles")
|
91
|
+
begin
|
92
|
+
project = Xcodeproj::Project.open(project_path)
|
93
|
+
project.targets.each do |target|
|
94
|
+
target.build_configuration_list.build_configurations.each do |build_configuration|
|
95
|
+
current = build_configuration.build_settings
|
96
|
+
|
97
|
+
bundle_identifier = current["PRODUCT_BUNDLE_IDENTIFIER"]
|
98
|
+
provisioning_profile_specifier = current["PROVISIONING_PROFILE_SPECIFIER"]
|
99
|
+
next if provisioning_profile_specifier.to_s.length == 0
|
100
|
+
|
101
|
+
provisioning_profile_mapping[bundle_identifier] = provisioning_profile_specifier
|
102
|
+
end
|
103
|
+
end
|
104
|
+
rescue => ex
|
105
|
+
# We catch errors here, as we might run into an exception on one included project
|
106
|
+
# But maybe the next project actually contains the information we need
|
107
|
+
if Helper.xcode_at_least?("9.0")
|
108
|
+
UI.error(ex)
|
109
|
+
UI.verbose(ex.backtrace.join("\n"))
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
return if provisioning_profile_mapping.count == 0
|
115
|
+
|
116
|
+
Gym.config[:export_options] ||= {}
|
117
|
+
Gym.config[:export_options][:provisioningProfiles] = provisioning_profile_mapping
|
118
|
+
UI.message("Detected provisioning profile mapping: #{provisioning_profile_mapping}")
|
119
|
+
rescue => ex
|
120
|
+
# We don't want to fail the build if the automatic detection doesn't work
|
121
|
+
# especially since the mapping is optional for pre Xcode 9 setups
|
122
|
+
if Helper.xcode_at_least?("9.0")
|
123
|
+
UI.error("Couldn't automatically detect the provisioning profile mapping")
|
124
|
+
UI.error("Since Xcode 9 you need to provide an explicit mapping of what")
|
125
|
+
UI.error("provisioning profile to use for each target of your app")
|
126
|
+
UI.error(ex)
|
127
|
+
UI.verbose(ex.backtrace.join("\n"))
|
128
|
+
end
|
129
|
+
end
|
130
|
+
# rubocop:enable Style/MultilineBlockChain
|
131
|
+
|
57
132
|
def self.detect_scheme
|
58
133
|
Gym.project.select_scheme
|
59
134
|
end
|
@@ -79,6 +79,10 @@ module Gym
|
|
79
79
|
print "This means, the specified provisioning profile was not created using"
|
80
80
|
print "the specified certificate."
|
81
81
|
print "Run cert and sigh before gym to make sure to have all signing resources ready"
|
82
|
+
when /requires a provisioning profile/
|
83
|
+
print "No provisioning profile provided"
|
84
|
+
print "Make sure to pass a valid provisioning for each required target"
|
85
|
+
print "Check out the docs on how to fix this: https://github.com/fastlane/fastlane/tree/master/gym#export-options"
|
82
86
|
# insert more specific code signing errors here
|
83
87
|
when /Codesign check fails/
|
84
88
|
print "A general code signing error occurred. Make sure you passed a valid"
|
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.44.0
|
4
|
+
version: 2.44.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -1395,24 +1395,24 @@ metadata:
|
|
1395
1395
|
post_install_message:
|
1396
1396
|
rdoc_options: []
|
1397
1397
|
require_paths:
|
1398
|
-
- fastlane_core/lib
|
1399
|
-
- screengrab/lib
|
1400
|
-
- frameit/lib
|
1401
|
-
- scan/lib
|
1402
1398
|
- cert/lib
|
1399
|
+
- credentials_manager/lib
|
1400
|
+
- deliver/lib
|
1403
1401
|
- fastlane/lib
|
1404
|
-
-
|
1402
|
+
- fastlane_core/lib
|
1403
|
+
- frameit/lib
|
1405
1404
|
- gym/lib
|
1406
|
-
-
|
1407
|
-
- produce/lib
|
1405
|
+
- match/lib
|
1408
1406
|
- pem/lib
|
1409
|
-
- spaceship/lib
|
1410
|
-
- deliver/lib
|
1411
|
-
- precheck/lib
|
1412
|
-
- supply/lib
|
1413
|
-
- credentials_manager/lib
|
1414
1407
|
- pilot/lib
|
1408
|
+
- precheck/lib
|
1409
|
+
- produce/lib
|
1410
|
+
- scan/lib
|
1411
|
+
- screengrab/lib
|
1415
1412
|
- sigh/lib
|
1413
|
+
- snapshot/lib
|
1414
|
+
- spaceship/lib
|
1415
|
+
- supply/lib
|
1416
1416
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1417
1417
|
requirements:
|
1418
1418
|
- - ">="
|
@@ -1420,14 +1420,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1420
1420
|
version: 2.0.0
|
1421
1421
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1422
1422
|
requirements:
|
1423
|
-
- - "
|
1423
|
+
- - ">="
|
1424
1424
|
- !ruby/object:Gem::Version
|
1425
|
-
version:
|
1425
|
+
version: '0'
|
1426
1426
|
requirements: []
|
1427
1427
|
rubyforge_project:
|
1428
|
-
rubygems_version: 2.
|
1428
|
+
rubygems_version: 2.6.8
|
1429
1429
|
signing_key:
|
1430
1430
|
specification_version: 4
|
1431
1431
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
1432
1432
|
Android apps
|
1433
1433
|
test_files: []
|
1434
|
+
has_rdoc:
|