fastlane 2.68.0.beta.20171129010003 → 2.68.0.beta.20171130010004
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/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
@@ -1,53 +1,13 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
def self.run(params)
|
9
|
-
return nil unless Helper.mac?
|
10
|
-
require 'snapshot'
|
11
|
-
|
12
|
-
Snapshot.config = params
|
13
|
-
Snapshot::DependencyChecker.check_simulators
|
14
|
-
Snapshot::Runner.new.work
|
15
|
-
|
16
|
-
Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] = File.expand_path(params[:output_directory]) # absolute URL
|
17
|
-
|
18
|
-
true
|
19
|
-
end
|
3
|
+
require 'fastlane/actions/capture_ios_screenshots'
|
4
|
+
class SnapshotAction < CaptureIosScreenshotsAction
|
5
|
+
#####################################################
|
6
|
+
# @!group Documentation
|
7
|
+
#####################################################
|
20
8
|
|
21
9
|
def self.description
|
22
|
-
"
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.available_options
|
26
|
-
return [] unless Helper.mac?
|
27
|
-
require 'snapshot'
|
28
|
-
Snapshot::Options.available_options
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.author
|
32
|
-
"KrauseFx"
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.is_supported?(platform)
|
36
|
-
[:ios, :mac].include? platform
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.example_code
|
40
|
-
[
|
41
|
-
'snapshot',
|
42
|
-
'snapshot(
|
43
|
-
skip_open_summary: true,
|
44
|
-
clean: true
|
45
|
-
)'
|
46
|
-
]
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.category
|
50
|
-
:screenshots
|
10
|
+
"Alias for the `capture_ios_screenshots` action"
|
51
11
|
end
|
52
12
|
end
|
53
13
|
end
|
@@ -1,66 +1,13 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
|
-
|
4
|
-
|
5
|
-
require 'supply'
|
6
|
-
require 'supply/options'
|
7
|
-
|
8
|
-
# If no APK params were provided, try to fill in the values from lane context, preferring
|
9
|
-
# the multiple APKs over the single APK if set.
|
10
|
-
if params[:apk_paths].nil? && params[:apk].nil?
|
11
|
-
all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] || []
|
12
|
-
if all_apk_paths.size > 1
|
13
|
-
params[:apk_paths] = all_apk_paths
|
14
|
-
else
|
15
|
-
params[:apk] = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
Supply.config = params # we already have the finished config
|
20
|
-
|
21
|
-
Supply::Uploader.new.perform_upload
|
22
|
-
end
|
23
|
-
|
3
|
+
require 'fastlane/actions/upload_to_play_store'
|
4
|
+
class SupplyAction < UploadToPlayStoreAction
|
24
5
|
#####################################################
|
25
6
|
# @!group Documentation
|
26
7
|
#####################################################
|
27
8
|
|
28
9
|
def self.description
|
29
|
-
"
|
30
|
-
end
|
31
|
-
|
32
|
-
def self.details
|
33
|
-
"More information: https://github.com/fastlane/fastlane/tree/master/supply"
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.available_options
|
37
|
-
require 'supply'
|
38
|
-
require 'supply/options'
|
39
|
-
Supply::Options.available_options
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.output
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.return_value
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.authors
|
49
|
-
["KrauseFx"]
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.is_supported?(platform)
|
53
|
-
platform == :android
|
54
|
-
end
|
55
|
-
|
56
|
-
def self.example_code
|
57
|
-
[
|
58
|
-
'supply'
|
59
|
-
]
|
60
|
-
end
|
61
|
-
|
62
|
-
def self.category
|
63
|
-
:production
|
10
|
+
"Alias for the `upload_to_play_store` action"
|
64
11
|
end
|
65
12
|
end
|
66
13
|
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
MATCH_PROVISIONING_PROFILE_MAPPING = :MATCH_PROVISIONING_PROFILE_MAPPING
|
5
|
+
end
|
6
|
+
|
7
|
+
class SyncCodeSigningAction < Action
|
8
|
+
def self.run(params)
|
9
|
+
require 'match'
|
10
|
+
|
11
|
+
params.load_configuration_file("Matchfile")
|
12
|
+
Match::Runner.new.run(params)
|
13
|
+
|
14
|
+
define_profile_type(params)
|
15
|
+
define_provisioning_profile_mapping(params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.define_profile_type(params)
|
19
|
+
profile_type = "app-store"
|
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'
|
23
|
+
|
24
|
+
UI.message("Setting Provisioning Profile type to '#{profile_type}'")
|
25
|
+
|
26
|
+
Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE] = profile_type
|
27
|
+
end
|
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
|
+
mapping = Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING] || {}
|
39
|
+
|
40
|
+
# Array (...) to make sure it's an Array, Ruby is magic, try this
|
41
|
+
# Array(1) # => [1]
|
42
|
+
# Array([1, 2]) # => [1, 2]
|
43
|
+
Array(params[:app_identifier]).each do |app_identifier|
|
44
|
+
env_variable_name = Match::Utils.environment_variable_name_profile_name(app_identifier: app_identifier,
|
45
|
+
type: Match.profile_type_sym(params[:type]),
|
46
|
+
platform: params[:platform])
|
47
|
+
mapping[app_identifier] = ENV[env_variable_name]
|
48
|
+
end
|
49
|
+
|
50
|
+
Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING] = mapping
|
51
|
+
end
|
52
|
+
|
53
|
+
#####################################################
|
54
|
+
# @!group Documentation
|
55
|
+
#####################################################
|
56
|
+
|
57
|
+
def self.description
|
58
|
+
"Easily sync your certificates and profiles across your team (via `match`)"
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.details
|
62
|
+
"More details https://github.com/fastlane/fastlane/tree/master/match"
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.available_options
|
66
|
+
require 'match'
|
67
|
+
Match::Options.available_options
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.output
|
71
|
+
[]
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.return_value
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.authors
|
78
|
+
["KrauseFx"]
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.is_supported?(platform)
|
82
|
+
platform == :ios
|
83
|
+
end
|
84
|
+
|
85
|
+
def self.example_code
|
86
|
+
[
|
87
|
+
'sync_code_signing(type: "appstore", app_identifier: "tools.fastlane.app")',
|
88
|
+
'sync_code_signing(type: "development", readonly: true)',
|
89
|
+
'sync_code_signing(app_identifier: ["tools.fastlane.app", "tools.fastlane.sleepy"])',
|
90
|
+
'match(...) # alias for "sync_code_signing"'
|
91
|
+
]
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.category
|
95
|
+
:code_signing
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -1,42 +1,13 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
|
-
|
4
|
-
|
5
|
-
Actions::PilotAction.run(params)
|
6
|
-
end
|
7
|
-
|
3
|
+
require 'fastlane/actions/upload_to_testflight'
|
4
|
+
class TestflightAction < UploadToTestflightAction
|
8
5
|
#####################################################
|
9
6
|
# @!group Documentation
|
10
7
|
#####################################################
|
11
8
|
|
12
9
|
def self.description
|
13
|
-
"Alias for the
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.available_options
|
17
|
-
require "pilot"
|
18
|
-
require "pilot/options"
|
19
|
-
FastlaneCore::CommanderGenerator.new.generate(Pilot::Options.available_options)
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.output
|
23
|
-
[]
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.author
|
27
|
-
'KrauseFx'
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.example_code
|
31
|
-
Actions::PilotAction.example_code
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.category
|
35
|
-
Actions::PilotAction.category
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.is_supported?(platform)
|
39
|
-
Actions::PilotAction.is_supported?(platform)
|
10
|
+
"Alias for the `upload_to_testflight` action"
|
40
11
|
end
|
41
12
|
end
|
42
13
|
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
end
|
5
|
+
|
6
|
+
class UploadToAppStoreAction < Action
|
7
|
+
def self.run(config)
|
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
|
19
|
+
|
20
|
+
def self.description
|
21
|
+
"Upload metadata and binary to iTunes Connect (via `deliver`)"
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.details
|
25
|
+
[
|
26
|
+
"Using _upload_to_app_store_ after _build_app_ and _capture_screenshots_ 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:",
|
31
|
+
"`_upload_to_app_store_(force: true)`",
|
32
|
+
"If your account is on multiple teams and you need to tell the `iTMSTransporter`",
|
33
|
+
"which 'provider' to use, you can set the `itc_provider` option to pass this info."
|
34
|
+
].join("\n")
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.available_options
|
38
|
+
require "deliver"
|
39
|
+
require "deliver/options"
|
40
|
+
FastlaneCore::CommanderGenerator.new.generate(Deliver::Options.available_options)
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.author
|
44
|
+
"KrauseFx"
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.is_supported?(platform)
|
48
|
+
[:ios, :mac].include?(platform)
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.example_code
|
52
|
+
[
|
53
|
+
'upload_to_app_store(
|
54
|
+
force: true, # Set to true to skip PDF verification
|
55
|
+
itc_provider: "abcde12345" # pass a specific value to the iTMSTransporter -itc_provider option
|
56
|
+
)',
|
57
|
+
'deliver(...) # alias for "upload_to_app_store"',
|
58
|
+
'appstore(...) # alias for "upload_to_app_store"'
|
59
|
+
]
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.category
|
63
|
+
:production
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class UploadToPlayStoreAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
require 'supply'
|
6
|
+
require 'supply/options'
|
7
|
+
|
8
|
+
# If no APK params were provided, try to fill in the values from lane context, preferring
|
9
|
+
# the multiple APKs over the single APK if set.
|
10
|
+
if params[:apk_paths].nil? && params[:apk].nil?
|
11
|
+
all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] || []
|
12
|
+
if all_apk_paths.size > 1
|
13
|
+
params[:apk_paths] = all_apk_paths
|
14
|
+
else
|
15
|
+
params[:apk] = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
Supply.config = params # we already have the finished config
|
20
|
+
|
21
|
+
Supply::Uploader.new.perform_upload
|
22
|
+
end
|
23
|
+
|
24
|
+
#####################################################
|
25
|
+
# @!group Documentation
|
26
|
+
#####################################################
|
27
|
+
|
28
|
+
def self.description
|
29
|
+
"Upload metadata, screenshots and binaries to Google Play (via `supply`)"
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.details
|
33
|
+
"More information: https://github.com/fastlane/fastlane/tree/master/supply"
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.available_options
|
37
|
+
require 'supply'
|
38
|
+
require 'supply/options'
|
39
|
+
Supply::Options.available_options
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.output
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.return_value
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.authors
|
49
|
+
["KrauseFx"]
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.is_supported?(platform)
|
53
|
+
platform == :android
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.example_code
|
57
|
+
[
|
58
|
+
'upload_to_play_store',
|
59
|
+
'supply # alias for "upload_to_play_store"'
|
60
|
+
]
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.category
|
64
|
+
:production
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class UploadToTestflightAction < Action
|
4
|
+
def self.run(values)
|
5
|
+
require 'pilot'
|
6
|
+
require 'pilot/options'
|
7
|
+
|
8
|
+
changelog = Actions.lane_context[SharedValues::FL_CHANGELOG]
|
9
|
+
values[:changelog] ||= changelog if changelog
|
10
|
+
|
11
|
+
values[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
|
12
|
+
values[:ipa] = File.expand_path(values[:ipa]) if values[:ipa]
|
13
|
+
|
14
|
+
return values if Helper.test?
|
15
|
+
|
16
|
+
Pilot::BuildManager.new.upload(values) # we already have the finished config
|
17
|
+
end
|
18
|
+
|
19
|
+
#####################################################
|
20
|
+
# @!group Documentation
|
21
|
+
#####################################################
|
22
|
+
|
23
|
+
def self.description
|
24
|
+
"Upload a new binary to iTunes Connect for TestFlight beta testing (via `pilot`)"
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.details
|
28
|
+
[
|
29
|
+
"More details can be found on https://github.com/fastlane/fastlane/tree/master/pilot",
|
30
|
+
"This integration will only do the TestFlight upload"
|
31
|
+
].join("\n")
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.available_options
|
35
|
+
require "pilot"
|
36
|
+
require "pilot/options"
|
37
|
+
FastlaneCore::CommanderGenerator.new.generate(Pilot::Options.available_options)
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.example_code
|
41
|
+
[
|
42
|
+
'upload_to_testfight',
|
43
|
+
'testflight # alias for "upload_to_testfight"',
|
44
|
+
'pilot # alias for "upload_to_testfight"',
|
45
|
+
'upload_to_testfight(skip_submission: true) # to only upload the build',
|
46
|
+
'upload_to_testfight(
|
47
|
+
username: "felix@krausefx.com",
|
48
|
+
app_identifier: "com.krausefx.app",
|
49
|
+
itc_provider: "abcde12345" # pass a specific value to the iTMSTransporter -itc_provider option
|
50
|
+
)'
|
51
|
+
]
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.category
|
55
|
+
:beta
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.authors
|
59
|
+
["KrauseFx"]
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.is_supported?(platform)
|
63
|
+
[:ios].include?(platform)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|