fastlane 2.13.0 → 2.14.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/credentials_manager/lib/credentials_manager.rb +1 -1
- data/fastlane/lib/fastlane/actions/ipa.rb +2 -1
- data/fastlane/lib/fastlane/actions/mailgun.rb +15 -2
- data/fastlane/lib/fastlane/actions/scan.rb +14 -0
- data/fastlane/lib/fastlane/documentation/docs_generator.rb +24 -1
- data/fastlane/lib/fastlane/environment_printer.rb +2 -1
- data/fastlane/lib/fastlane/fast_file.rb +4 -4
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core.rb +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +44 -2
- data/fastlane_core/lib/fastlane_core/device_manager.rb +15 -0
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ui/disable_colors.rb +4 -4
- data/frameit/lib/frameit/config_parser.rb +8 -13
- data/frameit/lib/frameit/editor.rb +3 -2
- data/gym/lib/gym/options.rb +4 -2
- data/match/README.md +2 -2
- data/match/lib/match.rb +5 -19
- data/match/lib/match/generator.rb +8 -1
- data/match/lib/match/git_helper.rb +3 -1
- data/match/lib/match/nuke.rb +18 -14
- data/match/lib/match/options.rb +13 -2
- data/match/lib/match/runner.rb +20 -8
- data/match/lib/match/table_printer.rb +5 -4
- data/match/lib/match/utils.rb +12 -8
- data/scan/lib/scan/options.rb +24 -1
- data/scan/lib/scan/runner.rb +12 -11
- data/scan/lib/scan/test_command_generator.rb +10 -2
- data/sigh/lib/sigh/download_all.rb +1 -1
- data/sigh/lib/sigh/runner.rb +2 -2
- data/snapshot/lib/snapshot/options.rb +2 -1
- data/snapshot/lib/snapshot/runner.rb +12 -12
- data/spaceship/lib/spaceship.rb +1 -0
- data/spaceship/lib/spaceship/base.rb +27 -4
- data/spaceship/lib/spaceship/client.rb +3 -2
- data/spaceship/lib/spaceship/du/du_client.rb +26 -16
- data/spaceship/lib/spaceship/portal/app.rb +1 -1
- data/spaceship/lib/spaceship/portal/person.rb +53 -0
- data/spaceship/lib/spaceship/portal/persons.rb +49 -0
- data/spaceship/lib/spaceship/portal/portal.rb +2 -0
- data/spaceship/lib/spaceship/portal/portal_client.rb +69 -10
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +29 -1
- data/spaceship/lib/spaceship/tunes/application.rb +11 -1
- data/spaceship/lib/spaceship/tunes/iap.rb +113 -0
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +185 -0
- data/spaceship/lib/spaceship/tunes/iap_families.rb +62 -0
- data/spaceship/lib/spaceship/tunes/iap_family_details.rb +59 -0
- data/spaceship/lib/spaceship/tunes/iap_family_list.rb +33 -0
- data/spaceship/lib/spaceship/tunes/iap_list.rb +72 -0
- data/spaceship/lib/spaceship/tunes/iap_status.rb +48 -0
- data/spaceship/lib/spaceship/tunes/iap_type.rb +45 -0
- data/spaceship/lib/spaceship/tunes/tunes.rb +1 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +163 -1
- metadata +21 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 070a2e3ea852f83722a3a732f385c6d998b4a91f
|
4
|
+
data.tar.gz: 6b4a9022927123cece1c49d6a1b691c61ed37f3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adf527daf42b09341b84cba7ccd8029de0ffe3303946cce19c89ed6822400dc94223d527fcadad63a75a892351c145d73c1191683f1b12b9ce282841edc8c0a9
|
7
|
+
data.tar.gz: 268b99f8538e136d11764042be7d43ecda6f2caffee580413cc25e813ab0ef4fc3abed4f00bc61abb54605a17e6b1b1da77d033e4d1e9ef18215f217e21e97e1
|
@@ -187,7 +187,8 @@ module Fastlane
|
|
187
187
|
FastlaneCore::ConfigItem.new(key: :xcargs,
|
188
188
|
env_name: "IPA_XCARGS",
|
189
189
|
description: "Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args",
|
190
|
-
optional: true
|
190
|
+
optional: true,
|
191
|
+
type: :shell_string)
|
191
192
|
]
|
192
193
|
end
|
193
194
|
|
@@ -86,7 +86,12 @@ module Fastlane
|
|
86
86
|
env_name: "MAILGUN_REPLY_TO",
|
87
87
|
description: "Mail Reply to",
|
88
88
|
optional: true,
|
89
|
-
is_string: true)
|
89
|
+
is_string: true),
|
90
|
+
FastlaneCore::ConfigItem.new(key: :attachment,
|
91
|
+
env_name: "MAILGUN_ATTACHMENT",
|
92
|
+
description: "Mail Attachment filenames, either an array or just one string",
|
93
|
+
optional: true,
|
94
|
+
is_string: false)
|
90
95
|
|
91
96
|
]
|
92
97
|
end
|
@@ -114,6 +119,13 @@ module Fastlane
|
|
114
119
|
unless options[:reply_to].nil?
|
115
120
|
params.store(:"h:Reply-To", options[:reply_to])
|
116
121
|
end
|
122
|
+
|
123
|
+
unless options[:attachment].nil?
|
124
|
+
attachment_filenames = [*options[:attachment]]
|
125
|
+
attachments = attachment_filenames.map { |filename| File.new(filename, 'rb') }
|
126
|
+
params.store(:attachment, attachments)
|
127
|
+
end
|
128
|
+
|
117
129
|
RestClient.post "https://api:#{options[:apikey]}@api.mailgun.net/v3/#{sandbox_domain}/messages", params
|
118
130
|
mail_template(options)
|
119
131
|
end
|
@@ -158,7 +170,8 @@ module Fastlane
|
|
158
170
|
message: "Mail Body",
|
159
171
|
app_link: "http://www.myapplink.com",
|
160
172
|
ci_build_link: "http://www.mycibuildlink.com",
|
161
|
-
template_path: "HTML_TEMPLATE_PATH"
|
173
|
+
template_path: "HTML_TEMPLATE_PATH",
|
174
|
+
attachment: "dirname/filename.ext"
|
162
175
|
)'
|
163
176
|
]
|
164
177
|
end
|
@@ -77,6 +77,20 @@ module Fastlane
|
|
77
77
|
workspace: "App.xcworkspace",
|
78
78
|
scheme: "MyTests",
|
79
79
|
clean: false
|
80
|
+
)',
|
81
|
+
'#Build For Testing
|
82
|
+
scan(
|
83
|
+
derived_data_path: "my_folder",
|
84
|
+
build_for_testing: true
|
85
|
+
)',
|
86
|
+
'# run tests using derived data from prev. build
|
87
|
+
scan(
|
88
|
+
derived_data_path: "my_folder",
|
89
|
+
test_without_building: true
|
90
|
+
)',
|
91
|
+
'# or run it from an existing xctestrun package
|
92
|
+
scan(
|
93
|
+
xctestrun: "/path/to/mytests.xctestrun"
|
80
94
|
)'
|
81
95
|
]
|
82
96
|
end
|
@@ -7,9 +7,32 @@ module Fastlane
|
|
7
7
|
output << "================"
|
8
8
|
|
9
9
|
output << "# Installation"
|
10
|
+
output << ""
|
11
|
+
output << "Make sure you have the latest version of the Xcode command line tools installed:"
|
12
|
+
output << ""
|
10
13
|
output << "```"
|
11
|
-
output << "
|
14
|
+
output << "xcode-select --install"
|
12
15
|
output << "```"
|
16
|
+
output << ""
|
17
|
+
output << "## Choose your installation method:"
|
18
|
+
output << ""
|
19
|
+
output << "<table width=\"100%\" >"
|
20
|
+
output << "<tr>"
|
21
|
+
output << "<th width=\"33%\"><a href=\"http://brew.sh\">Homebrew</a></td>"
|
22
|
+
output << "<th width=\"33%\">Installer Script</td>"
|
23
|
+
output << "<th width=\"33%\">Rubygems</td>"
|
24
|
+
output << "</tr>"
|
25
|
+
output << "<tr>"
|
26
|
+
output << "<td width=\"33%\" align=\"center\">macOS</td>"
|
27
|
+
output << "<td width=\"33%\" align=\"center\">macOS</td>"
|
28
|
+
output << "<td width=\"33%\" align=\"center\">macOS or Linux with Ruby 2.0.0 or above</td>"
|
29
|
+
output << "</tr>"
|
30
|
+
output << "<tr>"
|
31
|
+
output << "<td width=\"33%\"><code>brew cask install fastlane</code></td>"
|
32
|
+
output << "<td width=\"33%\"><a href=\"https://download.fastlane.tools/fastlane.zip\">Download the zip file</a>. Then double click on the <code>install</code> script (or run it in a terminal window).</td>"
|
33
|
+
output << "<td width=\"33%\"><code>sudo gem install fastlane -NV</code></td>"
|
34
|
+
output << "</tr>"
|
35
|
+
output << "</table>"
|
13
36
|
|
14
37
|
output << "# Available Actions"
|
15
38
|
|
@@ -217,7 +217,8 @@ module Fastlane
|
|
217
217
|
"Host" => "#{product} #{version} (#{build})",
|
218
218
|
"Ruby Lib Dir" => anonymized_path(RbConfig::CONFIG['libdir']),
|
219
219
|
"OpenSSL Version" => OpenSSL::OPENSSL_VERSION,
|
220
|
-
"Is contained" => Helper.contained_fastlane?.to_s
|
220
|
+
"Is contained" => Helper.contained_fastlane?.to_s,
|
221
|
+
"Is homebrew" => Helper.homebrew?.to_s
|
221
222
|
}
|
222
223
|
|
223
224
|
if Helper.mac?
|
@@ -206,12 +206,12 @@ module Fastlane
|
|
206
206
|
|
207
207
|
UI.user_error!("Could not find Fastfile at path '#{path}'") unless File.exist?(path)
|
208
208
|
|
209
|
-
|
210
|
-
parse(File.read(path), path)
|
211
|
-
|
212
|
-
# Check if we can also import local actions which are in the same directory as the Fastfile
|
209
|
+
# First check if there are local actions to import in the same directory as the Fastfile
|
213
210
|
actions_path = File.join(File.expand_path("..", path), 'actions')
|
214
211
|
Fastlane::Actions.load_external_actions(actions_path) if File.directory?(actions_path)
|
212
|
+
|
213
|
+
collector.did_launch_action(:import)
|
214
|
+
parse(File.read(path), path)
|
215
215
|
end
|
216
216
|
|
217
217
|
# @param url [String] The git URL to clone the repository from
|
@@ -1,6 +1,43 @@
|
|
1
1
|
module FastlaneCore
|
2
2
|
class ConfigItem
|
3
|
-
|
3
|
+
# [Symbol] the key which is used as command paramters or key in the fastlane tools
|
4
|
+
attr_accessor :key
|
5
|
+
|
6
|
+
# [String] the name of the environment variable, which is only used if no other values were found
|
7
|
+
attr_accessor :env_name
|
8
|
+
|
9
|
+
# [String] A description shown to the user
|
10
|
+
attr_accessor :description
|
11
|
+
|
12
|
+
# [String] A string of length 1 which is used for the command parameters (e.g. -f)
|
13
|
+
attr_accessor :short_option
|
14
|
+
|
15
|
+
# the value which is used if there was no given values and no environment values
|
16
|
+
attr_accessor :default_value
|
17
|
+
|
18
|
+
# An optional block which is called when a new value is set.
|
19
|
+
# Check value is valid. This could be type checks or if a folder/file exists
|
20
|
+
# You have to raise a specific exception if something goes wrong. Append .red after the string
|
21
|
+
attr_accessor :verify_block
|
22
|
+
|
23
|
+
# [Boolean] is false by default. If set to true, also string values will not be asked to the user
|
24
|
+
attr_accessor :optional
|
25
|
+
|
26
|
+
# [Array] array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
|
27
|
+
attr_accessor :conflicting_options
|
28
|
+
|
29
|
+
# An optional block which is called when options conflict happens
|
30
|
+
attr_accessor :conflict_block
|
31
|
+
|
32
|
+
# [String] Set if the option is deprecated. A deprecated option should be optional and is made optional if the parameter isn't set, and fails otherwise
|
33
|
+
attr_accessor :deprecated
|
34
|
+
|
35
|
+
# [Boolean] Set if the variable is sensitive, such as a password or API token, to prevent echoing when prompted for the parameter
|
36
|
+
attr_accessor :sensitive
|
37
|
+
|
38
|
+
# [Boolean] Set if the variable is to be converted to a shell-escaped String when provided as a Hash or Array
|
39
|
+
# Allows items expected to be strings used in shell arguments to be alternatively provided as a Hash or Array for better readability and auto-escaped for us.
|
40
|
+
attr_accessor :allow_shell_conversion
|
4
41
|
|
5
42
|
# Creates a new option
|
6
43
|
# @param key (Symbol) the key which is used as command paramters or key in the fastlane tools
|
@@ -12,7 +49,7 @@ module FastlaneCore
|
|
12
49
|
# Check value is valid. This could be type checks or if a folder/file exists
|
13
50
|
# You have to raise a specific exception if something goes wrong. Append .red after the string
|
14
51
|
# @param is_string *DEPRECATED: Use `type` instead* (Boolean) is that parameter a string? Defaults to true. If it's true, the type string will be verified.
|
15
|
-
# @param type (Class) the data type of this config item. Takes precedence over `is_string`
|
52
|
+
# @param type (Class) the data type of this config item. Takes precedence over `is_string`. Use `:shell_string` to allow types `String`, `Hash` and `Array` that will be converted to shell-escaped strings
|
16
53
|
# @param optional (Boolean) is false by default. If set to true, also string values will not be asked to the user
|
17
54
|
# @param conflicting_options ([]) array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
|
18
55
|
# @param conflict_block an optional block which is called when options conflict happens
|
@@ -53,11 +90,13 @@ module FastlaneCore
|
|
53
90
|
@verify_block = verify_block
|
54
91
|
@is_string = is_string
|
55
92
|
@data_type = type
|
93
|
+
@data_type = String if type == :shell_string
|
56
94
|
@optional = optional
|
57
95
|
@conflicting_options = conflicting_options
|
58
96
|
@conflict_block = conflict_block
|
59
97
|
@deprecated = deprecated
|
60
98
|
@sensitive = sensitive
|
99
|
+
@allow_shell_conversion = (type == :shell_string)
|
61
100
|
end
|
62
101
|
|
63
102
|
# This will raise an exception if the value is not valid
|
@@ -99,6 +138,9 @@ module FastlaneCore
|
|
99
138
|
return value.to_i if value.to_i.to_s == value.to_s
|
100
139
|
elsif data_type == Float
|
101
140
|
return value.to_f if value.to_f.to_s == value.to_s
|
141
|
+
elsif data_type == String && allow_shell_conversion
|
142
|
+
return value.map(&:to_s).map(&:shellescape).join(' ') if value.kind_of?(Array)
|
143
|
+
return value.map { |k, v| "#{k.to_s.shellescape}=#{v.shellescape}" }.join(' ') if value.kind_of?(Hash)
|
102
144
|
else
|
103
145
|
# Special treatment if the user specified true, false or YES, NO
|
104
146
|
# There is no boolean type, so we just do it here
|
@@ -194,6 +194,21 @@ module FastlaneCore
|
|
194
194
|
all.each(&:reset)
|
195
195
|
end
|
196
196
|
|
197
|
+
def copy_logarchive(device, dest)
|
198
|
+
sim_resource_dir = FastlaneCore::CommandExecutor.execute(command: "xcrun simctl getenv #{device.udid} SIMULATOR_SHARED_RESOURCES_DIRECTORY 2>/dev/null", print_all: false, print_command: true)
|
199
|
+
logarchive_src = File.join(sim_resource_dir, "system_logs.logarchive")
|
200
|
+
|
201
|
+
# if logarchive already exists it fails as the .logarchive is a directory, so delete it. to be sure its gone
|
202
|
+
FileUtils.rm_rf(logarchive_src)
|
203
|
+
FileUtils.rm_rf(dest)
|
204
|
+
|
205
|
+
command = "xcrun simctl spawn #{device.udid} log collect 2>/dev/null"
|
206
|
+
FastlaneCore::CommandExecutor.execute(command: command, print_all: false, print_command: true)
|
207
|
+
|
208
|
+
FileUtils.cp_r(logarchive_src, dest)
|
209
|
+
UI.success "Copying file '#{logarchive_src}' to '#{dest}'..."
|
210
|
+
end
|
211
|
+
|
197
212
|
def reset_all_by_version(os_version: nil)
|
198
213
|
return false unless os_version
|
199
214
|
all.select { |device| device.os_version == os_version }.each(&:reset)
|
@@ -1,15 +1,15 @@
|
|
1
1
|
# This code overwrites the methods from the colored gem
|
2
|
-
# via https://github.com/
|
2
|
+
# via https://github.com/kigster/colored2/blob/aa274018906641ffb07aaa3015081a174d169dfe/lib/colored2.rb
|
3
3
|
|
4
|
-
require '
|
4
|
+
require 'colored2'
|
5
5
|
|
6
6
|
class String
|
7
|
-
|
7
|
+
Colored2::COLORS.keys.each do |color|
|
8
8
|
define_method(color) do
|
9
9
|
self # do nothing with the string, but return it
|
10
10
|
end
|
11
11
|
end
|
12
|
-
|
12
|
+
Colored2::EXTRAS.keys.each do |extra|
|
13
13
|
define_method(extra) do
|
14
14
|
self # do nothing with the string, but return it
|
15
15
|
end
|
@@ -64,11 +64,10 @@ module Frameit
|
|
64
64
|
if value.kind_of?(Hash)
|
65
65
|
validate_values(value) # recursive call
|
66
66
|
else
|
67
|
-
|
67
|
+
case key
|
68
|
+
when 'font'
|
68
69
|
UI.user_error!("Could not find font at path '#{File.expand_path(value)}'") unless File.exist?(value)
|
69
|
-
|
70
|
-
|
71
|
-
if key == 'fonts'
|
70
|
+
when 'fonts'
|
72
71
|
UI.user_error!("`fonts` must be an array") unless value.kind_of?(Array)
|
73
72
|
|
74
73
|
value.each do |current|
|
@@ -76,20 +75,16 @@ module Frameit
|
|
76
75
|
UI.user_error!("Could not find font at path '#{File.expand_path(current.fetch('font'))}'") unless File.exist?(current.fetch('font'))
|
77
76
|
UI.user_error!("`supported` must be an array") unless current.fetch('supported', []).kind_of? Array
|
78
77
|
end
|
79
|
-
|
80
|
-
|
81
|
-
if key == 'background'
|
78
|
+
when 'background'
|
82
79
|
UI.user_error!("Could not find background image at path '#{File.expand_path(value)}'") unless File.exist? value
|
83
|
-
|
84
|
-
|
85
|
-
if key == 'color'
|
80
|
+
when 'color'
|
86
81
|
UI.user_error!("Invalid color '#{value}'. Must be valid Hex #123123") unless value.include?("#")
|
87
|
-
|
88
|
-
|
89
|
-
if key == 'padding'
|
82
|
+
when 'padding'
|
90
83
|
unless value.kind_of?(Integer) || value.split('x').length == 2
|
91
84
|
UI.user_error!("padding must be type integer or pair of integers of format 'AxB'")
|
92
85
|
end
|
86
|
+
when 'font_scale_factor'
|
87
|
+
UI.user_error! "font_scale_factor must be numeric" unless value.kind_of?(Numeric)
|
93
88
|
end
|
94
89
|
end
|
95
90
|
end
|
@@ -236,12 +236,13 @@ module Frameit
|
|
236
236
|
end
|
237
237
|
|
238
238
|
def actual_font_size
|
239
|
-
[
|
239
|
+
font_scale_factor = fetch_config['font_scale_factor'] || 0.1
|
240
|
+
[@image.width * font_scale_factor].max.round
|
240
241
|
end
|
241
242
|
|
242
243
|
# The space between the keyword and the title
|
243
244
|
def keyword_padding
|
244
|
-
(actual_font_size /
|
245
|
+
(actual_font_size / 3.0).round
|
245
246
|
end
|
246
247
|
|
247
248
|
# This will build 2 individual images with the title, which will then be added to the real image
|
data/gym/lib/gym/options.rb
CHANGED
@@ -131,7 +131,8 @@ module Gym
|
|
131
131
|
conflicting_options: [:use_legacy_build_api],
|
132
132
|
conflict_block: proc do |value|
|
133
133
|
UI.user_error!("'#{value.key}' must be false to use 'export_xcargs'")
|
134
|
-
end
|
134
|
+
end,
|
135
|
+
type: :shell_string),
|
135
136
|
FastlaneCore::ConfigItem.new(key: :skip_build_archive,
|
136
137
|
env_name: "GYM_SKIP_BUILD_ARCHIVE",
|
137
138
|
description: "Export ipa from previously build xarchive. Uses archive_path as source",
|
@@ -196,7 +197,8 @@ module Gym
|
|
196
197
|
short_option: "-x",
|
197
198
|
env_name: "GYM_XCARGS",
|
198
199
|
description: "Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\"",
|
199
|
-
optional: true
|
200
|
+
optional: true,
|
201
|
+
type: :shell_string),
|
200
202
|
FastlaneCore::ConfigItem.new(key: :xcconfig,
|
201
203
|
short_option: "-y",
|
202
204
|
env_name: "GYM_XCCONFIG",
|
data/match/README.md
CHANGED
@@ -377,13 +377,13 @@ In general those profiles are harmless as they can only be used to install a sig
|
|
377
377
|
|
378
378
|
Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices.
|
379
379
|
|
380
|
-
Because of the potentially dangerous nature of In-House profiles
|
380
|
+
Because of the potentially dangerous nature of In-House profiles please use _match_ with enterprise profiles with caution, ensure your git repository is private and use a secure password.
|
381
381
|
|
382
382
|
##### To sum up
|
383
383
|
|
384
384
|
- You have full control over the access list of your Git repo, no third party service involved
|
385
385
|
- Even if your certificates are leaked, they can't be used to cause any harm without your iTunes Connect login credentials
|
386
|
-
-
|
386
|
+
- Use In-House enterprise profile with _match_ with caution
|
387
387
|
- If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo
|
388
388
|
- The complete source code of `match` is fully open source on [GitHub](https://github.com/fastlane/fastlane/tree/master/match)
|
389
389
|
|
data/match/lib/match.rb
CHANGED
@@ -21,31 +21,17 @@ module Match
|
|
21
21
|
DESCRIPTION = "Easily sync your certificates and profiles across your team using git"
|
22
22
|
|
23
23
|
def self.environments
|
24
|
-
|
25
|
-
envs << "enterprise" if self.enterprise?
|
26
|
-
return envs
|
27
|
-
end
|
28
|
-
|
29
|
-
# @return [Boolean] returns true if the unsupported enterprise mode should be enabled
|
30
|
-
def self.enterprise?
|
31
|
-
return FastlaneCore::Env.truthy?("MATCH_FORCE_ENTERPRISE")
|
32
|
-
end
|
33
|
-
|
34
|
-
# @return [Boolean] returns true if match should interpret the given [certificate|profile] type as an enterprise one
|
35
|
-
def self.type_is_enterprise?(type)
|
36
|
-
Match.enterprise? && type != "development"
|
24
|
+
return %w(appstore adhoc development enterprise)
|
37
25
|
end
|
38
26
|
|
39
27
|
def self.profile_type_sym(type)
|
40
|
-
return
|
41
|
-
return :adhoc if type == "adhoc"
|
42
|
-
return :appstore if type == "appstore"
|
43
|
-
return :development
|
28
|
+
return type.to_sym
|
44
29
|
end
|
45
30
|
|
46
31
|
def self.cert_type_sym(type)
|
47
|
-
return :enterprise if
|
32
|
+
return :enterprise if type == "enterprise"
|
48
33
|
return :development if type == "development"
|
49
|
-
return :distribution
|
34
|
+
return :distribution if type == "adhoc" || type == "appstore"
|
35
|
+
raise "Unknown cert type: '#{type}'"
|
50
36
|
end
|
51
37
|
end
|
@@ -39,7 +39,13 @@ module Match
|
|
39
39
|
|
40
40
|
prov_type = Match.profile_type_sym(params[:type])
|
41
41
|
|
42
|
-
|
42
|
+
names = ["match", profile_type_name(prov_type), app_identifier]
|
43
|
+
|
44
|
+
if params[:platform].to_s != :ios.to_s # For ios we do not include the platform for backwards compatibility
|
45
|
+
names << params[:platform]
|
46
|
+
end
|
47
|
+
|
48
|
+
profile_name = names.join(" ")
|
43
49
|
|
44
50
|
values = {
|
45
51
|
app_identifier: app_identifier,
|
@@ -52,6 +58,7 @@ module Match
|
|
52
58
|
team_id: params[:team_id]
|
53
59
|
}
|
54
60
|
|
61
|
+
values[:platform] = params[:platform]
|
55
62
|
values[:adhoc] = true if prov_type == :adhoc
|
56
63
|
values[:development] = true if prov_type == :development
|
57
64
|
|