fastlane-plugin-branch 0.6.0 → 0.7.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 +5 -5
- data/README.md +113 -108
- data/lib/fastlane/plugin/branch/actions/branch_report_action.rb +52 -0
- data/lib/fastlane/plugin/branch/actions/setup_branch_action.rb +23 -108
- data/lib/fastlane/plugin/branch/actions/validate_universal_links_action.rb +15 -35
- data/lib/fastlane/plugin/branch/config_item.rb +15 -0
- data/lib/fastlane/plugin/branch/fastlane_format.rb +42 -0
- data/lib/fastlane/plugin/branch/version.rb +1 -1
- metadata +8 -6
- data/lib/fastlane/plugin/branch/helper/branch_options.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b9698deff778126e250ebc87f1944a952ced21c3ccdc614ba5e91683e39ae18f
|
4
|
+
data.tar.gz: ed00d7306008408acc65780eb2bcc18b27ae7db193acbfc15ed6c6c9b6296a63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8a15ce1709786a5d21311442c9bcc4f714fccc1b924b4707029c7844051225a00ca0dc50a5f95d118a74837b5a781e4f60a9ecf71a9f980bc63e728b9b29c79
|
7
|
+
data.tar.gz: 0d5aaf69ee0ca67d2b559074efe1da5e7f6ef67540c7f5825f0c18d120bd51c6fa4015b36c87307d1f6b649d690c400abbdc7882230c8ace24b00891cb7d5949
|
data/README.md
CHANGED
@@ -29,53 +29,98 @@ This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To
|
|
29
29
|
fastlane add_plugin branch
|
30
30
|
```
|
31
31
|
|
32
|
-
|
32
|
+
<!-- The following is generated. Do not edit by hand. Run fastlane readme to -->
|
33
|
+
<!-- regenerate this section. -->
|
34
|
+
<!-- BEGIN ACTION REFERENCE -->
|
35
|
+
### setup_branch action
|
36
|
+
|
37
|
+
```Ruby
|
38
|
+
setup_branch
|
39
|
+
```
|
33
40
|
|
34
41
|
Integrates the Branch SDK into a native app project. This currently supports iOS only.
|
35
42
|
It will infer the project location if there is exactly one .xcodeproj anywhere under
|
36
43
|
the current directory, excluding any in a Pods or Carthage folder. Otherwise, specify
|
37
|
-
the project location using the
|
44
|
+
the project location using the `xcodeproj` option, or the CLI will prompt you for the
|
38
45
|
location.
|
39
46
|
|
40
47
|
If a Podfile or Cartfile is detected, the Branch SDK will be added to the relevant
|
41
48
|
configuration file and the dependencies updated to include the Branch framework.
|
42
|
-
This behavior may be suppressed using
|
49
|
+
This behavior may be suppressed using `no_add_sdk`. If no Podfile or Cartfile
|
43
50
|
is found, and Branch.framework is not already among the project's dependencies,
|
44
51
|
you will be prompted for a number of choices, including setting up CocoaPods or
|
45
52
|
Carthage for the project or directly installing the Branch.framework.
|
46
53
|
|
47
54
|
By default, all supplied Universal Link domains are validated. If validation passes,
|
48
55
|
the setup continues. If validation fails, no further action is taken. Suppress
|
49
|
-
validation using
|
50
|
-
|
56
|
+
validation using `no_validate` or force changes when validation fails using
|
57
|
+
`force`.
|
51
58
|
|
52
59
|
By default, this command will look for the first app target in the project. Test
|
53
|
-
targets are not supported. To set up an extension target, supply the
|
60
|
+
targets are not supported. To set up an extension target, supply the `target` option.
|
54
61
|
|
55
62
|
All relevant target settings are modified. The Branch keys are added to the Info.plist,
|
56
|
-
along with the `branch_universal_link_domains` key for custom domains (when
|
63
|
+
along with the `branch_universal_link_domains` key for custom domains (when `domains`
|
57
64
|
is used). For app targets, all domains are added to the project's Associated Domains
|
58
65
|
entitlement. An entitlements file is also added for app targets if none is found.
|
59
|
-
Optionally, if
|
66
|
+
Optionally, if `frameworks` is specified, this command can add a list of system
|
60
67
|
frameworks to the target's dependencies (e.g., AdSupport, CoreSpotlight, SafariServices).
|
61
68
|
|
62
69
|
A language-specific patch is applied to the AppDelegate (Swift or Objective-C).
|
63
|
-
This can be suppressed using
|
70
|
+
This can be suppressed using `no_patch_source`.
|
64
71
|
|
65
72
|
#### Prerequisites
|
66
73
|
|
67
|
-
Before using this command, make sure to set up your app in the
|
74
|
+
Before using this command, make sure to set up your app in the Branch Dashboard
|
75
|
+
(https://dashboard.branch.io). See https://docs.branch.io/pages/dashboard/integrate/
|
76
|
+
for details. To use the `setup` command, you need:
|
68
77
|
|
69
78
|
- Branch key(s), either live, test or both
|
70
79
|
- Domain name(s) used for Branch links
|
71
80
|
- Location of your Xcode project (may be inferred in simple projects)
|
72
81
|
|
73
|
-
If using the
|
82
|
+
If using the `commit` option, `git` is required. If not using `no_add_sdk`,
|
74
83
|
the `pod` or `carthage` command may be required. If not found, the CLI will
|
75
84
|
offer to install and set up these command-line tools for you. Alternately, you can arrange
|
76
85
|
that the relevant commands are available in your `PATH`.
|
77
86
|
|
78
|
-
|
87
|
+
All parameters are optional. A live key or test key, or both is required, as well
|
88
|
+
as at least one domain. Specify `live_key`, `test_key` or both and `app_link_subdomain`,
|
89
|
+
`domains` or both. If these are not specified, this command will prompt you
|
90
|
+
for this information.
|
91
|
+
|
92
|
+
See https://github.com/BranchMetrics/branch_io_cli#setup-command for more information.
|
93
|
+
|
94
|
+
|
95
|
+
#### Options
|
96
|
+
|
97
|
+
|Fastfile key|description|Environment variable|type|default value|
|
98
|
+
|---|---|---|---|---|
|
99
|
+
|live_key|Branch live key|BRANCH_LIVE_KEY|Boolean||
|
100
|
+
|test_key|Branch test key|BRANCH_TEST_KEY|Boolean||
|
101
|
+
|domains|Comma-separated list of custom domain(s) or non-Branch domain(s)|BRANCH_DOMAINS|Boolean||
|
102
|
+
|app_link_subdomain|Branch app.link subdomain, e.g. myapp for myapp.app.link|BRANCH_APP_LINK_SUBDOMAIN|Boolean||
|
103
|
+
|uri_scheme|Custom URI scheme used in the Branch Dashboard for this app|BRANCH_URI_SCHEME|Boolean||
|
104
|
+
|setting|Use a custom build setting for the Branch key (default: Use Info.plist)|BRANCH_SETTING|Boolean||
|
105
|
+
|test_configurations|List of configurations that use the test key with a user-defined setting (default: Debug configurations)|BRANCH_TEST_CONFIGURATIONS|Boolean||
|
106
|
+
|xcodeproj|Path to an Xcode project to update|BRANCH_XCODEPROJ|Boolean||
|
107
|
+
|target|Name of a target to modify in the Xcode project|BRANCH_TARGET|Boolean||
|
108
|
+
|podfile|Path to the Podfile for the project|BRANCH_PODFILE|Boolean||
|
109
|
+
|cartfile|Path to the Cartfile for the project|BRANCH_CARTFILE|Boolean||
|
110
|
+
|carthage_command|Command to run when installing from Carthage|BRANCH_CARTHAGE_COMMAND|Boolean|update --platform ios|
|
111
|
+
|frameworks|Comma-separated list of system frameworks to add to the project|BRANCH_FRAMEWORKS|Boolean||
|
112
|
+
|pod_repo_update|Update the local podspec repo before installing|BRANCH_POD_REPO_UPDATE||true|
|
113
|
+
|validate|Validate Universal Link configuration|BRANCH_VALIDATE||true|
|
114
|
+
|force|Update project even if Universal Link validation fails|BRANCH_FORCE||false|
|
115
|
+
|add_sdk|Add the Branch framework to the project|BRANCH_ADD_SDK||true|
|
116
|
+
|patch_source|Add Branch SDK calls to the AppDelegate|BRANCH_PATCH_SOURCE||true|
|
117
|
+
|commit|Commit the results to Git if non-blank|BRANCH_COMMIT|Boolean||
|
118
|
+
|confirm|Confirm configuration before proceeding|BRANCH_CONFIRM||true|
|
119
|
+
|
120
|
+
|
121
|
+
#### Examples
|
122
|
+
|
123
|
+
```Ruby
|
79
124
|
setup_branch(
|
80
125
|
live_key: "key_live_xxxx",
|
81
126
|
test_key: "key_test_yyyy",
|
@@ -83,143 +128,103 @@ setup_branch(
|
|
83
128
|
uri_scheme: "myscheme",
|
84
129
|
xcodeproj: "MyIOSApp.xcodeproj"
|
85
130
|
)
|
131
|
+
|
86
132
|
```
|
87
133
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
### validate_universal_links action
|
138
|
+
|
139
|
+
```Ruby
|
140
|
+
validate_universal_links
|
95
141
|
```
|
96
142
|
|
97
|
-
|
143
|
+
This command validates all Universal Link domains configured in a project without making any
|
144
|
+
modification. It validates both Branch and non-Branch domains. Unlike web-based Universal
|
145
|
+
Link validators, this command operates directly on the project. It finds the bundle and
|
146
|
+
signing team identifiers in the project as well as the app's Associated Domains. It requests
|
147
|
+
the apple-app-site-association file for each domain and validates the file against the
|
148
|
+
project's settings.
|
98
149
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|:test_key|The Branch test key to use (:live_key or :test_key is required)|BRANCH_TEST_KEY|string||
|
103
|
-
|:app_link_subdomain|An app.link subdomain to use (:app_link_subdomain or :domains is required. The union of the two sets of domains will be used.)|BRANCH_APP_LINK_SUBDOMAIN|string||
|
104
|
-
|:domains|A list of domains (custom domains or Branch domains) to use (:app_link_subdomain or :domains is required. The union of the two sets of domains will be used.)|BRANCH_DOMAINS|array of strings or comma-separated string||
|
105
|
-
|:uri_scheme|A URI scheme to add to the manifest|BRANCH_URI_SCHEME|string||
|
106
|
-
|:xcodeproj|Path to a .xcodeproj directory to use. (:xcodeproj, :android_project_path or :android_manifest_path is required.)|BRANCH_XCODEPROJ|string||
|
107
|
-
|:target|Name of the target to use in the Xcode project (iOS only; optional)|BRANCH_TARGET|string||
|
108
|
-
|:validate|Determines whether to validate the resulting Universal Link configuration before modifying the project|BRANCH_VALIDATE|boolean|true|
|
109
|
-
|:force|Update project(s) even if Universal Link validation fails|BRANCH_FORCE_UPDATE|boolean|false|
|
110
|
-
|:commit|Set to true to commit changes to Git; set to a string to commit with a custom message|BRANCH_COMMIT_CHANGES|boolean or string|false|
|
111
|
-
|:frameworks|A list of system frameworks to add to the target that uses the Branch SDK (iOS only)|BRANCH_FRAMEWORKS|array|[]|
|
112
|
-
|:add_sdk|Set to false to disable automatic integration of the Branch SDK|BRANCH_ADD_SDK|boolean|true|
|
113
|
-
|:podfile|Path to a Podfile to update (iOS only)|BRANCH_PODFILE|string||
|
114
|
-
|:patch_source|Set to false to disable automatic source-code patching|BRANCH_PATCH_SOURCE|boolean|true|
|
115
|
-
|:pod_repo_update|Set to false to disable update of local podspec repo before pod install|BRANCH_POD_REPO_UPDATE|boolean|true|
|
116
|
-
|:cartfile|Path to a Cartfile to update (iOS only)|BRANCH_CARTFILE|string||
|
117
|
-
|:carthage_command|Command to use when installing with Carthage|BRANCH_CARTHAGE_COMMAND|string|update --platform ios|
|
150
|
+
Only app targets are supported for this command. By default, it will validate the first.
|
151
|
+
If your project has multiple app targets, specify the `target` option to validate other
|
152
|
+
targets.
|
118
153
|
|
119
|
-
|
154
|
+
All parameters are optional. If `domains` is specified, the list of Universal Link domains in
|
155
|
+
the Associated Domains entitlement must exactly match this list, without regard to order. If
|
156
|
+
no `domains` are provided, validation passes if at least one Universal Link domain is
|
157
|
+
configured and passes validation, and no Universal Link domain is present that does not pass
|
158
|
+
validation.
|
120
159
|
|
121
|
-
-
|
122
|
-
- :app_link_subdomain or :domains must be specified.
|
160
|
+
See https://github.com/BranchMetrics/branch_io_cli#validate-command for more information.
|
123
161
|
|
124
|
-
If these parameters are not specified, you will be prompted for them.
|
125
162
|
|
126
|
-
|
127
|
-
See the sample [Branchfile](./fastlane/Branchfile) in the fastlane subdirectory of this repo.
|
163
|
+
#### Options
|
128
164
|
|
129
|
-
|
165
|
+
|Fastfile key|description|Environment variable|type|default value|
|
166
|
+
|---|---|---|---|---|
|
167
|
+
|domains|Comma-separated list of domains to validate (Branch domains or non-Branch domains)|BRANCH_DOMAINS|Boolean|[]|
|
168
|
+
|xcodeproj|Path to an Xcode project to update|BRANCH_XCODEPROJ|Boolean||
|
169
|
+
|target|Name of a target to validate in the Xcode project|BRANCH_TARGET|Boolean||
|
130
170
|
|
131
|
-
This action validates all Universal Link domains configured in a project without making any modification.
|
132
|
-
It validates both Branch and non-Branch domains.
|
133
171
|
|
172
|
+
#### Examples
|
134
173
|
|
135
|
-
```
|
174
|
+
```Ruby
|
136
175
|
validate_universal_links
|
137
176
|
```
|
138
177
|
|
139
|
-
```
|
178
|
+
```Ruby
|
140
179
|
validate_universal_links(xcodeproj: "MyProject.xcodeproj")
|
141
180
|
```
|
142
181
|
|
143
|
-
```
|
182
|
+
```Ruby
|
144
183
|
validate_universal_links(xcodeproj: "MyProject.xcodeproj", target: "MyProject")
|
145
184
|
```
|
146
185
|
|
147
|
-
```
|
186
|
+
```Ruby
|
148
187
|
validate_universal_links(domains: %w{example.com www.example.com})
|
149
188
|
```
|
150
189
|
|
151
|
-
Available options:
|
152
|
-
|
153
|
-
|Fastfile key|description|Environment variable|type|default value|
|
154
|
-
|---|---|---|---|---|
|
155
|
-
|:xcodeproj|Path to a .xcodeproj directory to use|BRANCH_XCODEPROJ|string||
|
156
|
-
|:target|Name of the target to use in the Xcode project|BRANCH_TARGET|string||
|
157
|
-
|:domains|A list of domains (custom domains or Branch domains) that must be present in the project.|BRANCH_DOMAINS|array of strings or comma-separated string||
|
158
|
-
|
159
|
-
All parameters are optional. Without any parameters, the action looks for a single .xcodeproj
|
160
|
-
folder (with the exception of a Pods project) and reports an error if none or more than one is found.
|
161
|
-
It uses the first non-test, non-extension target in that project.
|
162
|
-
|
163
|
-
If the :domains parameter is not provided, validation will pass as long as there is at least
|
164
|
-
one Universal Link domain configured for the target, and all Universal Link domains pass
|
165
|
-
AASA validation. If the the :domains parameter is provided, the Universal Link domains in
|
166
|
-
the project must also match the value of this parameter without regard to order.
|
167
190
|
|
168
|
-
This action does not use the Branchfile.
|
169
191
|
|
170
|
-
## Examples
|
171
192
|
|
172
|
-
There is an example [Fastfile](./fastlane/Fastfile) in this repo that defines a number of
|
173
|
-
example lanes. Be sure to run `bundle install` before trying any of the examples.
|
174
193
|
|
175
|
-
###
|
194
|
+
### branch_report action
|
176
195
|
|
177
|
-
|
178
|
-
|
179
|
-
[examples/ios/BranchPluginExample](./examples/ios/BranchPluginExample).
|
180
|
-
The Xcode project uses CocoaPods and Swift.
|
181
|
-
|
182
|
-
```bash
|
183
|
-
bundle exec fastlane setup
|
196
|
+
```Ruby
|
197
|
+
branch_report
|
184
198
|
```
|
185
199
|
|
186
|
-
|
187
|
-
|
188
|
-
This lane sets up the BranchPluginExample projects and also commits the results to git.
|
200
|
+
_Work in progress_
|
189
201
|
|
190
|
-
|
191
|
-
|
192
|
-
```
|
202
|
+
This command optionally cleans and then builds a workspace or project, generating a verbose
|
203
|
+
report with additional diagnostic information suitable for opening a support ticket.
|
193
204
|
|
194
|
-
### setup_objc
|
195
205
|
|
196
|
-
|
197
|
-
in [examples/ios/BranchPluginExampleObjc](./examples/ios/BranchPluginExampleObjc).
|
198
|
-
The project uses CocoaPods and Objective-C.
|
206
|
+
#### Options
|
199
207
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
208
|
+
|Fastfile key|description|Environment variable|type|default value|
|
209
|
+
|---|---|---|---|---|
|
210
|
+
|workspace|Path to an Xcode workspace|BRANCH_WORKSPACE|Boolean||
|
211
|
+
|xcodeproj|Path to an Xcode project|BRANCH_XCODEPROJ|Boolean||
|
212
|
+
|scheme|A scheme from the project or workspace to build|BRANCH_SCHEME|Boolean||
|
213
|
+
|target|A target to build|BRANCH_TARGET|Boolean||
|
214
|
+
|configuration|The build configuration to use (default: Scheme-dependent)|BRANCH_CONFIGURATION|Boolean||
|
215
|
+
|sdk|Passed as -sdk to xcodebuild|BRANCH_SDK|Boolean|iphonesimulator|
|
216
|
+
|podfile|Path to the Podfile for the project|BRANCH_PODFILE|Boolean||
|
217
|
+
|cartfile|Path to the Cartfile for the project|BRANCH_CARTFILE|Boolean||
|
218
|
+
|clean|Clean before attempting to build|BRANCH_CLEAN||true|
|
219
|
+
|header_only|Write a report header to standard output and exit|BRANCH_HEADER_ONLY||false|
|
220
|
+
|pod_repo_update|Update the local podspec repo before installing|BRANCH_POD_REPO_UPDATE||true|
|
221
|
+
|out|Report output path|BRANCH_REPORT_PATH|Boolean|./report.txt|
|
209
222
|
|
210
|
-
```bash
|
211
|
-
bundle exec fastlane setup_carthage
|
212
|
-
```
|
213
223
|
|
214
|
-
### validate
|
215
224
|
|
216
|
-
This lane validates the Universal Link configuration for the BranchPluginExample
|
217
|
-
project in [examples/ios/BranchPluginExample](./examples/ios/BranchPluginExample).
|
218
225
|
|
219
|
-
```bash
|
220
|
-
bundle exec fastlane validate
|
221
|
-
```
|
222
226
|
|
227
|
+
<!-- END ACTION REFERENCE -->
|
223
228
|
|
224
229
|
## Run tests for this plugin
|
225
230
|
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "branch_io_cli"
|
2
|
+
require "fastlane/plugin/branch/config_item"
|
3
|
+
require "fastlane/plugin/branch/fastlane_format"
|
4
|
+
|
5
|
+
include Fastlane::Branch::FastlaneDescriptionFormat
|
6
|
+
|
7
|
+
module Fastlane
|
8
|
+
module Actions
|
9
|
+
class BranchReportAction < Action
|
10
|
+
def self.run(params)
|
11
|
+
config = BranchIOCLI::Configuration::ReportConfiguration.wrapper params, false
|
12
|
+
BranchIOCLI::Commands::ReportCommand.new(config).run!
|
13
|
+
rescue StandardError => e
|
14
|
+
UI.user_error! "Error in BranchReportAction: #{e.message}\n#{e.backtrace}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.description
|
18
|
+
"TODO"
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.authors
|
22
|
+
[
|
23
|
+
"Branch <integrations@branch.io>",
|
24
|
+
"Jimmy Dee <jgvdthree@gmail.com>"
|
25
|
+
]
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.details
|
29
|
+
render :report_description
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.example_code
|
33
|
+
[
|
34
|
+
]
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.available_options
|
38
|
+
BranchIOCLI::Configuration::ReportConfiguration.available_options.map do |option|
|
39
|
+
FastlaneCore::ConfigItem.from_branch_option(option)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.is_supported?(platform)
|
44
|
+
platform == :ios
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.category
|
48
|
+
:project
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,18 +1,27 @@
|
|
1
1
|
require "branch_io_cli"
|
2
|
+
require "fastlane/plugin/branch/config_item"
|
3
|
+
require "fastlane/plugin/branch/fastlane_format"
|
4
|
+
|
5
|
+
include Fastlane::Branch::FastlaneDescriptionFormat
|
2
6
|
|
3
7
|
module Fastlane
|
4
8
|
module Actions
|
5
9
|
class SetupBranchAction < Action
|
6
10
|
def self.run(params)
|
7
11
|
params.load_configuration_file "Branchfile"
|
8
|
-
|
9
|
-
|
12
|
+
# second arg false: Don't add default values or env. vars. Let Fastlane
|
13
|
+
# handle that. This is necessary to work with the Branchfile.
|
14
|
+
config = BranchIOCLI::Configuration::SetupConfiguration.wrapper params, false
|
15
|
+
BranchIOCLI::Commands::SetupCommand.new(config).run!
|
10
16
|
rescue StandardError => e
|
11
17
|
UI.user_error! "Error in SetupBranchAction: #{e.message}\n#{e.backtrace}"
|
12
18
|
end
|
13
19
|
|
14
20
|
def self.description
|
15
|
-
"
|
21
|
+
"This action automatically configures Xcode projects that use the Branch SDK " \
|
22
|
+
"for Universal Links and custom URI handling. It modifies Xcode project settings and " \
|
23
|
+
"entitlements as well as Info.plist files. It also validates the Universal Link " \
|
24
|
+
"configuration for Xcode projects."
|
16
25
|
end
|
17
26
|
|
18
27
|
def self.authors
|
@@ -23,121 +32,27 @@ module Fastlane
|
|
23
32
|
end
|
24
33
|
|
25
34
|
def self.details
|
26
|
-
|
27
|
-
"for Universal Links and custom URI handling. It modifies Xcode project settings and " \
|
28
|
-
"entitlements as well as Info.plist files. It also validates the Universal Link " \
|
29
|
-
"configuration for Xcode projects."
|
35
|
+
render :setup_description
|
30
36
|
end
|
31
37
|
|
32
38
|
def self.example_code
|
33
39
|
[
|
34
40
|
<<-EOF
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
41
|
+
setup_branch(
|
42
|
+
live_key: "key_live_xxxx",
|
43
|
+
test_key: "key_test_yyyy",
|
44
|
+
app_link_subdomain: "myapp",
|
45
|
+
uri_scheme: "myscheme",
|
46
|
+
xcodeproj: "MyIOSApp.xcodeproj"
|
47
|
+
)
|
42
48
|
EOF
|
43
49
|
]
|
44
50
|
end
|
45
51
|
|
46
52
|
def self.available_options
|
47
|
-
|
48
|
-
FastlaneCore::ConfigItem.
|
49
|
-
|
50
|
-
description: "Path to an Xcode project to modify",
|
51
|
-
optional: true,
|
52
|
-
type: String),
|
53
|
-
FastlaneCore::ConfigItem.new(key: :live_key,
|
54
|
-
env_name: "BRANCH_LIVE_KEY",
|
55
|
-
description: "The Branch live key for your app",
|
56
|
-
optional: true,
|
57
|
-
type: String),
|
58
|
-
FastlaneCore::ConfigItem.new(key: :test_key,
|
59
|
-
env_name: "BRANCH_TEST_KEY",
|
60
|
-
description: "The Branch test key for your app",
|
61
|
-
optional: true,
|
62
|
-
type: String),
|
63
|
-
FastlaneCore::ConfigItem.new(key: :domains,
|
64
|
-
env_name: "BRANCH_DOMAINS",
|
65
|
-
description: "Branch (and/or non-Branch) Universal Link/App Link domains to add (comma-separated list or array)",
|
66
|
-
optional: true,
|
67
|
-
is_string: false),
|
68
|
-
FastlaneCore::ConfigItem.new(key: :app_link_subdomain,
|
69
|
-
env_name: "BRANCH_APP_LINK_SUBDOMAIN",
|
70
|
-
description: "app.link subdomain",
|
71
|
-
optional: true,
|
72
|
-
type: String),
|
73
|
-
FastlaneCore::ConfigItem.new(key: :uri_scheme,
|
74
|
-
env_name: "BRANCH_URI_SCHEME",
|
75
|
-
description: "Custom URI scheme used with Branch",
|
76
|
-
optional: true,
|
77
|
-
type: String),
|
78
|
-
FastlaneCore::ConfigItem.new(key: :target,
|
79
|
-
env_name: "BRANCH_TARGET",
|
80
|
-
description: "Name of the target in the Xcode project to modify (iOS only)",
|
81
|
-
optional: true,
|
82
|
-
type: String),
|
83
|
-
FastlaneCore::ConfigItem.new(key: :validate,
|
84
|
-
env_name: "BRANCH_VALIDATE",
|
85
|
-
description: "Determines whether to validate the resulting Universal Link configuration before modifying the project",
|
86
|
-
default_value: true,
|
87
|
-
is_string: false),
|
88
|
-
FastlaneCore::ConfigItem.new(key: :force,
|
89
|
-
env_name: "BRANCH_FORCE_UPDATE",
|
90
|
-
description: "Update project(s) even if Universal Link validation fails",
|
91
|
-
optional: true,
|
92
|
-
default_value: false,
|
93
|
-
is_string: false),
|
94
|
-
FastlaneCore::ConfigItem.new(key: :commit,
|
95
|
-
env_name: "BRANCH_COMMIT_CHANGES",
|
96
|
-
description: "Set to true to commit changes to Git; set to a string to commit with a custom message",
|
97
|
-
optional: true,
|
98
|
-
default_value: false,
|
99
|
-
is_string: false),
|
100
|
-
FastlaneCore::ConfigItem.new(key: :frameworks,
|
101
|
-
env_name: "BRANCH_FRAMEWORKS",
|
102
|
-
description: "A list of system frameworks to add to the target that uses the Branch SDK (iOS only)",
|
103
|
-
optional: true,
|
104
|
-
default_value: [],
|
105
|
-
type: Array),
|
106
|
-
FastlaneCore::ConfigItem.new(key: :add_sdk,
|
107
|
-
env_name: "BRANCH_ADD_SDK",
|
108
|
-
description: "Set to false to disable automatic integration of the Branch SDK",
|
109
|
-
optional: true,
|
110
|
-
default_value: true,
|
111
|
-
is_string: false),
|
112
|
-
FastlaneCore::ConfigItem.new(key: :podfile,
|
113
|
-
env_name: "BRANCH_PODFILE",
|
114
|
-
description: "Path to a Podfile to update (iOS only)",
|
115
|
-
optional: true,
|
116
|
-
type: String),
|
117
|
-
FastlaneCore::ConfigItem.new(key: :patch_source,
|
118
|
-
env_name: "BRANCH_PATCH_SOURCE",
|
119
|
-
description: "Set to false to disable automatic source-code patching",
|
120
|
-
optional: true,
|
121
|
-
default_value: true,
|
122
|
-
is_string: false),
|
123
|
-
FastlaneCore::ConfigItem.new(key: :pod_repo_update,
|
124
|
-
env_name: "BRANCH_POD_REPO_UPDATE",
|
125
|
-
description: "Set to false to disable update of local podspec repo before pod install",
|
126
|
-
optional: true,
|
127
|
-
default_value: true,
|
128
|
-
is_string: false),
|
129
|
-
FastlaneCore::ConfigItem.new(key: :cartfile,
|
130
|
-
env_name: "BRANCH_CARTFILE",
|
131
|
-
description: "Path to a Cartfile to update (iOS only)",
|
132
|
-
optional: true,
|
133
|
-
type: String),
|
134
|
-
FastlaneCore::ConfigItem.new(key: :carthage_command,
|
135
|
-
env_name: "BRANCH_CARTHAGE_COMMAND",
|
136
|
-
description: "Command to use when installing with Carthage",
|
137
|
-
optional: true,
|
138
|
-
default_value: "update --platform ios",
|
139
|
-
type: String)
|
140
|
-
]
|
53
|
+
BranchIOCLI::Configuration::SetupConfiguration.available_options.map do |option|
|
54
|
+
FastlaneCore::ConfigItem.from_branch_option(option)
|
55
|
+
end
|
141
56
|
end
|
142
57
|
|
143
58
|
def self.is_supported?(platform)
|
@@ -1,11 +1,15 @@
|
|
1
1
|
require "branch_io_cli"
|
2
|
+
require "fastlane/plugin/branch/config_item"
|
3
|
+
require "fastlane/plugin/branch/fastlane_format"
|
4
|
+
|
5
|
+
include Fastlane::Branch::FastlaneDescriptionFormat
|
2
6
|
|
3
7
|
module Fastlane
|
4
8
|
module Actions
|
5
9
|
class ValidateUniversalLinksAction < Action
|
6
10
|
def self.run(params)
|
7
|
-
|
8
|
-
BranchIOCLI::Commands::ValidateCommand.new(
|
11
|
+
config = BranchIOCLI::Configuration::ValidateConfiguration.wrapper params, false
|
12
|
+
BranchIOCLI::Commands::ValidateCommand.new(config).run! == 0
|
9
13
|
rescue StandardError => e
|
10
14
|
UI.user_error! "Error in ValidateUniversalLinksAction: #{e.message}\n#{e.backtrace}"
|
11
15
|
false
|
@@ -23,50 +27,26 @@ module Fastlane
|
|
23
27
|
end
|
24
28
|
|
25
29
|
def self.details
|
26
|
-
|
27
|
-
"file by ensuring that the development team and bundle identifier combination is found in the " \
|
28
|
-
"domain's apple-app-site-association file."
|
30
|
+
render :validate_description
|
29
31
|
end
|
30
32
|
|
31
33
|
def self.example_code
|
32
34
|
[
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
validate_universal_links(xcodeproj: "MyProject.xcodeproj")
|
38
|
-
EOF,
|
39
|
-
<<-EOF
|
40
|
-
validate_universal_links(xcodeproj: "MyProject.xcodeproj", target: "MyProject")
|
41
|
-
EOF,
|
42
|
-
<<-EOF
|
43
|
-
validate_universal_links(domains: %w{example.com www.example.com})
|
44
|
-
EOF
|
35
|
+
"validate_universal_links",
|
36
|
+
%{validate_universal_links(xcodeproj: "MyProject.xcodeproj")},
|
37
|
+
%{validate_universal_links(xcodeproj: "MyProject.xcodeproj", target: "MyProject")},
|
38
|
+
%{validate_universal_links(domains: %w{example.com www.example.com})}
|
45
39
|
]
|
46
40
|
end
|
47
41
|
|
48
42
|
def self.available_options
|
49
|
-
|
50
|
-
FastlaneCore::ConfigItem.
|
51
|
-
|
52
|
-
description: "Path to an Xcode project to validate",
|
53
|
-
optional: true,
|
54
|
-
type: String),
|
55
|
-
FastlaneCore::ConfigItem.new(key: :target,
|
56
|
-
env_name: "BRANCH_TARGET",
|
57
|
-
description: "Name of the target in the Xcode project to validate",
|
58
|
-
optional: true,
|
59
|
-
type: String),
|
60
|
-
FastlaneCore::ConfigItem.new(key: :domains,
|
61
|
-
env_name: "BRANCH_DOMAINS",
|
62
|
-
description: "Branch (and/or non-Branch) Universal Link/App Link domains expected to be present in project (comma-separated list or array)",
|
63
|
-
optional: true,
|
64
|
-
is_string: false)
|
65
|
-
]
|
43
|
+
BranchIOCLI::Configuration::ValidateConfiguration.available_options.map do |option|
|
44
|
+
FastlaneCore::ConfigItem.from_branch_option(option)
|
45
|
+
end
|
66
46
|
end
|
67
47
|
|
68
48
|
def self.return_value
|
69
|
-
|
49
|
+
BranchIOCLI::Configuration::ValidateConfiguration.return_value
|
70
50
|
end
|
71
51
|
|
72
52
|
def self.is_supported?(platform)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module FastlaneCore
|
2
|
+
class ConfigItem
|
3
|
+
class << self
|
4
|
+
def from_branch_option(option)
|
5
|
+
new(
|
6
|
+
key: option.name,
|
7
|
+
env_name: option.env_name,
|
8
|
+
description: option.description,
|
9
|
+
default_value: option.default_value,
|
10
|
+
type: option.type
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "branch_io_cli/format"
|
2
|
+
|
3
|
+
module Fastlane
|
4
|
+
module Branch
|
5
|
+
module FastlaneMarkdownFormat
|
6
|
+
include BranchIOCLI::Format::MarkdownFormat
|
7
|
+
|
8
|
+
def local_render(template)
|
9
|
+
path = File.expand_path(File.join("..", "..", "..", "..", "..", "assets", "templates", "#{template}.erb"), __FILE__)
|
10
|
+
ERB.new(File.read(path)).result binding
|
11
|
+
end
|
12
|
+
|
13
|
+
def table_option(option)
|
14
|
+
"|#{option.name}|#{option.description}|#{option.env_name}|#{option.type ? 'Boolean' : option.type}|#{option.default_value}|"
|
15
|
+
end
|
16
|
+
|
17
|
+
def option(opt)
|
18
|
+
highlight opt.to_s
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
module FastlaneDescriptionFormat
|
23
|
+
include BranchIOCLI::Format
|
24
|
+
|
25
|
+
def option(opt)
|
26
|
+
highlight opt.to_s
|
27
|
+
end
|
28
|
+
|
29
|
+
def highlight(text)
|
30
|
+
text
|
31
|
+
end
|
32
|
+
|
33
|
+
def italics(text)
|
34
|
+
text
|
35
|
+
end
|
36
|
+
|
37
|
+
def header(text, level = 1)
|
38
|
+
"#{text}: "
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-branch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Branch
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-11-
|
12
|
+
date: 2017-11-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: branch_io_cli
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 0.12.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: 0.12.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: pry
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,9 +162,11 @@ files:
|
|
162
162
|
- LICENSE
|
163
163
|
- README.md
|
164
164
|
- lib/fastlane/plugin/branch.rb
|
165
|
+
- lib/fastlane/plugin/branch/actions/branch_report_action.rb
|
165
166
|
- lib/fastlane/plugin/branch/actions/setup_branch_action.rb
|
166
167
|
- lib/fastlane/plugin/branch/actions/validate_universal_links_action.rb
|
167
|
-
- lib/fastlane/plugin/branch/
|
168
|
+
- lib/fastlane/plugin/branch/config_item.rb
|
169
|
+
- lib/fastlane/plugin/branch/fastlane_format.rb
|
168
170
|
- lib/fastlane/plugin/branch/version.rb
|
169
171
|
homepage: https://github.com/BranchMetrics/fastlane-plugin-branch
|
170
172
|
licenses:
|
@@ -186,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
188
|
version: '0'
|
187
189
|
requirements: []
|
188
190
|
rubyforge_project:
|
189
|
-
rubygems_version: 2.
|
191
|
+
rubygems_version: 2.7.2
|
190
192
|
signing_key:
|
191
193
|
specification_version: 4
|
192
194
|
summary: Adds Branch keys, custom URI schemes and domains to iOS and Android projects.
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Fastlane
|
2
|
-
module Helper
|
3
|
-
class BranchOptions
|
4
|
-
attr_reader :params
|
5
|
-
|
6
|
-
# :param: params [FastlaneCore::Configuration] Params from an action
|
7
|
-
def initialize(params)
|
8
|
-
@params = params
|
9
|
-
end
|
10
|
-
|
11
|
-
def method_missing(method_sym, *arguments, &block)
|
12
|
-
return params[method_sym]
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|