branch_io_cli 0.12.1 → 0.12.2
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 +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
|