fastlane-plugin-settings_bundle 1.0.0
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 +7 -0
- data/LICENSE +21 -0
- data/README.md +140 -0
- data/lib/fastlane/plugin/settings_bundle.rb +16 -0
- data/lib/fastlane/plugin/settings_bundle/actions/update_settings_bundle_action.rb +140 -0
- data/lib/fastlane/plugin/settings_bundle/helper/settings_bundle_helper.rb +126 -0
- data/lib/fastlane/plugin/settings_bundle/version.rb +5 -0
- metadata +161 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1e4de8d118519798ac033619bc8e7d97df7a53ed
|
4
|
+
data.tar.gz: 7c4b5392ec299f3793407f595f4ebddd7db7a6b0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a8d7cee31bc2f87df9d4887c723b66d07b38eb1db2c7665343ffe1eeb2b692006eeeda7311b4389aa2949d9b9bc00e2db947438df950acc948567d803f8c3f8b
|
7
|
+
data.tar.gz: 816ac7eaf9b17e5e3e8b65a6f5318260932d73289c5eb487531c968d48fe902a4339b90868ab46262349589f527929c07bf2c6781e3db6f0bd8f94237a87b317
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Jimmy Dee <jgvdthree@gmail.com>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
# settings_bundle plugin
|
2
|
+
|
3
|
+
[](https://rubygems.org/gems/fastlane-plugin-settings_bundle)
|
4
|
+
[](https://github.com/jdee/settings-bundle/blob/master/LICENSE)
|
5
|
+
[](https://circleci.com/gh/jdee/settings-bundle)
|
6
|
+
|
7
|
+
## Getting Started
|
8
|
+
|
9
|
+
This project is a [fastlane](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-settings_bundle`, run the following command:
|
10
|
+
```
|
11
|
+
fastlane add_plugin settings_bundle
|
12
|
+
```
|
13
|
+
|
14
|
+
## About settings_bundle
|
15
|
+
|
16
|
+
Fastlane plugin to update static settings in an iOS settings bundle
|
17
|
+
|
18
|
+

|
19
|
+
|
20
|
+
### update_settings_bundle
|
21
|
+
|
22
|
+
This action updates a specified NSUserDefaults key in the project's
|
23
|
+
`Settings.bundle` to a specified value. There are two macros that will
|
24
|
+
be expanded if included in the value argument. `:version` will be
|
25
|
+
replaced with the app's marketing version; `:build` will be replaced with
|
26
|
+
the current build number.
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
update_settings_bundle(
|
30
|
+
xcodeproj: "MyProject.xcodeproj",
|
31
|
+
key: "CurrentAppVersion",
|
32
|
+
value: ":version (:build)"
|
33
|
+
)
|
34
|
+
```
|
35
|
+
|
36
|
+
This updates the key named `CurrentAppVersion` in the `Root.plist` in the
|
37
|
+
`Settings.bundle` to contain the marketing version and build number in the
|
38
|
+
specified format. Use the action this way after `increment_build_number` or
|
39
|
+
`increment_version_number` to update your settings bundle as part of a
|
40
|
+
version bump.
|
41
|
+
|
42
|
+
#### Files other than Root.plist
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
update_settings_bundle(
|
46
|
+
xcodeproj: "MyProject.xcodeproj",
|
47
|
+
file: "About.plist",
|
48
|
+
key: "CurrentAppVersion",
|
49
|
+
value: ":version (:build)"
|
50
|
+
)
|
51
|
+
```
|
52
|
+
|
53
|
+
The `file` argument specifies a file other than `Root.plist` in the
|
54
|
+
`Settings.bundle`. If you have multiple projects, keys or files,
|
55
|
+
run the action multiple times.
|
56
|
+
|
57
|
+
#### Key content
|
58
|
+
|
59
|
+
Any string is valid for the value. It need not contain either or
|
60
|
+
both the symbols mentioned. If it contains neither, the literal value
|
61
|
+
of the value argument will be used. This can be useful for including
|
62
|
+
other settings besides the version and build numbers.
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
update_settings_bundle(
|
66
|
+
xcodeproj: "MyProject.xcodeproj",
|
67
|
+
key: "BuildDate",
|
68
|
+
value: Time.now.strftime("%Y-%m-%d")
|
69
|
+
)
|
70
|
+
```
|
71
|
+
|
72
|
+
#### Configuration parameter
|
73
|
+
|
74
|
+
A project can use different `Info.plist` files per configuration
|
75
|
+
(Debug, Release, etc.). However, a project only has a single settings
|
76
|
+
bundle. By default, this action uses the `Info.plist` file from the
|
77
|
+
Release configuration. If you want to use the `Info.plist` for a
|
78
|
+
different configuration, use a `configuration` parameter:
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
update_settings_bundle(
|
82
|
+
xcodeproj: "MyProject.xcodeproj",
|
83
|
+
key: "CurrentAppVersion",
|
84
|
+
value: ":version (:build)",
|
85
|
+
configuration: "Debug"
|
86
|
+
```
|
87
|
+
|
88
|
+
## Example
|
89
|
+
|
90
|
+
See the SettingsBundleExample subdirectory for a sample project that
|
91
|
+
makes use of this action.
|
92
|
+
|
93
|
+
First build and run the sample project on a simulator. It should show
|
94
|
+
you the current
|
95
|
+
version and build number: 1.0.0 (1). This info is taken from the main
|
96
|
+
bundle.
|
97
|
+
|
98
|
+
If you visit the Settings app and look at the settings for
|
99
|
+
SettingsBundleExample, you'll see the same version and build number
|
100
|
+
as well as a blank field for the Build date.
|
101
|
+
|
102
|
+
Now run Fastlane:
|
103
|
+
|
104
|
+
```bash
|
105
|
+
bundle install
|
106
|
+
bundle exec fastlane test
|
107
|
+
```
|
108
|
+
|
109
|
+
Now run the sample app again. It should display 1.0.0 (2). Visit the
|
110
|
+
Settings app under the settings for the app to see the update to the
|
111
|
+
settings bundle. The Build date field should show the current date.
|
112
|
+
|
113
|
+
## Run tests for this plugin
|
114
|
+
|
115
|
+
To run both the tests, and code style validation, run
|
116
|
+
|
117
|
+
```
|
118
|
+
rake
|
119
|
+
```
|
120
|
+
|
121
|
+
To automatically fix many of the styling issues, use
|
122
|
+
```
|
123
|
+
rubocop -a
|
124
|
+
```
|
125
|
+
|
126
|
+
## Issues and Feedback
|
127
|
+
|
128
|
+
For any other issues and feedback about this plugin, please submit it to this repository.
|
129
|
+
|
130
|
+
## Troubleshooting
|
131
|
+
|
132
|
+
If you have trouble using plugins, check out the [Plugins Troubleshooting](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/PluginsTroubleshooting.md) doc in the main `fastlane` repo.
|
133
|
+
|
134
|
+
## Using `fastlane` Plugins
|
135
|
+
|
136
|
+
For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Plugins.md).
|
137
|
+
|
138
|
+
## About `fastlane`
|
139
|
+
|
140
|
+
`fastlane` is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'fastlane/plugin/settings_bundle/version'
|
2
|
+
|
3
|
+
module Fastlane
|
4
|
+
module SettingsBundle
|
5
|
+
# Return all .rb files inside the "actions" and "helper" directory
|
6
|
+
def self.all_classes
|
7
|
+
Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
# By default we want to import all available actions and helpers
|
13
|
+
# A plugin can contain any number of actions and plugins
|
14
|
+
Fastlane::SettingsBundle.all_classes.each do |current|
|
15
|
+
require current
|
16
|
+
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
# Copyright (c) 2016 Jimmy Dee
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the "Software"), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in
|
11
|
+
# all copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
|
21
|
+
module Fastlane
|
22
|
+
module Actions
|
23
|
+
class UpdateSettingsBundleAction < Action
|
24
|
+
def self.run(params)
|
25
|
+
key = params[:key]
|
26
|
+
configuration = params[:configuration]
|
27
|
+
file = params[:file]
|
28
|
+
value = params[:value]
|
29
|
+
|
30
|
+
# try to open project file (raises)
|
31
|
+
project = Xcodeproj::Project.open params[:xcodeproj]
|
32
|
+
|
33
|
+
helper = Helper::SettingsBundleHelper
|
34
|
+
|
35
|
+
settings = helper.settings_from_project project, configuration
|
36
|
+
|
37
|
+
formatted_value = helper.formatted_value value, settings
|
38
|
+
|
39
|
+
helper.update_settings_plist_title_setting project, file, key,
|
40
|
+
formatted_value
|
41
|
+
rescue => e
|
42
|
+
UI.user_error! e.message
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.description
|
46
|
+
"Fastlane plugin action to update static settings in an iOS settings bundle"
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.author
|
50
|
+
"Jimmy Dee"
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.details
|
54
|
+
"This action is used to automatically update a Title entry in a plist\n" \
|
55
|
+
"in an app's Settings bundle. It can be used to update the current\n" \
|
56
|
+
"version and/or build number automatically after they have been \n" \
|
57
|
+
"updated, e.g. by the increment_version_number or increment_build_number\n" \
|
58
|
+
"actions."
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.available_options
|
62
|
+
[
|
63
|
+
# Required parameters
|
64
|
+
FastlaneCore::ConfigItem.new(key: :xcodeproj,
|
65
|
+
env_name: "SETTINGS_BUNDLE_XCODEPROJ",
|
66
|
+
description: "An Xcode project file whose settings bundle to update",
|
67
|
+
optional: false,
|
68
|
+
type: String),
|
69
|
+
FastlaneCore::ConfigItem.new(key: :key,
|
70
|
+
env_name: "SETTINGS_BUNDLE_KEY",
|
71
|
+
description: "The user defaults key to update in the settings bundle",
|
72
|
+
optional: false,
|
73
|
+
type: String),
|
74
|
+
FastlaneCore::ConfigItem.new(key: :value,
|
75
|
+
env_name: "SETTINGS_BUNDLE_VALUE",
|
76
|
+
description: "Value to set with optional :version and :build included",
|
77
|
+
optional: false,
|
78
|
+
type: String),
|
79
|
+
|
80
|
+
# Optional parameters
|
81
|
+
FastlaneCore::ConfigItem.new(key: :configuration,
|
82
|
+
env_name: "SETTINGS_BUNDLE_CONFIGURATION",
|
83
|
+
description: "The build configuration to use for the Info.plist file",
|
84
|
+
optional: true,
|
85
|
+
default_value: "Release",
|
86
|
+
type: String),
|
87
|
+
FastlaneCore::ConfigItem.new(key: :file,
|
88
|
+
env_name: "SETTINGS_BUNDLE_FILE",
|
89
|
+
description: "The plist file in the Settings.bundle to update",
|
90
|
+
optional: true,
|
91
|
+
default_value: "Root.plist",
|
92
|
+
type: String)
|
93
|
+
]
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.example_code
|
97
|
+
[
|
98
|
+
<<-EOF
|
99
|
+
update_settings_bundle(
|
100
|
+
xcodeproj: "MyProject.xcodeproj",
|
101
|
+
key: "CurrentAppVersion",
|
102
|
+
value: ":version (:build)"
|
103
|
+
)
|
104
|
+
EOF,
|
105
|
+
<<-EOF
|
106
|
+
update_settings_bundle(
|
107
|
+
xcodeproj: "MyProject.xcodeproj",
|
108
|
+
file: "About.plist",
|
109
|
+
key: "CurrentAppVersion",
|
110
|
+
value: ":version (:build)"
|
111
|
+
)
|
112
|
+
EOF,
|
113
|
+
<<-EOF
|
114
|
+
update_settings_bundle(
|
115
|
+
xcodeproj: "MyProject.xcodeproj",
|
116
|
+
key: "BuildDate",
|
117
|
+
value: Time.now.strftime("%Y-%m-%d")
|
118
|
+
)
|
119
|
+
EOF,
|
120
|
+
<<-EOF
|
121
|
+
update_settings_bundle(
|
122
|
+
xcodeproj: "MyProject.xcodeproj",
|
123
|
+
key: "CurrentAppVersion",
|
124
|
+
value: ":version (:build)",
|
125
|
+
configuration: "Debug"
|
126
|
+
)
|
127
|
+
EOF
|
128
|
+
]
|
129
|
+
end
|
130
|
+
|
131
|
+
def self.is_supported?(platform)
|
132
|
+
platform == :ios
|
133
|
+
end
|
134
|
+
|
135
|
+
def self.category
|
136
|
+
:project
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
# Copyright (c) 2016 Jimmy Dee
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
# of this software and associated documentation files (the "Software"), to deal
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
8
|
+
# furnished to do so, subject to the following conditions:
|
9
|
+
#
|
10
|
+
# The above copyright notice and this permission notice shall be included in
|
11
|
+
# all copies or substantial portions of the Software.
|
12
|
+
#
|
13
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
# SOFTWARE.
|
20
|
+
|
21
|
+
require 'plist'
|
22
|
+
|
23
|
+
module Fastlane
|
24
|
+
module Helper
|
25
|
+
class SettingsBundleHelper
|
26
|
+
Settings = Struct.new "Settings", :version, :build
|
27
|
+
|
28
|
+
class << self
|
29
|
+
# Takes a value, a version number and a build number and
|
30
|
+
# returns a formatted string.
|
31
|
+
# :version is replaced by the version number. :build
|
32
|
+
# is replaced by the build number. Neither the version nor
|
33
|
+
# the build number is required. Omitting both from the
|
34
|
+
# format will result in the format being returned as the value.
|
35
|
+
#
|
36
|
+
# :value: A string value containing :version, :build, neither or both
|
37
|
+
# :settings: A Settings struct containing settings from a project
|
38
|
+
def formatted_value(value, settings)
|
39
|
+
value.gsub(/:version/, settings.version.to_s).gsub(/:build/, settings.build.to_s)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Takes an open Xcodeproj::Project and extracts the current
|
43
|
+
# settings, returning a Settings struct with settings data.
|
44
|
+
# Raises on error.
|
45
|
+
#
|
46
|
+
# :project: An open Xcodeproj::Project via Xcodeproj::Project.open, e.g.
|
47
|
+
# :configuration: A valid build configuration in the project
|
48
|
+
def settings_from_project(project, configuration)
|
49
|
+
# find the first non-test, non-extension target
|
50
|
+
# TODO: Make this a :target parameter
|
51
|
+
target = project.targets.find { |t| !t.test_target_type? && !t.extension_target_type? }
|
52
|
+
raise "No application target found" if target.nil?
|
53
|
+
|
54
|
+
# find the Info.plist paths for all configurations
|
55
|
+
info_plist_paths = target.resolved_build_setting "INFOPLIST_FILE"
|
56
|
+
|
57
|
+
raise "INFOPLIST_FILE not found in target" if info_plist_paths.nil? or info_plist_paths.empty?
|
58
|
+
|
59
|
+
# this can differ from one configuration to another.
|
60
|
+
# take from Release, since only one Settings.bundle per project
|
61
|
+
# (not per configuration)
|
62
|
+
release_info_plist_path = info_plist_paths[configuration]
|
63
|
+
|
64
|
+
raise "Info.plist not found for configuration #{configuration}" if release_info_plist_path.nil?
|
65
|
+
|
66
|
+
project_parent = File.dirname project.path
|
67
|
+
|
68
|
+
release_info_plist_path = File.join project_parent, release_info_plist_path
|
69
|
+
|
70
|
+
# try to open and parse the Info.plist (raises)
|
71
|
+
info_plist = Plist.parse_xml release_info_plist_path
|
72
|
+
|
73
|
+
# increments already happened. read the current state.
|
74
|
+
current_marketing_version = info_plist["CFBundleShortVersionString"]
|
75
|
+
current_build_number = info_plist["CFBundleVersion"]
|
76
|
+
|
77
|
+
raise "CFBundleShortVersionString not found in Info.plist" if current_marketing_version.nil?
|
78
|
+
raise "CFBundleVersion not found in Info.plist" if current_build_number.nil?
|
79
|
+
|
80
|
+
Settings.new current_marketing_version, current_build_number
|
81
|
+
end
|
82
|
+
|
83
|
+
# Takes an open Xcodeproj::Project, extracts the settings bundle
|
84
|
+
# and updates the specified setting key in the specified file
|
85
|
+
# to the specified value. Only valid for title items. Raises
|
86
|
+
# on error.
|
87
|
+
#
|
88
|
+
# :project: An open Xcodeproj::Project, obtained from Xcodeproj::Project.open, e.g.
|
89
|
+
# :file: A settings plist file in the Settings.bundle, usually "Root.plist"
|
90
|
+
# :key: A valid NSUserDefaults key in the Settings.bundle
|
91
|
+
# :value: A new value for the key
|
92
|
+
def update_settings_plist_title_setting(project, file, key, value)
|
93
|
+
settings_bundle = project.files.find { |f| f.path =~ /Settings.bundle/ }
|
94
|
+
|
95
|
+
raise "Settings.bundle not found in project" if settings_bundle.nil?
|
96
|
+
|
97
|
+
settings_bundle_path = settings_bundle.path
|
98
|
+
|
99
|
+
project_parent = File.dirname project.path
|
100
|
+
|
101
|
+
plist_path = File.join project_parent, settings_bundle_path, file
|
102
|
+
|
103
|
+
# raises
|
104
|
+
settings_plist = Plist.parse_xml plist_path
|
105
|
+
preference_specifiers = settings_plist["PreferenceSpecifiers"]
|
106
|
+
|
107
|
+
raise "#{file} is not a settings plist file" if preference_specifiers.nil?
|
108
|
+
|
109
|
+
# Find the specifier for the supplied key
|
110
|
+
title_specifier = preference_specifiers.find do |specifier|
|
111
|
+
specifier["Key"] == key
|
112
|
+
end
|
113
|
+
|
114
|
+
raise "preference specifier for key #{key} not found in #{file}" if title_specifier.nil?
|
115
|
+
raise "preference for key #{key} must be of type title" unless title_specifier["Type"] == "PSTitleValueSpecifier"
|
116
|
+
|
117
|
+
# Update to the new value. Old value need not be present.
|
118
|
+
title_specifier["DefaultValue"] = value.to_s
|
119
|
+
|
120
|
+
# Save (raises)
|
121
|
+
Plist::Emit.save_plist settings_plist, plist_path
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
metadata
ADDED
@@ -0,0 +1,161 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fastlane-plugin-settings_bundle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jimmy Dee
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-11-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: plist
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: xcodeproj
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.4.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.4.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: fastlane
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.106.2
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.106.2
|
125
|
+
description:
|
126
|
+
email: jgvdthree@gmail.com
|
127
|
+
executables: []
|
128
|
+
extensions: []
|
129
|
+
extra_rdoc_files: []
|
130
|
+
files:
|
131
|
+
- LICENSE
|
132
|
+
- README.md
|
133
|
+
- lib/fastlane/plugin/settings_bundle.rb
|
134
|
+
- lib/fastlane/plugin/settings_bundle/actions/update_settings_bundle_action.rb
|
135
|
+
- lib/fastlane/plugin/settings_bundle/helper/settings_bundle_helper.rb
|
136
|
+
- lib/fastlane/plugin/settings_bundle/version.rb
|
137
|
+
homepage: https://github.com/jdee/settings-bundle
|
138
|
+
licenses:
|
139
|
+
- MIT
|
140
|
+
metadata: {}
|
141
|
+
post_install_message:
|
142
|
+
rdoc_options: []
|
143
|
+
require_paths:
|
144
|
+
- lib
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
requirements: []
|
156
|
+
rubyforge_project:
|
157
|
+
rubygems_version: 2.6.8
|
158
|
+
signing_key:
|
159
|
+
specification_version: 4
|
160
|
+
summary: Fastlane plugin to update static settings in an iOS settings bundle
|
161
|
+
test_files: []
|