fastlane 2.13.0 → 2.14.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|