Class: Fastlane::Actions::UpdatePlistAction
Constant Summary
Fastlane::Action::AVAILABLE_CATEGORIES, Fastlane::Action::RETURN_TYPES
Class Method Summary
collapse
action_name, authors, deprecated_notes, lane_context, method_missing, other_action, output, return_type, return_value, sample_return_value, shell_out_should_use_bundle_exec?, step_text
Class Method Details
.author ⇒ Object
59
60
61
|
# File 'fastlane/lib/fastlane/actions/update_plist.rb', line 59
def self.author
'rishabhtayal'
end
|
.available_options ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'fastlane/lib/fastlane/actions/update_plist.rb', line 45
def self.available_options
[
FastlaneCore::ConfigItem.new(key: :plist_path,
env_name: "FL_UPDATE_PLIST_PATH",
description: "Path to plist file",
optional: true),
FastlaneCore::ConfigItem.new(key: :block,
is_string: false,
description: 'A block to process plist with custom logic')
]
end
|
.category ⇒ Object
75
76
77
|
# File 'fastlane/lib/fastlane/actions/update_plist.rb', line 75
def self.category
:project
end
|
.description ⇒ Object
37
38
39
|
# File 'fastlane/lib/fastlane/actions/update_plist.rb', line 37
def self.description
'Update a plist file'
end
|
.details ⇒ Object
41
42
43
|
# File 'fastlane/lib/fastlane/actions/update_plist.rb', line 41
def self.details
"This action allows you to modify any `plist` file."
end
|
.example_code ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
|
# File 'fastlane/lib/fastlane/actions/update_plist.rb', line 63
def self.example_code
[
'update_plist( # Advanced processing: find URL scheme for particular key and replace value
plist_path: "path/to/Info.plist",
block: proc do |plist|
urlScheme = plist["CFBundleURLTypes"].find{|scheme| scheme["CFBundleURLName"] == "com.acme.default-url-handler"}
urlScheme[:CFBundleURLSchemes] = ["acme-production"]
end
)'
]
end
|
.is_supported?(platform) ⇒ Boolean
33
34
35
|
# File 'fastlane/lib/fastlane/actions/update_plist.rb', line 33
def self.is_supported?(platform)
[:ios].include?(platform)
end
|
.run(params) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'fastlane/lib/fastlane/actions/update_plist.rb', line 7
def self.run(params)
require 'xcodeproj'
if params[:plist_path].nil?
UI.user_error!("You must specify a plist path")
end
plist_path = params[:plist_path]
UI.user_error!("Couldn't find plist file at path '#{plist_path}'") unless File.exist?(plist_path)
plist = Xcodeproj::Plist.read_from_path(plist_path)
params[:block].call(plist) if params[:block]
Xcodeproj::Plist.write_to_path(plist, plist_path)
UI.success("Updated #{params[:plist_path]} 💾.")
File.read(plist_path)
end
|