fastlane 1.3.2 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/bin/fastlane +11 -1
- data/lib/fastlane/actions/commit_version_bump.rb +3 -3
- data/lib/fastlane/actions/ensure_git_branch.rb +50 -0
- data/lib/fastlane/actions/hockey.rb +14 -1
- data/lib/fastlane/actions/install_cocapods.rb +41 -1
- data/lib/fastlane/actions/ipa.rb +4 -3
- data/lib/fastlane/actions/update_info_plist.rb +85 -0
- data/lib/fastlane/actions/update_project_provisioning.rb +1 -0
- data/lib/fastlane/lane_list.rb +41 -0
- data/lib/fastlane/runner.rb +7 -3
- data/lib/fastlane/setup.rb +1 -1
- data/lib/fastlane/version.rb +1 -1
- metadata +17 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76053191670da750db1c89dbeb5f6dc53278aa61
|
4
|
+
data.tar.gz: 840df7995bd6edb21e0d97b4446b2fa683c87a15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce84a181f1e348754dacafdb3d7d0ad54c25f7fa0efc3c5de7042380dbba9dad267ce90a2a048135365333a108fb54754e5ef53e78c67a31f3ebfd626aa9bff8
|
7
|
+
data.tar.gz: 1be702107bb3a8aaf13155435ec0828a1df31ebf1be0a54ec9eadb2c36384cb4948e0cc56af9fc52a2be873ee491dc00316ed034df653f0a02f79ef7b0360be3
|
data/README.md
CHANGED
@@ -125,10 +125,11 @@ Usually you'll use fastlane by triggering individual lanes:
|
|
125
125
|
|
126
126
|
#### Other commands
|
127
127
|
|
128
|
-
- `fastlane lanes`: Lists all available lanes
|
129
|
-
- `fastlane docs`: Generates a markdown based documentation of all your lanes
|
130
128
|
- `fastlane actions`: List all available `fastlane` actions
|
131
129
|
- `fastlane action [action_name]`: Shows a more detailed description of an action
|
130
|
+
- `fastlane lanes`: Lists all available lanes with description
|
131
|
+
- `fastlane list`: Lists all available lanes without description
|
132
|
+
- `fastlane docs`: Generates a markdown based documentation of all your lanes
|
132
133
|
- `fastlane new_action`: Create a new action (integration) for fastlane
|
133
134
|
|
134
135
|
## Examples
|
data/bin/fastlane
CHANGED
@@ -64,8 +64,18 @@ class FastlaneApplication
|
|
64
64
|
|
65
65
|
command :lanes do |c|
|
66
66
|
c.syntax = 'fastlane lanes'
|
67
|
-
c.description = 'Lists all available lanes'
|
67
|
+
c.description = 'Lists all available lanes and shows their description'
|
68
68
|
|
69
|
+
c.action do |_args, _options|
|
70
|
+
require 'fastlane/lane_list'
|
71
|
+
path = File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile')
|
72
|
+
Fastlane::LaneList.output(path)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
command :list do |c|
|
77
|
+
c.syntax = 'fastlane list'
|
78
|
+
c.description = 'Lists all available lanes without description'
|
69
79
|
c.action do |_args, _options|
|
70
80
|
ff = Fastlane::FastFile.new(File.join(Fastlane::FastlaneFolder.path || '.', 'Fastfile'))
|
71
81
|
puts "\nAvailable lanes:".green
|
@@ -11,7 +11,7 @@ module Fastlane
|
|
11
11
|
xcodeproj_path = params[:xcodeproj] ? File.expand_path(File.join('.', params[:xcodeproj])) : nil
|
12
12
|
|
13
13
|
# find the repo root path
|
14
|
-
repo_path =
|
14
|
+
repo_path = Actions.sh('git rev-parse --show-toplevel').strip
|
15
15
|
repo_pathname = Pathname.new(repo_path)
|
16
16
|
|
17
17
|
if xcodeproj_path
|
@@ -49,7 +49,7 @@ module Fastlane
|
|
49
49
|
expected_changed_files.flatten!.uniq!
|
50
50
|
|
51
51
|
# get the list of files that have actually changed in our git workdir
|
52
|
-
git_dirty_files =
|
52
|
+
git_dirty_files = Actions.sh('git diff --name-only HEAD').split("\n") + Actions.sh('git ls-files --other --exclude-standard').split("\n")
|
53
53
|
|
54
54
|
# little user hint
|
55
55
|
raise 'No file changes picked up. Make sure you run the `increment_build_number` action first.'.red if git_dirty_files.empty?
|
@@ -58,7 +58,7 @@ module Fastlane
|
|
58
58
|
changed_files_as_expected = (Set.new(git_dirty_files.map(&:downcase)) == Set.new(expected_changed_files.map(&:downcase)))
|
59
59
|
unless changed_files_as_expected
|
60
60
|
unless params[:force]
|
61
|
-
raise "Found unexpected uncommited changes in the working directory. Expected these files to have changed: #{expected_changed_files}
|
61
|
+
raise "Found unexpected uncommited changes in the working directory. Expected these files to have changed: \n#{expected_changed_files.join("\n")}.\nBut found these actual changes: \n#{git_dirty_files.join("\n")}.\nMake sure you have cleaned up the build artifacts and are only left with the changed version files at this stage in your lane, and don't touch the working directory while your lane is running. You can also use the :force option to bypass this check, and always commit a version bump regardless of the state of the working directory.".red
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
end
|
5
|
+
|
6
|
+
# Raises an exception and stop the lane execution if the repo is not on a specific branch
|
7
|
+
class EnsureGitBranchAction < Action
|
8
|
+
def self.run(params)
|
9
|
+
branch = params[:branch]
|
10
|
+
|
11
|
+
if Actions.git_branch != branch
|
12
|
+
raise "Git is not on the `#{branch}` branch! Please ensure the repo is checked out to the correct branch.".red
|
13
|
+
else
|
14
|
+
Helper.log.info "Git branch is `#{branch}`, all good! 💪".green
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
#####################################################
|
20
|
+
# @!group Documentation
|
21
|
+
#####################################################
|
22
|
+
|
23
|
+
def self.description
|
24
|
+
"Raises an exception if not on a specific git branch"
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.available_options
|
28
|
+
[
|
29
|
+
FastlaneCore::ConfigItem.new(key: :branch,
|
30
|
+
env_name: "FL_ENSURE_GIT_BRANCH_NAME",
|
31
|
+
description: "The branch that should be checked for",
|
32
|
+
is_string: true,
|
33
|
+
default_value: 'master'),
|
34
|
+
]
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.output
|
38
|
+
[]
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.author
|
42
|
+
'dbachrach'
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.is_supported?(platform)
|
46
|
+
true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -35,7 +35,7 @@ module Fastlane
|
|
35
35
|
client = Shenzhen::Plugins::HockeyApp::Client.new(options[:api_token])
|
36
36
|
|
37
37
|
values = options.values
|
38
|
-
values[:dsym_filename] =
|
38
|
+
values[:dsym_filename] = dsym_filename
|
39
39
|
values[:notes_type] = options[:notes_type]
|
40
40
|
|
41
41
|
return values if Helper.test?
|
@@ -116,6 +116,18 @@ module Fastlane
|
|
116
116
|
FastlaneCore::ConfigItem.new(key: :public_identifier,
|
117
117
|
env_name: "FL_HOCKEY_PUBLIC_IDENTIFIER",
|
118
118
|
description: "Public identifier of the app you are targeting, usually you won't need this value",
|
119
|
+
optional: true),
|
120
|
+
FastlaneCore::ConfigItem.new(key: :commit_sha,
|
121
|
+
env_name: "FL_HOCKEY_COMMIT_SHA",
|
122
|
+
description: "The Git commit SHA for this build",
|
123
|
+
optional: true),
|
124
|
+
FastlaneCore::ConfigItem.new(key: :repository_url,
|
125
|
+
env_name: "FL_HOCKEY_REPOSITORY_URL",
|
126
|
+
description: "The URL of your source repository",
|
127
|
+
optional: true),
|
128
|
+
FastlaneCore::ConfigItem.new(key: :build_server_url,
|
129
|
+
env_name: "FL_HOCKEY_BUILD_SERVER_URL",
|
130
|
+
description: "The URL of the build job on your build server",
|
119
131
|
optional: true)
|
120
132
|
]
|
121
133
|
end
|
@@ -137,3 +149,4 @@ module Fastlane
|
|
137
149
|
end
|
138
150
|
end
|
139
151
|
end
|
152
|
+
|
@@ -2,16 +2,56 @@ module Fastlane
|
|
2
2
|
module Actions
|
3
3
|
class CocoapodsAction < Action
|
4
4
|
def self.run(params)
|
5
|
-
|
5
|
+
|
6
|
+
cmd = ['pod install']
|
7
|
+
|
8
|
+
cmd << '--no-clean' unless params[:clean]
|
9
|
+
cmd << '--no-integrate' unless params[:integrate]
|
10
|
+
cmd << '--no-repo-update' unless params[:repo_update]
|
11
|
+
cmd << '--silent' if params[:silent]
|
12
|
+
cmd << '--verbose' if params[:verbose]
|
13
|
+
cmd << '--no-ansi' unless params[:ansi]
|
14
|
+
|
15
|
+
Actions.sh(cmd.join(' '))
|
6
16
|
end
|
7
17
|
|
8
18
|
def self.description
|
9
19
|
"Runs `pod install` for the project"
|
10
20
|
end
|
11
21
|
|
22
|
+
def self.available_options
|
23
|
+
[
|
24
|
+
FastlaneCore::ConfigItem.new(key: :clean,
|
25
|
+
env_name: "FL_COCOAPODS_CLEAN",
|
26
|
+
description: "Remove SCM directories",
|
27
|
+
default_value: true),
|
28
|
+
FastlaneCore::ConfigItem.new(key: :integrate,
|
29
|
+
env_name: "FL_COCOAPODS_INTEGRATE",
|
30
|
+
description: "Integrate the Pods libraries into the Xcode project(s)",
|
31
|
+
default_value: true),
|
32
|
+
FastlaneCore::ConfigItem.new(key: :repo_update,
|
33
|
+
env_name: "FL_COCOAPODS_REPO_UPDATE",
|
34
|
+
description: "Run `pod repo update` before install",
|
35
|
+
default_value: true),
|
36
|
+
FastlaneCore::ConfigItem.new(key: :silent,
|
37
|
+
env_name: "FL_COCOAPODS_SILENT",
|
38
|
+
description: "Show nothing",
|
39
|
+
default_value: false),
|
40
|
+
FastlaneCore::ConfigItem.new(key: :verbose,
|
41
|
+
env_name: "FL_COCOAPODS_VERBOSE",
|
42
|
+
description: "Show more debugging information",
|
43
|
+
default_value: false),
|
44
|
+
FastlaneCore::ConfigItem.new(key: :ansi,
|
45
|
+
env_name: "FL_COCOAPODS_ANSI",
|
46
|
+
description: "Show output with ANSI codes",
|
47
|
+
default_value: true),
|
48
|
+
]
|
49
|
+
end
|
50
|
+
|
12
51
|
def self.is_supported?(platform)
|
13
52
|
[:ios, :mac].include?platform
|
14
53
|
end
|
15
54
|
end
|
16
55
|
end
|
17
56
|
end
|
57
|
+
# vim: set et sw=2 ts=2 :
|
data/lib/fastlane/actions/ipa.rb
CHANGED
@@ -37,7 +37,7 @@ module Fastlane
|
|
37
37
|
|
38
38
|
# Used to get the final path of the IPA and dSYM
|
39
39
|
if dest = params[:destination]
|
40
|
-
absolute_dest_directory =
|
40
|
+
absolute_dest_directory = File.expand_path(dest)
|
41
41
|
end
|
42
42
|
|
43
43
|
# Maps nice developer build parameters to Shenzhen args
|
@@ -108,7 +108,7 @@ module Fastlane
|
|
108
108
|
if k == :clean
|
109
109
|
v == true ? '--clean' : '--no-clean'
|
110
110
|
elsif k == :archive
|
111
|
-
v == true ? '--archive' :
|
111
|
+
v == true ? '--archive' : '--no-archive'
|
112
112
|
else
|
113
113
|
value = (v.to_s.length > 0 ? "\"#{v}\"" : '')
|
114
114
|
"#{ARGS_MAP[k]} #{value}".strip
|
@@ -139,7 +139,8 @@ module Fastlane
|
|
139
139
|
|
140
140
|
def self.details
|
141
141
|
[
|
142
|
-
"More information on the shenzhen project page: https://github.com/nomad/shenzhen"
|
142
|
+
"More information on the shenzhen project page: https://github.com/nomad/shenzhen",
|
143
|
+
"To make code signing work, it is recommended to set a the provisioning profile in the project settings."
|
143
144
|
].join(' ')
|
144
145
|
end
|
145
146
|
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
end
|
5
|
+
|
6
|
+
class UpdateInfoPlistAction < Action
|
7
|
+
def self.run(params)
|
8
|
+
require 'plist'
|
9
|
+
|
10
|
+
# Check if parameters are set
|
11
|
+
if params[:app_identifier] or params[:display_name]
|
12
|
+
|
13
|
+
# Assign folder from parameter or search for xcodeproj file
|
14
|
+
folder = params[:xcodeproj] || Dir["*.xcodeproj"].first
|
15
|
+
|
16
|
+
# Read existing plist file
|
17
|
+
info_plist_path = File.join(folder, "..", params[:plist_path])
|
18
|
+
raise "Couldn't find info plist file at path '#{params[:plist_path]}'".red unless File.exists?(info_plist_path)
|
19
|
+
plist = Plist::parse_xml(info_plist_path)
|
20
|
+
|
21
|
+
# Update plist values
|
22
|
+
plist['CFBundleIdentifier'] = params[:app_identifier] if params[:app_identifier]
|
23
|
+
plist['CFBundleDisplayName'] = params[:display_name] if params[:display_name]
|
24
|
+
|
25
|
+
# Write changes to file
|
26
|
+
plist_string = Plist::Emit.dump(plist)
|
27
|
+
File.write(info_plist_path, plist_string)
|
28
|
+
|
29
|
+
Helper.log.info "Updated #{params[:plist_path]} 💾.".green
|
30
|
+
plist_string
|
31
|
+
else
|
32
|
+
Helper.log.warn("You haven't specified any parameters to update your plist.")
|
33
|
+
false
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
#####################################################
|
40
|
+
# @!group Documentation
|
41
|
+
#####################################################
|
42
|
+
|
43
|
+
def self.is_supported?(platform)
|
44
|
+
[:ios].include?(platform)
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.description
|
48
|
+
'Update a Info.plist file with bundle identifier and display name'
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.available_options
|
52
|
+
[
|
53
|
+
|
54
|
+
FastlaneCore::ConfigItem.new(key: :xcodeproj,
|
55
|
+
env_name: "FL_UPDATE_PLIST_PROJECT_PATH",
|
56
|
+
description: "Path to your Xcode project",
|
57
|
+
optional: true,
|
58
|
+
verify_block: Proc.new do |value|
|
59
|
+
raise "Please pass the path to the project, not the workspace".red if value.include?"workspace"
|
60
|
+
raise "Could not find Xcode project".red unless File.exists?(value)
|
61
|
+
end),
|
62
|
+
FastlaneCore::ConfigItem.new(key: :plist_path,
|
63
|
+
env_name: "FL_UPDATE_PLIST_PATH",
|
64
|
+
description: "Path to info plist",
|
65
|
+
verify_block: Proc.new do |value|
|
66
|
+
raise "Invalid plist file".red unless value[-6..-1].downcase == ".plist"
|
67
|
+
end),
|
68
|
+
FastlaneCore::ConfigItem.new(key: :app_identifier,
|
69
|
+
env_name: 'FL_UPDATE_PLIST_APP_IDENTIFIER',
|
70
|
+
description: 'The App Identifier of your app',
|
71
|
+
default_value: ENV['PRODUCE_APP_IDENTIFIER'],
|
72
|
+
optional: true),
|
73
|
+
FastlaneCore::ConfigItem.new(key: :display_name,
|
74
|
+
env_name: 'FL_UPDATE_PLIST_DISPLAY_NAME',
|
75
|
+
description: 'The Display Name of your app',
|
76
|
+
optional: true)
|
77
|
+
]
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.author
|
81
|
+
'tobiasstrebitzer'
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -29,6 +29,7 @@ module Fastlane
|
|
29
29
|
profile = File.read(params[:profile])
|
30
30
|
p7 = OpenSSL::PKCS7.new(profile)
|
31
31
|
store = OpenSSL::X509::Store.new
|
32
|
+
raise "Could not find valid certificate at '#{params[:certificate]}'" unless (File.size(params[:certificate]) > 0)
|
32
33
|
cert = OpenSSL::X509::Certificate.new(File.read(params[:certificate]))
|
33
34
|
store.add_cert(cert)
|
34
35
|
verification = p7.verify([cert], store)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Fastlane
|
2
|
+
class LaneList
|
3
|
+
# Print out the result of `generate`
|
4
|
+
def self.output(path)
|
5
|
+
|
6
|
+
puts generate(path)
|
7
|
+
|
8
|
+
puts "Execute using `fastlane [lane_name]`".yellow
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.generate(path)
|
12
|
+
ff = Fastlane::FastFile.new(path)
|
13
|
+
output = ""
|
14
|
+
|
15
|
+
all_keys = ff.runner.description_blocks.keys.reject(&:nil?)
|
16
|
+
all_keys.unshift(nil) # because we want root elements on top. always! They have key nil
|
17
|
+
|
18
|
+
all_keys.each do |platform|
|
19
|
+
next if (ff.runner.description_blocks[platform] || []).count == 0
|
20
|
+
plat_text = platform
|
21
|
+
plat_text = "general" if platform.to_s.empty?
|
22
|
+
output += "\n--------- #{plat_text}---------\n".yellow
|
23
|
+
|
24
|
+
value = ff.runner.description_blocks[platform]
|
25
|
+
|
26
|
+
if value
|
27
|
+
value.each do |lane, description|
|
28
|
+
lane_text = "----- fastlane "
|
29
|
+
lane_text += platform.to_s + " " if platform
|
30
|
+
lane_text += lane.to_s + "\n"
|
31
|
+
|
32
|
+
output += lane_text.green
|
33
|
+
output += description.gsub("\n\n", "\n") + "\n\n" if description.to_s.length > 0
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
output
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/fastlane/runner.rb
CHANGED
@@ -7,8 +7,14 @@ module Fastlane
|
|
7
7
|
def execute(lane, platform = nil)
|
8
8
|
raise "No lane given" unless lane
|
9
9
|
|
10
|
+
ENV["FASTLANE_LANE_NAME"] = lane.to_s
|
11
|
+
if platform
|
12
|
+
ENV["FASTLANE_PLATFORM_NAME"] = platform.to_s
|
13
|
+
else
|
14
|
+
ENV["FASTLANE_PLATFORM_NAME"] = nil
|
15
|
+
end
|
16
|
+
|
10
17
|
lane = lane.to_sym
|
11
|
-
|
12
18
|
platform = platform.to_sym if platform # might be nil, which is okay => root element
|
13
19
|
|
14
20
|
Actions.lane_context[Actions::SharedValues::PLATFORM_NAME] = platform # set this in any case: important
|
@@ -16,8 +22,6 @@ module Fastlane
|
|
16
22
|
full_lane_name = [platform, lane].reject(&:nil?).join(' ')
|
17
23
|
Helper.log.info "Driving the lane '#{full_lane_name}'".green
|
18
24
|
Actions.lane_context[Actions::SharedValues::LANE_NAME] = full_lane_name
|
19
|
-
ENV["FASTLANE_LANE_NAME"] = lane.to_s
|
20
|
-
ENV["FASTLANE_PLATFORM_NAME"] = platform.to_s
|
21
25
|
|
22
26
|
return_val = nil
|
23
27
|
|
data/lib/fastlane/setup.rb
CHANGED
@@ -27,7 +27,7 @@ module Fastlane
|
|
27
27
|
rescue Exception => ex # this will also be caused by Ctrl + C
|
28
28
|
# Something went wrong with the setup, clear the folder again
|
29
29
|
# and restore previous files
|
30
|
-
Helper.log.fatal 'Error
|
30
|
+
Helper.log.fatal 'Error occurred with the setup program! Reverting changes now!'.red
|
31
31
|
restore_previous_state
|
32
32
|
raise ex
|
33
33
|
end
|
data/lib/fastlane/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.14.
|
33
|
+
version: 0.14.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.14.
|
40
|
+
version: 0.14.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: slack-notifier
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,28 +156,28 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - '>='
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.7.
|
159
|
+
version: 0.7.6
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - '>='
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.7.
|
166
|
+
version: 0.7.6
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: deliver
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - '>='
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.11.
|
173
|
+
version: 0.11.1
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - '>='
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.11.
|
180
|
+
version: 0.11.1
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: snapshot
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,28 +198,28 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - '>='
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 2.0.
|
201
|
+
version: 2.0.1
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - '>='
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: 2.0.
|
208
|
+
version: 2.0.1
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: pem
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - '>='
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: 0.6.
|
215
|
+
version: 0.6.3
|
216
216
|
type: :runtime
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - '>='
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 0.6.
|
222
|
+
version: 0.6.3
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: cert
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,14 +240,14 @@ dependencies:
|
|
240
240
|
requirements:
|
241
241
|
- - '>='
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: 0.
|
243
|
+
version: 0.6.0
|
244
244
|
type: :runtime
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - '>='
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: 0.
|
250
|
+
version: 0.6.0
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: produce
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
@@ -406,6 +406,7 @@ files:
|
|
406
406
|
- lib/fastlane/actions/deliver.rb
|
407
407
|
- lib/fastlane/actions/deploygate.rb
|
408
408
|
- lib/fastlane/actions/dsym_zip.rb
|
409
|
+
- lib/fastlane/actions/ensure_git_branch.rb
|
409
410
|
- lib/fastlane/actions/ensure_git_status_clean.rb
|
410
411
|
- lib/fastlane/actions/fastlane_version.rb
|
411
412
|
- lib/fastlane/actions/frameit.rb
|
@@ -439,6 +440,7 @@ files:
|
|
439
440
|
- lib/fastlane/actions/testmunk.rb
|
440
441
|
- lib/fastlane/actions/typetalk.rb
|
441
442
|
- lib/fastlane/actions/update_fastlane.rb
|
443
|
+
- lib/fastlane/actions/update_info_plist.rb
|
442
444
|
- lib/fastlane/actions/update_project_code_signing.rb
|
443
445
|
- lib/fastlane/actions/update_project_provisioning.rb
|
444
446
|
- lib/fastlane/actions/xcode_select.rb
|
@@ -452,6 +454,7 @@ files:
|
|
452
454
|
- lib/fastlane/fast_file.rb
|
453
455
|
- lib/fastlane/fastlane_folder.rb
|
454
456
|
- lib/fastlane/junit_generator.rb
|
457
|
+
- lib/fastlane/lane_list.rb
|
455
458
|
- lib/fastlane/lane_manager.rb
|
456
459
|
- lib/fastlane/new_action.rb
|
457
460
|
- lib/fastlane/runner.rb
|