fastlane 2.68.0.beta.20171129010003 → 2.68.0.beta.20171130010004
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fastlane/lib/assets/ActionDetails.md.erb +2 -2
- data/fastlane/lib/fastlane/actions/appstore.rb +3 -32
- data/fastlane/lib/fastlane/actions/build_android_app.rb +14 -0
- data/fastlane/lib/fastlane/actions/build_app.rb +14 -0
- data/fastlane/lib/fastlane/actions/build_ios_app.rb +143 -0
- data/fastlane/lib/fastlane/actions/capture_android_screenshots.rb +57 -0
- data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +55 -0
- data/fastlane/lib/fastlane/actions/capture_screenshots.rb +14 -0
- data/fastlane/lib/fastlane/actions/cert.rb +6 -60
- data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +53 -0
- data/fastlane/lib/fastlane/actions/create_app_online.rb +76 -0
- data/fastlane/lib/fastlane/actions/deliver.rb +6 -56
- data/fastlane/lib/fastlane/actions/docs/frameit.md +2 -1
- data/fastlane/lib/fastlane/actions/frame_screenshots.rb +62 -0
- data/fastlane/lib/fastlane/actions/frameit.rb +6 -53
- data/fastlane/lib/fastlane/actions/get_certificates.rb +69 -0
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +88 -0
- data/fastlane/lib/fastlane/actions/get_push_certificate.rb +82 -0
- data/fastlane/lib/fastlane/actions/gym.rb +6 -133
- data/fastlane/lib/fastlane/actions/match.rb +3 -87
- data/fastlane/lib/fastlane/actions/pem.rb +6 -73
- data/fastlane/lib/fastlane/actions/pilot.rb +3 -55
- data/fastlane/lib/fastlane/actions/precheck.rb +6 -44
- data/fastlane/lib/fastlane/actions/produce.rb +6 -66
- data/fastlane/lib/fastlane/actions/run_tests.rb +105 -0
- data/fastlane/lib/fastlane/actions/scan.rb +6 -96
- data/fastlane/lib/fastlane/actions/screengrab.rb +6 -48
- data/fastlane/lib/fastlane/actions/sigh.rb +6 -79
- data/fastlane/lib/fastlane/actions/snapshot.rb +6 -46
- data/fastlane/lib/fastlane/actions/supply.rb +3 -56
- data/fastlane/lib/fastlane/actions/sync_code_signing.rb +99 -0
- data/fastlane/lib/fastlane/actions/testflight.rb +3 -32
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +67 -0
- data/fastlane/lib/fastlane/actions/upload_to_play_store.rb +68 -0
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +67 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/spaceship/lib/spaceship/client.rb +1 -1
- metadata +19 -2
@@ -0,0 +1,53 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
end
|
5
|
+
|
6
|
+
class CheckAppStoreMetadataAction < Action
|
7
|
+
def self.run(config)
|
8
|
+
require 'precheck'
|
9
|
+
Precheck.config = config
|
10
|
+
return Precheck::Runner.new.run
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.description
|
14
|
+
"Check your app's metadata before you submit your app to review (via `precheck`)"
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.details
|
18
|
+
"More information: https://fastlane.tools/precheck"
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.available_options
|
22
|
+
require 'precheck/options'
|
23
|
+
Precheck::Options.available_options
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.return_value
|
27
|
+
return "true if precheck passes, else, false"
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.authors
|
31
|
+
["taquitos"]
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.is_supported?(platform)
|
35
|
+
platform == :ios
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.example_code
|
39
|
+
[
|
40
|
+
'check_app_store_metadata(
|
41
|
+
negative_apple_sentiment(level: :skip), # Set to skip to not run the `negative_apple_sentiment` rule
|
42
|
+
curse_words(level: :warn) # Set to warn to only warn on curse word check failures
|
43
|
+
)',
|
44
|
+
'precheck(...) # alias for "check_app_store_metadata"'
|
45
|
+
]
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.category
|
49
|
+
:misc
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
PRODUCE_APPLE_ID = :PRODUCE_APPLE_ID
|
5
|
+
end
|
6
|
+
|
7
|
+
class CreateAppOnlineAction < Action
|
8
|
+
def self.run(params)
|
9
|
+
require 'produce'
|
10
|
+
|
11
|
+
return if Helper.test?
|
12
|
+
|
13
|
+
Produce.config = params # we alread have the finished config
|
14
|
+
|
15
|
+
Dir.chdir(FastlaneCore::FastlaneFolder.path || Dir.pwd) do
|
16
|
+
# This should be executed in the fastlane folder
|
17
|
+
apple_id = Produce::Manager.start_producing.to_s
|
18
|
+
|
19
|
+
Actions.lane_context[SharedValues::PRODUCE_APPLE_ID] = apple_id
|
20
|
+
ENV['PRODUCE_APPLE_ID'] = apple_id
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.description
|
25
|
+
"Creates the given application on iTC and the Dev Portal (via `produce`)"
|
26
|
+
end
|
27
|
+
|
28
|
+
def details
|
29
|
+
[
|
30
|
+
'Create new apps on iTunes Connect and Apple Developer Portal via `produce`.',
|
31
|
+
'If the app already exists, `create_app_online` will not do anything.',
|
32
|
+
'For more information about produce, visit its GitHub page:',
|
33
|
+
'https://github.com/fastlane/fastlane/tree/master/produce'
|
34
|
+
].join(' ')
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.available_options
|
38
|
+
require 'produce'
|
39
|
+
Produce::Options.available_options
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.output
|
43
|
+
[
|
44
|
+
['PRODUCE_APPLE_ID', 'The Apple ID of the newly created app. You probably need it for `deliver`']
|
45
|
+
]
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.author
|
49
|
+
"KrauseFx"
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.is_supported?(platform)
|
53
|
+
platform == :ios
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.example_code
|
57
|
+
[
|
58
|
+
'create_app_online(
|
59
|
+
username: "felix@krausefx.com",
|
60
|
+
app_identifier: "com.krausefx.app",
|
61
|
+
app_name: "MyApp",
|
62
|
+
language: "English",
|
63
|
+
app_version: "1.0",
|
64
|
+
sku: "123",
|
65
|
+
team_name: "SunApps GmbH" # Only necessary when in multiple teams.
|
66
|
+
)',
|
67
|
+
'produce(...) # alias for "create_app_online"'
|
68
|
+
]
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.category
|
72
|
+
:misc
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -1,63 +1,13 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
require 'deliver'
|
9
|
-
|
10
|
-
begin
|
11
|
-
config.load_configuration_file("Deliverfile")
|
12
|
-
config[:screenshots_path] = Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] if Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH]
|
13
|
-
config[:ipa] = Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] if Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
|
14
|
-
|
15
|
-
return config if Helper.test?
|
16
|
-
Deliver::Runner.new(config).run
|
17
|
-
end
|
18
|
-
end
|
3
|
+
require 'fastlane/actions/upload_to_app_store'
|
4
|
+
class DeliverAction < UploadToAppStoreAction
|
5
|
+
#####################################################
|
6
|
+
# @!group Documentation
|
7
|
+
#####################################################
|
19
8
|
|
20
9
|
def self.description
|
21
|
-
"
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.details
|
25
|
-
[
|
26
|
-
"Using _deliver_ after _gym_ and _snapshot_ will automatically upload the",
|
27
|
-
"latest ipa and screenshots with no other configuration",
|
28
|
-
"",
|
29
|
-
"If you don't want a PDF report for App Store builds, use the `:force` option.",
|
30
|
-
"This is useful when running _fastlane_ on your Continuous Integration server: `deliver(force: true)`",
|
31
|
-
"If your account is on multiple teams and you need to tell the `iTMSTransporter`",
|
32
|
-
"which 'provider' to use, you can set the `itc_provider` option to pass this info."
|
33
|
-
].join("\n")
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.available_options
|
37
|
-
require "deliver"
|
38
|
-
require "deliver/options"
|
39
|
-
FastlaneCore::CommanderGenerator.new.generate(Deliver::Options.available_options)
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.author
|
43
|
-
"KrauseFx"
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.is_supported?(platform)
|
47
|
-
[:ios, :mac].include?(platform)
|
48
|
-
end
|
49
|
-
|
50
|
-
def self.example_code
|
51
|
-
[
|
52
|
-
'deliver(
|
53
|
-
force: true, # Set to true to skip PDF verification
|
54
|
-
itc_provider: "abcde12345" # pass a specific value to the iTMSTransporter -itc_provider option
|
55
|
-
)'
|
56
|
-
]
|
57
|
-
end
|
58
|
-
|
59
|
-
def self.category
|
60
|
-
:production
|
10
|
+
"Alias for the `upload_to_app_store` action"
|
61
11
|
end
|
62
12
|
end
|
63
13
|
end
|
@@ -22,6 +22,7 @@ _frameit_ allows you to put a gorgeous device frame around your iOS and macOS sc
|
|
22
22
|
# Features
|
23
23
|
|
24
24
|
Put a gorgeous device frame around your iOS and macOS screenshots just by running one simple command. Support for:
|
25
|
+
|
25
26
|
- iPhone, iPad and Mac
|
26
27
|
- Portrait and Landscape modes
|
27
28
|
- Several colors
|
@@ -47,7 +48,7 @@ Here is a nice gif, that shows _frameit_ in action:
|
|
47
48
|
<h5 align="center">The <code>frameit</code> 2.0 update was kindly sponsored by <a href="https://mindnode.com/">MindNode</a>, seen in the screenshots above.</h5>
|
48
49
|
|
49
50
|
|
50
|
-
The first time that _frameit_ is executed the frames will be downloaded automatically. Originally the frames are coming from [Facebook frameset](http://facebook.design/devices) and they are kept on this repo
|
51
|
+
The first time that _frameit_ is executed the frames will be downloaded automatically. Originally the frames are coming from [Facebook frameset](http://facebook.design/devices) and they are kept on [this repo](https://github.com/fastlane/frameit-frames).
|
51
52
|
|
52
53
|
More information about this process and how to update the frames can be found [here](https://github.com/fastlane/fastlane/tree/master/frameit/frames_generator)
|
53
54
|
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class FrameScreenshotsAction < Action
|
4
|
+
def self.run(config)
|
5
|
+
return if Helper.test?
|
6
|
+
|
7
|
+
require 'frameit'
|
8
|
+
|
9
|
+
UI.message("Framing screenshots at path #{config[:path]} (via frameit)")
|
10
|
+
|
11
|
+
Dir.chdir(config[:path]) do
|
12
|
+
Frameit.config = config
|
13
|
+
Frameit::Runner.new.run('.')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.description
|
18
|
+
"Adds device frames around all screenshots (via `frameit`)"
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.details
|
22
|
+
[
|
23
|
+
"Uses [frameit](https://github.com/fastlane/fastlane/tree/master/frameit) to prepare perfect screenshots for the App Store, your website, QA",
|
24
|
+
"or emails. You can add background and titles to the framed screenshots as well."
|
25
|
+
].join("\n")
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.available_options
|
29
|
+
require "frameit"
|
30
|
+
require "frameit/options"
|
31
|
+
FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options) + [
|
32
|
+
FastlaneCore::ConfigItem.new(key: :path,
|
33
|
+
env_name: "FRAMEIT_SCREENSHOTS_PATH",
|
34
|
+
description: "The path to the directory containing the screenshots",
|
35
|
+
default_value: Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] || FastlaneCore::FastlaneFolder.path)
|
36
|
+
]
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.author
|
40
|
+
"KrauseFx"
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.example_code
|
44
|
+
[
|
45
|
+
'frame_screenshots',
|
46
|
+
'frameit # alias for "frame_screenshots"',
|
47
|
+
'frame_screenshots(silver: true)',
|
48
|
+
'frame_screenshots(path: "/screenshots")',
|
49
|
+
'frame_screenshots(rose_gold: true)'
|
50
|
+
]
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.category
|
54
|
+
:screenshots
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.is_supported?(platform)
|
58
|
+
[:ios, :mac].include? platform
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -1,60 +1,13 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
UI.message("Framing screenshots at path #{config[:path]}")
|
10
|
-
|
11
|
-
Dir.chdir(config[:path]) do
|
12
|
-
Frameit.config = config
|
13
|
-
Frameit::Runner.new.run('.')
|
14
|
-
end
|
15
|
-
end
|
3
|
+
require 'fastlane/actions/frameit'
|
4
|
+
class FrameitAction < FrameScreenshotsAction
|
5
|
+
#####################################################
|
6
|
+
# @!group Documentation
|
7
|
+
#####################################################
|
16
8
|
|
17
9
|
def self.description
|
18
|
-
"
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.details
|
22
|
-
[
|
23
|
-
"Use [frameit](https://github.com/fastlane/fastlane/tree/master/frameit) to prepare perfect screenshots for the App Store, your website, QA",
|
24
|
-
"or emails. You can add background and titles to the framed screenshots as well."
|
25
|
-
].join("\n")
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.available_options
|
29
|
-
require "frameit"
|
30
|
-
require "frameit/options"
|
31
|
-
FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options) + [
|
32
|
-
FastlaneCore::ConfigItem.new(key: :path,
|
33
|
-
env_name: "FRAMEIT_SCREENSHOTS_PATH",
|
34
|
-
description: "The path to the directory containing the screenshots",
|
35
|
-
default_value: Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] || FastlaneCore::FastlaneFolder.path)
|
36
|
-
]
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.author
|
40
|
-
"KrauseFx"
|
41
|
-
end
|
42
|
-
|
43
|
-
def self.example_code
|
44
|
-
[
|
45
|
-
'frameit',
|
46
|
-
'frameit(silver: true)',
|
47
|
-
'frameit(path: "/screenshots")',
|
48
|
-
'frameit(rose_gold: true)'
|
49
|
-
]
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.category
|
53
|
-
:screenshots
|
54
|
-
end
|
55
|
-
|
56
|
-
def self.is_supported?(platform)
|
57
|
-
[:ios, :mac].include? platform
|
10
|
+
"Alias for the `frame_screenshots` action"
|
58
11
|
end
|
59
12
|
end
|
60
13
|
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
CERT_FILE_PATH = :CERT_FILE_PATH
|
5
|
+
CERT_CERTIFICATE_ID = :CERT_CERTIFICATE_ID
|
6
|
+
end
|
7
|
+
|
8
|
+
class GetCertificatesAction < Action
|
9
|
+
def self.run(params)
|
10
|
+
require 'cert'
|
11
|
+
|
12
|
+
return if Helper.test?
|
13
|
+
|
14
|
+
begin
|
15
|
+
Cert.config = params # we alread have the finished config
|
16
|
+
|
17
|
+
Cert::Runner.new.launch
|
18
|
+
cert_file_path = ENV["CER_FILE_PATH"]
|
19
|
+
certificate_id = ENV["CER_CERTIFICATE_ID"]
|
20
|
+
Actions.lane_context[SharedValues::CERT_FILE_PATH] = cert_file_path
|
21
|
+
Actions.lane_context[SharedValues::CERT_CERTIFICATE_ID] = certificate_id
|
22
|
+
|
23
|
+
UI.success("Use signing certificate '#{certificate_id}' from now on!")
|
24
|
+
|
25
|
+
ENV["SIGH_CERTIFICATE_ID"] = certificate_id # for further use in the sigh action
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.description
|
30
|
+
"Create new iOS code signing certificates (via `cert`)"
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.details
|
34
|
+
[
|
35
|
+
"**Important**: It is recommended to use [match](https://github.com/fastlane/fastlane/tree/master/match) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your certificates. Use _cert_ directly only if you want full control over what's going on and know more about codesigning.",
|
36
|
+
"Use this action to download the latest code signing identity"
|
37
|
+
].join("\n")
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.available_options
|
41
|
+
require 'cert'
|
42
|
+
Cert::Options.available_options
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.author
|
46
|
+
"KrauseFx"
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.is_supported?(platform)
|
50
|
+
platform == :ios
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.example_code
|
54
|
+
[
|
55
|
+
'get_certificates',
|
56
|
+
'cert # alias for "get_certificates"',
|
57
|
+
'get_certificates(
|
58
|
+
development: true,
|
59
|
+
username: "user@email.com"
|
60
|
+
)'
|
61
|
+
]
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.category
|
65
|
+
:code_signing
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
SIGH_PROFILE_PATH = :SIGH_PROFILE_PATH
|
5
|
+
SIGH_PROFILE_PATHS = :SIGH_PROFILE_PATHS
|
6
|
+
SIGH_UDID = :SIGH_UDID # deprecated
|
7
|
+
SIGH_UUID = :SIGH_UUID
|
8
|
+
SIGH_NAME = :SIGH_NAME
|
9
|
+
SIGH_PROFILE_TYPE = :SIGH_PROFILE_TYPE
|
10
|
+
end
|
11
|
+
|
12
|
+
class GetProvisioningProfileAction < Action
|
13
|
+
def self.run(values)
|
14
|
+
require 'sigh'
|
15
|
+
require 'credentials_manager/appfile_config'
|
16
|
+
|
17
|
+
Sigh.config = values # we already have the finished config
|
18
|
+
|
19
|
+
path = Sigh::Manager.start
|
20
|
+
|
21
|
+
Actions.lane_context[SharedValues::SIGH_PROFILE_PATH] = path # absolute path
|
22
|
+
Actions.lane_context[SharedValues::SIGH_PROFILE_PATHS] ||= []
|
23
|
+
Actions.lane_context[SharedValues::SIGH_PROFILE_PATHS] << path
|
24
|
+
|
25
|
+
uuid = ENV["SIGH_UUID"] || ENV["SIGH_UDID"] # the UUID of the profile
|
26
|
+
name = ENV["SIGH_NAME"] # the name of the profile
|
27
|
+
Actions.lane_context[SharedValues::SIGH_UUID] = Actions.lane_context[SharedValues::SIGH_UDID] = uuid if uuid
|
28
|
+
Actions.lane_context[SharedValues::SIGH_NAME] = Actions.lane_context[SharedValues::SIGH_NAME] = name if name
|
29
|
+
|
30
|
+
set_profile_type(values, ENV["SIGH_PROFILE_ENTERPRISE"])
|
31
|
+
|
32
|
+
return uuid # returs uuid of profile
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.set_profile_type(values, enterprise)
|
36
|
+
profile_type = "app-store"
|
37
|
+
profile_type = "ad-hoc" if values[:adhoc]
|
38
|
+
profile_type = "development" if values[:development]
|
39
|
+
profile_type = "enterprise" if enterprise
|
40
|
+
|
41
|
+
UI.message("Setting Provisioning Profile type to '#{profile_type}'")
|
42
|
+
|
43
|
+
Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE] = profile_type
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.description
|
47
|
+
"Generates a provisioning profile, saving it in the current folder (via `sigh`)"
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.author
|
51
|
+
"KrauseFx"
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.return_value
|
55
|
+
"The UUID of the profile sigh just fetched/generated"
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.details
|
59
|
+
"**Note**: It is recommended to use [match](https://github.com/fastlane/fastlane/tree/master/match) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your provisioning profiles. Use _sigh_ directly only if you want full control over what's going on and know more about codesigning."
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.available_options
|
63
|
+
require 'sigh'
|
64
|
+
Sigh::Options.available_options
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.is_supported?(platform)
|
68
|
+
platform == :ios
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.example_code
|
72
|
+
[
|
73
|
+
'get_provisioning_profile',
|
74
|
+
'sigh # alias for "get_provisioning_profile"',
|
75
|
+
'get_provisioning_profile(
|
76
|
+
adhoc: true,
|
77
|
+
force: true,
|
78
|
+
filename: "myFile.mobileprovision"
|
79
|
+
)'
|
80
|
+
]
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.category
|
84
|
+
:code_signing
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|