branch_io_cli 0.12.1 → 0.12.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -7
- data/lib/assets/completions/completion.bash +1 -1
- data/lib/assets/templates/report_description.erb +3 -2
- data/lib/assets/templates/validate_description.erb +11 -5
- data/lib/branch_io_cli/command/setup_command.rb +6 -2
- data/lib/branch_io_cli/command/validate_command.rb +27 -16
- data/lib/branch_io_cli/configuration/validate_configuration.rb +7 -0
- data/lib/branch_io_cli/helper/ios_helper.rb +4 -1
- data/lib/branch_io_cli/helper/patch_helper.rb +2 -1
- data/lib/branch_io_cli/helper/report_helper.rb +11 -8
- data/lib/branch_io_cli/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fdec6cc2dfb747d21b5289bb907cdc3a0726d9b09cc489e7fa1d345da843745
|
4
|
+
data.tar.gz: af5b660dceb286f2f0d2b923944cfd447812d2be25243dfeef4beabbabf68a4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c134396f2768b91d8a157967f524136cd10a4d3b4b8358ce15830a6c99250af358fdb606c7192092dda158bed11d69ca94d9a9dcd30b78985e325ee9155514ba
|
7
|
+
data.tar.gz: 734523ffb51d4615e456056b81f8ecdff2c73278970f1114487a7b9765ba32a94348d1921d6c2148374d94796f411f98800a599ebd1f7b95efa346000fd4d9da
|
data/README.md
CHANGED
@@ -208,11 +208,17 @@ Only app targets are supported for this command. By default, it will validate th
|
|
208
208
|
If your project has multiple app targets, specify the `--target` option to validate other
|
209
209
|
targets.
|
210
210
|
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
211
|
+
By default, all build configurations in the project are validated. To validate a different list
|
212
|
+
of configurations, including a single configuration, specify the `--configurations` option.
|
213
|
+
|
214
|
+
If `--domains` is specified, the list of Universal Link domains in the Associated
|
215
|
+
Domains entitlement must exactly match this list, without regard to order, for all
|
216
|
+
configurations under validation. If no `--domains` are provided, validation passes
|
217
|
+
if at least one Universal Link domain is configured for each configuration and passes
|
218
|
+
validation, and no Universal Link domain is present in anyconfiguration that does not
|
219
|
+
pass validation.
|
220
|
+
|
221
|
+
All parameters are optional.
|
216
222
|
|
217
223
|
See https://github.com/BranchMetrics/branch_io_cli#validate-command for more information.
|
218
224
|
|
@@ -227,6 +233,7 @@ See https://github.com/BranchMetrics/branch_io_cli#validate-command for more inf
|
|
227
233
|
|-D, --domains example.com,www.example.com|Comma-separated list of domains to validate (Branch domains or non-Branch domains) (default: [])|BRANCH_DOMAINS|
|
228
234
|
|--xcodeproj MyProject.xcodeproj|Path to an Xcode project to update|BRANCH_XCODEPROJ|
|
229
235
|
|--target MyAppTarget|Name of a target to validate in the Xcode project|BRANCH_TARGET|
|
236
|
+
|--configurations Debug,Release|Comma-separated list of configurations to validate (default: all)|BRANCH_CONFIGURATIONS|
|
230
237
|
|
231
238
|
|
232
239
|
|
@@ -238,11 +245,12 @@ See https://github.com/BranchMetrics/branch_io_cli#validate-command for more inf
|
|
238
245
|
branch_io report [OPTIONS]
|
239
246
|
```
|
240
247
|
|
241
|
-
_Work in progress_
|
242
|
-
|
243
248
|
This command optionally cleans and then builds a workspace or project, generating a verbose
|
244
249
|
report with additional diagnostic information suitable for opening a support ticket.
|
245
250
|
|
251
|
+
Use the `--header-only` option to output only a brief diagnostic report without
|
252
|
+
building.
|
253
|
+
|
246
254
|
|
247
255
|
#### Options
|
248
256
|
|
@@ -17,7 +17,7 @@ _branch_io_complete()
|
|
17
17
|
|
18
18
|
report_opts="--workspace --xcodeproj --scheme --target --configuration --sdk --podfile --cartfile --no-clean -H --header-only --no-pod-repo-update -o --out"
|
19
19
|
|
20
|
-
validate_opts="-D --domains --xcodeproj --target"
|
20
|
+
validate_opts="-D --domains --xcodeproj --target --configurations"
|
21
21
|
|
22
22
|
|
23
23
|
if [[ ${cur} == -* ]] ; then
|
@@ -1,4 +1,5 @@
|
|
1
|
-
<%= italics 'Work in progress' %>
|
2
|
-
|
3
1
|
This command optionally cleans and then builds a workspace or project, generating a verbose
|
4
2
|
report with additional diagnostic information suitable for opening a support ticket.
|
3
|
+
|
4
|
+
Use the <%= option :header_only %> option to output only a brief diagnostic report without
|
5
|
+
building.
|
@@ -9,10 +9,16 @@ Only app targets are supported for this command. By default, it will validate th
|
|
9
9
|
If your project has multiple app targets, specify the <%= option :target %> option to validate other
|
10
10
|
targets.
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
By default, all build configurations in the project are validated. To validate a different list
|
13
|
+
of configurations, including a single configuration, specify the <%= option :configurations %> option.
|
14
|
+
|
15
|
+
If <%= option :domains %> is specified, the list of Universal Link domains in the Associated
|
16
|
+
Domains entitlement must exactly match this list, without regard to order, for all
|
17
|
+
configurations under validation. If no <%= option :domains %> are provided, validation passes
|
18
|
+
if at least one Universal Link domain is configured for each configuration and passes
|
19
|
+
validation, and no Universal Link domain is present in anyconfiguration that does not
|
20
|
+
pass validation.
|
21
|
+
|
22
|
+
All parameters are optional.
|
17
23
|
|
18
24
|
See https://github.com/BranchMetrics/branch_io_cli#validate-command for more information.
|
@@ -45,8 +45,12 @@ module BranchIOCLI
|
|
45
45
|
helper.add_branch_universal_link_domains_to_info_plist @domains if is_app_target
|
46
46
|
helper.ensure_uri_scheme_in_info_plist if is_app_target # does nothing if already present
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
if is_app_target
|
49
|
+
config.xcodeproj.build_configurations.each do |c|
|
50
|
+
new_path = helper.add_universal_links_to_project @domains, false, c.name
|
51
|
+
sh ["git", "add", new_path] if config.commit && new_path
|
52
|
+
end
|
53
|
+
end
|
50
54
|
|
51
55
|
config_helper.target.add_system_frameworks config.frameworks unless config.frameworks.nil? || config.frameworks.empty?
|
52
56
|
|
@@ -4,28 +4,39 @@ module BranchIOCLI
|
|
4
4
|
def run!
|
5
5
|
valid = true
|
6
6
|
|
7
|
-
|
8
|
-
domains_valid = helper.validate_project_domains(config.domains)
|
7
|
+
configurations = config.configurations || config.xcodeproj.build_configurations.map(&:name)
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
configurations.each do |configuration|
|
10
|
+
message = "Validating #{configuration} configuration"
|
11
|
+
say "\n<%= color('#{message}', [BOLD, CYAN]) %>\n\n"
|
12
|
+
|
13
|
+
config_valid = true
|
14
|
+
|
15
|
+
unless config.domains.blank?
|
16
|
+
domains_valid = helper.validate_project_domains(config.domains, configuration)
|
17
|
+
|
18
|
+
if domains_valid
|
19
|
+
say "Project domains match :domains parameter: ✅"
|
20
|
+
else
|
21
|
+
say "Project domains do not match specified :domains"
|
22
|
+
helper.errors.each { |error| say " #{error}" }
|
23
|
+
end
|
24
|
+
|
25
|
+
config_valid &&= domains_valid
|
15
26
|
end
|
16
27
|
|
17
|
-
|
18
|
-
|
28
|
+
entitlements_valid = helper.validate_team_and_bundle_ids_from_aasa_files [], false, configuration
|
29
|
+
unless entitlements_valid
|
30
|
+
say "Universal Link configuration failed validation for #{configuration} configuration."
|
31
|
+
helper.errors.each { |error| say " #{error}" }
|
32
|
+
end
|
19
33
|
|
20
|
-
|
21
|
-
unless configuration_valid
|
22
|
-
say "Universal Link configuration failed validation."
|
23
|
-
helper.errors.each { |error| say " #{error}" }
|
24
|
-
end
|
34
|
+
config_valid &&= entitlements_valid
|
25
35
|
|
26
|
-
|
36
|
+
say "Universal Link configuration passed validation for #{configuration} configuration. ✅" if config_valid
|
27
37
|
|
28
|
-
|
38
|
+
valid &&= config_valid
|
39
|
+
end
|
29
40
|
|
30
41
|
valid ? 0 : 1
|
31
42
|
end
|
@@ -31,6 +31,12 @@ module BranchIOCLI
|
|
31
31
|
description: "Name of a target to validate in the Xcode project",
|
32
32
|
type: String,
|
33
33
|
example: "MyAppTarget"
|
34
|
+
),
|
35
|
+
Option.new(
|
36
|
+
name: :configurations,
|
37
|
+
description: "Comma-separated list of configurations to validate (default: all)",
|
38
|
+
type: Array,
|
39
|
+
example: "Debug,Release"
|
34
40
|
)
|
35
41
|
]
|
36
42
|
end
|
@@ -52,6 +58,7 @@ module BranchIOCLI
|
|
52
58
|
<%= color('Xcode project:', BOLD) %> #{xcodeproj_path}
|
53
59
|
<%= color('Target:', BOLD) %> #{target.name}
|
54
60
|
<%= color('Domains:', BOLD) %> #{domains || '(none)'}
|
61
|
+
<%= color('Configurations:', BOLD) %> #{(configurations || xcodeproj.build_configurations.map(&:name)).join(',')}
|
55
62
|
EOF
|
56
63
|
end
|
57
64
|
end
|
@@ -392,7 +392,10 @@ module BranchIOCLI
|
|
392
392
|
entitlements = File.open(entitlements_path) { |f| Plist.parse_xml f }
|
393
393
|
raise "Failed to parse entitlements file #{entitlements_path}" if entitlements.nil?
|
394
394
|
|
395
|
-
entitlements[ASSOCIATED_DOMAINS]
|
395
|
+
associated_domains = entitlements[ASSOCIATED_DOMAINS]
|
396
|
+
return [] if associated_domains.nil?
|
397
|
+
|
398
|
+
associated_domains.select { |d| d =~ /^applinks:/ }.map { |d| d.sub(/^applinks:/, "") }
|
396
399
|
end
|
397
400
|
|
398
401
|
def add_cocoapods(options)
|
@@ -7,7 +7,8 @@ module BranchIOCLI
|
|
7
7
|
extend PatternPatch::Methods
|
8
8
|
|
9
9
|
# Set the patch_dir for PatternPatch
|
10
|
-
|
10
|
+
self.patch_dir = File.expand_path(File.join('..', '..', '..', 'assets', 'patches'), __FILE__)
|
11
|
+
self.trim_mode = "<>"
|
11
12
|
|
12
13
|
class << self
|
13
14
|
def config
|
@@ -61,7 +61,6 @@ module BranchIOCLI
|
|
61
61
|
|
62
62
|
bundle_identifier = config.target.expanded_build_setting "PRODUCT_BUNDLE_IDENTIFIER", configuration
|
63
63
|
dev_team = config.target.expanded_build_setting "DEVELOPMENT_TEAM", configuration
|
64
|
-
entitlements_path = config.target.expanded_build_setting "CODE_SIGN_ENTITLEMENTS", configuration
|
65
64
|
|
66
65
|
header += "\nTarget #{config.target.name}:\n"
|
67
66
|
header += " Bundle identifier: #{bundle_identifier || '(none)'}\n"
|
@@ -76,7 +75,10 @@ module BranchIOCLI
|
|
76
75
|
header += " #{c}: #{config.target.expanded_build_setting 'INFOPLIST_FILE', c}\n"
|
77
76
|
end
|
78
77
|
|
79
|
-
header += " Entitlements file
|
78
|
+
header += " Entitlements file\n"
|
79
|
+
configurations.each do |c|
|
80
|
+
header += " #{c}: #{config.target.expanded_build_setting 'CODE_SIGN_ENTITLEMENTS', c}\n"
|
81
|
+
end
|
80
82
|
|
81
83
|
if config.podfile_path
|
82
84
|
begin
|
@@ -196,12 +198,13 @@ module BranchIOCLI
|
|
196
198
|
|
197
199
|
unless config.target.extension_target_type?
|
198
200
|
begin
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
201
|
+
configurations = config.configuration ? [config.configuration] : config.configurations_from_scheme
|
202
|
+
configurations.each do |configuration|
|
203
|
+
domains = helper.domains_from_project configuration
|
204
|
+
report += " Universal Link domains (entitlements:#{configuration}):\n"
|
205
|
+
domains.each do |domain|
|
206
|
+
report += " #{domain}\n"
|
207
|
+
end
|
205
208
|
end
|
206
209
|
rescue StandardError => e
|
207
210
|
report += " (Failed to get Universal Link domains from entitlements file: #{e.message})\n"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: branch_io_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.12.
|
4
|
+
version: 0.12.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Branch
|
@@ -59,14 +59,14 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.5.
|
62
|
+
version: 0.5.4
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.5.
|
69
|
+
version: 0.5.4
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: plist
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|