pod-builder 2.0.0.beta.19 → 2.0.0.beta.21
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/.gitignore +2 -2
- data/Example/{Frameworks → PodBuilder}/.gitignore +0 -0
- data/Example/{Frameworks → PodBuilder}/.pod_builder/pod_builder +0 -0
- data/Example/{Frameworks → PodBuilder}/PodBuilder.json +0 -0
- data/Example/{Frameworks → PodBuilder}/Podfile +0 -0
- data/Example/{Frameworks → PodBuilder}/Podfile.restore +0 -0
- data/Example/Podfile +27 -29
- data/Example/Podfile.lock +42 -42
- data/README.md +13 -13
- data/exe/pod_builder +27 -16
- data/lib/pod_builder/command/build.rb +28 -159
- data/lib/pod_builder/command/build_all.rb +2 -2
- data/lib/pod_builder/command/clean.rb +34 -53
- data/lib/pod_builder/command/clear_lldbinit.rb +6 -2
- data/lib/pod_builder/command/deintegrate.rb +27 -6
- data/lib/pod_builder/command/generate_lfs.rb +1 -1
- data/lib/pod_builder/command/generate_podspec.rb +3 -2
- data/lib/pod_builder/command/info.rb +1 -1
- data/lib/pod_builder/command/init.rb +37 -14
- data/lib/pod_builder/command/install_sources.rb +20 -13
- data/lib/pod_builder/command/none.rb +2 -2
- data/lib/pod_builder/command/restore_all.rb +4 -4
- data/lib/pod_builder/command/switch.rb +56 -14
- data/lib/pod_builder/command/sync_podfile.rb +3 -2
- data/lib/pod_builder/command/update.rb +5 -6
- data/lib/pod_builder/command/update_lldbinit.rb +10 -8
- data/lib/pod_builder/configuration.rb +27 -7
- data/lib/pod_builder/core.rb +35 -9
- data/lib/pod_builder/info.rb +11 -11
- data/lib/pod_builder/install.rb +178 -184
- data/lib/pod_builder/licenses.rb +4 -4
- data/lib/pod_builder/podfile.rb +226 -85
- data/lib/pod_builder/podfile/post_actions.rb +9 -14
- data/lib/pod_builder/podfile_cp.rb +93 -0
- data/lib/pod_builder/podfile_item.rb +41 -20
- data/lib/pod_builder/podspec.rb +33 -16
- data/lib/pod_builder/rome/post_install.rb +121 -129
- data/lib/pod_builder/rome/pre_install.rb +1 -1
- data/lib/pod_builder/templates/build_podfile.template +2 -2
- data/lib/pod_builder/version.rb +1 -1
- metadata +8 -7
data/lib/pod_builder/licenses.rb
CHANGED
@@ -12,19 +12,19 @@
|
|
12
12
|
|
13
13
|
if current_licenses.count > 0
|
14
14
|
licenses_header = current_licenses.shift
|
15
|
-
raise "
|
15
|
+
raise "\n\nUnexpected license found in header".red if licenses_header.has_key?("License")
|
16
16
|
end
|
17
17
|
if current_licenses.count > 0
|
18
18
|
license_footer = current_licenses.pop
|
19
|
-
raise "
|
19
|
+
raise "\n\nUnexpected license found in footer".red if license_footer.has_key?("License")
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
if licenses.count > 0
|
24
24
|
licenses_header = licenses.shift
|
25
|
-
raise "
|
25
|
+
raise "\n\nUnexpected license found in header".red if licenses_header.has_key?("License")
|
26
26
|
license_footer = licenses.pop
|
27
|
-
raise "
|
27
|
+
raise "\n\nUnexpected license found in footer".red if license_footer.has_key?("License")
|
28
28
|
|
29
29
|
lincenses_titles = licenses.map { |x| x["Title"] }
|
30
30
|
current_licenses.select! { |x| !lincenses_titles.include?(x["Title"]) }
|
data/lib/pod_builder/podfile.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
|
+
require 'json'
|
1
2
|
module PodBuilder
|
2
3
|
class Podfile
|
3
4
|
PODBUILDER_LOCK_ACTION = ["raise \"\\n🚨 Do not launch 'pod install' manually, use `pod_builder` instead!\\n\" if !File.exist?('pod_builder.lock')"].freeze
|
4
|
-
POST_INSTALL_ACTIONS = ["require 'pod_builder/podfile/post_actions'", "PodBuilder::Podfile::
|
5
|
+
POST_INSTALL_ACTIONS = ["require 'pod_builder/podfile/post_actions'", "PodBuilder::Podfile::pod_builder_post_process"].freeze
|
5
6
|
|
6
7
|
PRE_INSTALL_ACTIONS = ["Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_duplicate_framework_and_library_names) {}"].freeze
|
7
8
|
private_constant :PRE_INSTALL_ACTIONS
|
8
9
|
|
9
10
|
def self.from_podfile_items(items, analyzer, build_configuration)
|
10
|
-
raise "
|
11
|
+
raise "\n\nno items".red unless items.count > 0
|
11
12
|
|
12
13
|
sources = analyzer.sources
|
13
14
|
|
@@ -15,6 +16,10 @@ module PodBuilder
|
|
15
16
|
podfile = File.read("#{cwd}/templates/build_podfile.template")
|
16
17
|
|
17
18
|
platform = analyzer.instance_variable_get("@result").targets.first.platform
|
19
|
+
|
20
|
+
install_using_frameworks = analyzer.podfile.root_target_definitions.map(&:uses_frameworks?).uniq.first
|
21
|
+
podfile.sub!("%%%use_frameworks%%%", install_using_frameworks ? "use_frameworks!" : "")
|
22
|
+
|
18
23
|
podfile.sub!("%%%platform_name%%%", platform.name.to_s)
|
19
24
|
podfile.sub!("%%%deployment_version%%%", platform.deployment_target.version)
|
20
25
|
|
@@ -49,7 +54,7 @@ module PodBuilder
|
|
49
54
|
|
50
55
|
if Configuration.build_system == "Legacy"
|
51
56
|
build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = "NO"
|
52
|
-
raise "\n\nCan't enable library evolution support with legacy build system!" if Configuration.library_evolution_support
|
57
|
+
raise "\n\nCan't enable library evolution support with legacy build system!".red if Configuration.library_evolution_support
|
53
58
|
elsif Configuration.library_evolution_support
|
54
59
|
build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = "YES"
|
55
60
|
end
|
@@ -151,7 +156,11 @@ module PodBuilder
|
|
151
156
|
File.write(podfile_restore_path, podfile_content.join("\n"))
|
152
157
|
end
|
153
158
|
|
154
|
-
def self.write_prebuilt(all_buildable_items, analyzer)
|
159
|
+
def self.write_prebuilt(all_buildable_items, analyzer)
|
160
|
+
if Configuration.react_native_project
|
161
|
+
return write_prebuilt_react_native(all_buildable_items, analyzer)
|
162
|
+
end
|
163
|
+
|
155
164
|
puts "Updating Application Podfile".yellow
|
156
165
|
|
157
166
|
explicit_deps = analyzer.explicit_pods()
|
@@ -171,45 +180,33 @@ module PodBuilder
|
|
171
180
|
next
|
172
181
|
end
|
173
182
|
|
174
|
-
if pod_name = pod_definition_in(line, true)
|
183
|
+
if pod_name = pod_definition_in(line, true)
|
175
184
|
if podfile_item = all_buildable_items.detect { |x| x.name == pod_name }
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
item
|
195
|
-
else
|
196
|
-
item = all_buildable_items.detect { |t| x == t.root_name }
|
197
|
-
end
|
198
|
-
}.compact
|
199
|
-
|
200
|
-
non_explicit_dependencies.each do |dep|
|
201
|
-
dep_item = all_buildable_items.detect { |x| x.name == dep.name }
|
202
|
-
|
203
|
-
if Podspec.include?(dep_item.root_name)
|
204
|
-
pod_name = dep_item.prebuilt_entry(false)
|
205
|
-
pod_name.gsub!(dep.name, dep.root_name)
|
206
|
-
prebuilt_lines.push("#{line.detect_indentation}#{pod_name}#{marker}\n")
|
207
|
-
end
|
208
|
-
|
209
|
-
explicit_deps.push(dep)
|
210
|
-
end
|
185
|
+
marker = podfile_item.prebuilt_marker()
|
186
|
+
|
187
|
+
non_explicit_dependencies = podfile_item.recursive_dependencies(all_buildable_items) - explicit_deps
|
188
|
+
non_explicit_dependencies_root_names = non_explicit_dependencies.map(&:root_name).uniq.filter { |t| t != podfile_item.root_name }
|
189
|
+
non_explicit_dependencies = non_explicit_dependencies_root_names.map { |x|
|
190
|
+
if item = all_buildable_items.detect { |t| x == t.name }
|
191
|
+
item
|
192
|
+
else
|
193
|
+
item = all_buildable_items.detect { |t| x == t.root_name }
|
194
|
+
end
|
195
|
+
}.compact
|
196
|
+
|
197
|
+
non_explicit_dependencies.each do |dep|
|
198
|
+
dep_item = all_buildable_items.detect { |x| x.name == dep.name }
|
199
|
+
|
200
|
+
if File.exist?(dep_item.prebuilt_podspec_path) && !dep_item.is_prebuilt
|
201
|
+
pod_name = dep_item.prebuilt_entry(false)
|
202
|
+
prebuilt_lines.push("#{line.detect_indentation}#{pod_name}#{marker}\n")
|
211
203
|
end
|
212
204
|
|
205
|
+
explicit_deps.push(dep)
|
206
|
+
end
|
207
|
+
|
208
|
+
if File.exist?(podfile_item.prebuilt_podspec_path) && !podfile_item.is_prebuilt
|
209
|
+
prebuilt_lines.push("#{line.detect_indentation}#{podfile_item.prebuilt_entry}\n")
|
213
210
|
next
|
214
211
|
end
|
215
212
|
end
|
@@ -218,13 +215,37 @@ module PodBuilder
|
|
218
215
|
prebuilt_lines.push(line)
|
219
216
|
end
|
220
217
|
|
218
|
+
podfile_content = prebuilt_lines.join
|
219
|
+
|
220
|
+
podfile_content = Podfile.update_path_entries(podfile_content, Podfile.method(:podfile_path_transform))
|
221
|
+
podfile_content = Podfile.update_project_entries(podfile_content, Podfile.method(:podfile_path_transform))
|
222
|
+
podfile_content = Podfile.update_require_entries(podfile_content, Podfile.method(:podfile_path_transform))
|
223
|
+
|
224
|
+
podfile_content = add_pre_install_actions(podfile_content)
|
225
|
+
podfile_content = add_post_install_checks(podfile_content)
|
226
|
+
|
221
227
|
project_podfile_path = PodBuilder::project_path("Podfile")
|
222
|
-
File.write(project_podfile_path,
|
223
|
-
|
224
|
-
|
228
|
+
File.write(project_podfile_path, podfile_content)
|
229
|
+
end
|
230
|
+
|
231
|
+
def self.write_prebuilt_react_native(all_buildable_items, analyzer)
|
232
|
+
puts "Updating Application Podfile".yellow
|
225
233
|
|
226
|
-
|
227
|
-
|
234
|
+
podbuilder_podfile_path = PodBuilder::basepath("Podfile")
|
235
|
+
rel_path = Pathname.new(podbuilder_podfile_path).relative_path_from(Pathname.new(PodBuilder::project_path)).to_s
|
236
|
+
|
237
|
+
podfile_content = ["# Autogenerated by PodBuilder (https://github.com/Subito-it/PodBuilder)\n", "# Any change to this file should be done on #{rel_path}\n", "\n"].join
|
238
|
+
podfile_content += analyzer.podfile.pb_to_s(all_buildable_items)
|
239
|
+
|
240
|
+
podfile_content = Podfile.update_path_entries(podfile_content, PodfileCP.method(:podfile_path_transform))
|
241
|
+
podfile_content = Podfile.update_project_entries(podfile_content, Podfile.method(:podfile_path_transform))
|
242
|
+
podfile_content = Podfile.update_require_entries(podfile_content, Podfile.method(:podfile_path_transform))
|
243
|
+
|
244
|
+
podfile_content = add_pre_install_actions(podfile_content)
|
245
|
+
podfile_content = add_post_install_checks(podfile_content)
|
246
|
+
|
247
|
+
project_podfile_path = PodBuilder::project_path("Podfile")
|
248
|
+
File.write(project_podfile_path, podfile_content)
|
228
249
|
end
|
229
250
|
|
230
251
|
def self.install
|
@@ -241,10 +262,6 @@ module PodBuilder
|
|
241
262
|
return stripped_line.gsub("\"", "'").gsub(" ", "").gsub("\t", "").gsub("\n", "")
|
242
263
|
end
|
243
264
|
|
244
|
-
def self.add_install_block(podfile_path)
|
245
|
-
add(PODBUILDER_LOCK_ACTION, "pre_install", podfile_path)
|
246
|
-
end
|
247
|
-
|
248
265
|
def self.pod_definition_in(line, include_commented)
|
249
266
|
stripped_line = strip_line(line)
|
250
267
|
matches = stripped_line.match(/(^pod')(.*?)(')/)
|
@@ -330,7 +347,7 @@ module PodBuilder
|
|
330
347
|
|
331
348
|
if stripped_line.match(/(pod')(.*?)(')/) != nil
|
332
349
|
starting_def_found = stripped_line.start_with?("def") && (line.match("\s*def\s") != nil)
|
333
|
-
raise "
|
350
|
+
raise "\n\nUnsupported single line def/pod. `def` and `pod` shouldn't be on the same line, please modify the following line:\n#{line}".red if starting_def_found
|
334
351
|
end
|
335
352
|
end
|
336
353
|
end
|
@@ -369,9 +386,23 @@ module PodBuilder
|
|
369
386
|
|
370
387
|
private
|
371
388
|
|
372
|
-
def self.
|
373
|
-
|
389
|
+
def self.podfile_path_transform(path)
|
390
|
+
use_absolute_paths = false
|
391
|
+
podfile_path = PodBuilder::project_path("Podfile")
|
392
|
+
original_basepath = PodBuilder::basepath
|
393
|
+
|
394
|
+
podfile_base_path = Pathname.new(File.dirname(podfile_path))
|
395
|
+
|
396
|
+
original_path = Pathname.new(File.join(original_basepath, path))
|
397
|
+
replace_path = original_path.relative_path_from(podfile_base_path)
|
398
|
+
if use_absolute_paths
|
399
|
+
replace_path = replace_path.expand_path(podfile_base_path)
|
400
|
+
end
|
401
|
+
|
402
|
+
return replace_path
|
403
|
+
end
|
374
404
|
|
405
|
+
def self.indentation_from_string(content)
|
375
406
|
lines = content.split("\n").select { |x| !x.empty? }
|
376
407
|
|
377
408
|
if lines.count > 2
|
@@ -392,13 +423,13 @@ module PodBuilder
|
|
392
423
|
def self.project_swift_version(analyzer)
|
393
424
|
swift_versions = analyzer.instance_variable_get("@result").targets.map { |x| x.target_definition.swift_version }.compact.uniq
|
394
425
|
|
395
|
-
raise "
|
426
|
+
raise "\n\nFound different Swift versions in targets. Expecting one, got `#{swift_versions}`".red if swift_versions.count > 1
|
396
427
|
|
397
428
|
return swift_versions.first || PodBuilder::system_swift_version
|
398
429
|
end
|
399
430
|
|
400
431
|
def self.podfile_items_at(podfile_path, include_prebuilt = false)
|
401
|
-
raise "
|
432
|
+
raise "\n\nExpecting basepath folder!".red if !File.exist?(PodBuilder::basepath("Podfile"))
|
402
433
|
|
403
434
|
if File.basename(podfile_path) != "Podfile"
|
404
435
|
File.rename(PodBuilder::basepath("Podfile"), PodBuilder::basepath("Podfile.tmp"))
|
@@ -427,18 +458,20 @@ module PodBuilder
|
|
427
458
|
return buildable_items
|
428
459
|
end
|
429
460
|
|
430
|
-
def self.
|
431
|
-
add(
|
461
|
+
def self.add_install_block(podfile_content)
|
462
|
+
return add(PODBUILDER_LOCK_ACTION, "pre_install", podfile_content)
|
432
463
|
end
|
433
464
|
|
434
|
-
def self.
|
435
|
-
add(
|
465
|
+
def self.add_pre_install_actions(podfile_content)
|
466
|
+
return add(PRE_INSTALL_ACTIONS + [" "], "pre_install", podfile_content)
|
436
467
|
end
|
437
468
|
|
438
|
-
def self.
|
439
|
-
|
469
|
+
def self.add_post_install_checks(podfile_content)
|
470
|
+
return add(POST_INSTALL_ACTIONS + [" "], "post_install", podfile_content)
|
471
|
+
end
|
440
472
|
|
441
|
-
|
473
|
+
def self.add(entries, marker, podfile_content)
|
474
|
+
file_indentation = indentation_from_string(podfile_content)
|
442
475
|
|
443
476
|
entries = entries.map { |x| "#{file_indentation}#{x}\n"}
|
444
477
|
|
@@ -455,28 +488,28 @@ module PodBuilder
|
|
455
488
|
end
|
456
489
|
|
457
490
|
if !marker_found
|
491
|
+
if podfile_lines.last.strip.length > 0
|
492
|
+
podfile_lines.push("\n")
|
493
|
+
end
|
458
494
|
podfile_lines.push("\n#{marker} do |installer|\n")
|
459
495
|
podfile_lines.push(entries)
|
460
496
|
podfile_lines.push("end\n")
|
461
497
|
end
|
462
498
|
|
463
|
-
|
499
|
+
return podfile_lines.join
|
464
500
|
end
|
465
501
|
|
466
|
-
def self.
|
467
|
-
|
468
|
-
|
469
|
-
base_path = Pathname.new(File.dirname(podfile_path))
|
470
|
-
regex = "(\s*pod\s*['|\"])(.*?)(['|\"])(.*?)(:path\s*=>\s*['|\"])(.*?)(['|\"])"
|
502
|
+
def self.update_path_entries(podfile_content, path_transform)
|
503
|
+
regex = "(\s*pod\s*['|\"])(.*?)(['|\"])(.*?):(path|podspec)(\s*=>\s*['|\"])(.*?)(['|\"])"
|
471
504
|
|
472
505
|
podfile_lines = []
|
473
506
|
podfile_content.each_line do |line|
|
474
507
|
stripped_line = strip_line(line)
|
475
508
|
matches = line.match(/#{regex}/)
|
476
509
|
|
477
|
-
if matches&.size ==
|
510
|
+
if matches&.size == 9 && !stripped_line.start_with?("#")
|
478
511
|
pod_name = matches[2]
|
479
|
-
path = matches[
|
512
|
+
path = matches[7]
|
480
513
|
|
481
514
|
is_absolute = ["~", "/"].include?(path[0])
|
482
515
|
unless !PodBuilder::prebuiltpath.end_with?(path) && !is_absolute
|
@@ -484,26 +517,19 @@ module PodBuilder
|
|
484
517
|
next
|
485
518
|
end
|
486
519
|
|
487
|
-
|
488
|
-
replace_path = original_path.relative_path_from(base_path)
|
489
|
-
if use_absolute_paths
|
490
|
-
replace_path = replace_path.expand_path(base_path)
|
491
|
-
end
|
520
|
+
replace_path = path_transform.call(path)
|
492
521
|
|
493
|
-
updated_path_line = line.gsub(/#{regex}/, '\1\2\3\4\
|
522
|
+
updated_path_line = line.gsub(/#{regex}/, '\1\2\3\4:\5\6' + replace_path.to_s + '\8\9')
|
494
523
|
podfile_lines.push(updated_path_line)
|
495
524
|
else
|
496
525
|
podfile_lines.push(line)
|
497
526
|
end
|
498
527
|
end
|
499
528
|
|
500
|
-
|
529
|
+
return podfile_lines.join
|
501
530
|
end
|
502
531
|
|
503
|
-
def self.update_project_entries(
|
504
|
-
podfile_content = File.read(podfile_path)
|
505
|
-
|
506
|
-
base_path = Pathname.new(File.dirname(podfile_path))
|
532
|
+
def self.update_project_entries(podfile_content, path_transform)
|
507
533
|
regex = "(\s*project\s*['|\"])(.*?)(['|\"])"
|
508
534
|
|
509
535
|
podfile_lines = []
|
@@ -520,11 +546,36 @@ module PodBuilder
|
|
520
546
|
next
|
521
547
|
end
|
522
548
|
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
549
|
+
replace_path = path_transform.call(path)
|
550
|
+
|
551
|
+
updated_path_line = line.gsub(/#{regex}/, '\1' + replace_path.to_s + '\3\4')
|
552
|
+
podfile_lines.push(updated_path_line)
|
553
|
+
else
|
554
|
+
podfile_lines.push(line)
|
555
|
+
end
|
556
|
+
end
|
557
|
+
|
558
|
+
return podfile_lines.join
|
559
|
+
end
|
560
|
+
|
561
|
+
def self.update_require_entries(podfile_content, path_transform)
|
562
|
+
regex = "(\s*require_relative\s*['|\"])(.*?)(['|\"])"
|
563
|
+
|
564
|
+
podfile_lines = []
|
565
|
+
podfile_content.each_line do |line|
|
566
|
+
stripped_line = strip_line(line)
|
567
|
+
matches = line.match(/#{regex}/)
|
568
|
+
|
569
|
+
if matches&.size == 4 && !stripped_line.start_with?("#")
|
570
|
+
path = matches[2]
|
571
|
+
|
572
|
+
is_absolute = ["~", "/"].include?(path[0])
|
573
|
+
unless !is_absolute
|
574
|
+
podfile_lines.push(line)
|
575
|
+
next
|
527
576
|
end
|
577
|
+
|
578
|
+
replace_path = path_transform.call(path)
|
528
579
|
|
529
580
|
updated_path_line = line.gsub(/#{regex}/, '\1' + replace_path.to_s + '\3\4')
|
530
581
|
podfile_lines.push(updated_path_line)
|
@@ -533,7 +584,97 @@ module PodBuilder
|
|
533
584
|
end
|
534
585
|
end
|
535
586
|
|
536
|
-
|
587
|
+
return podfile_lines.join
|
588
|
+
end
|
589
|
+
|
590
|
+
def self.prepare_for_react_native_write_pb_configuration(podfile_content)
|
591
|
+
base = File.expand_path(File.join(PodBuilder::project_path, ".."))
|
592
|
+
bin_js = Dir.glob("#{base}/node_modules/@react-native-community/cli/build/bin.js")
|
593
|
+
|
594
|
+
raise "\n\nReact native cli bin_js not found!".red unless bin_js.count == 1
|
595
|
+
bin_js = bin_js.first
|
596
|
+
|
597
|
+
config_dest_path = PodBuilder::basepath("rn_config.json")
|
598
|
+
|
599
|
+
raise "\n\nFailed generating react native configuration file".red unless system("node '#{bin_js}' config > #{config_dest_path}")
|
600
|
+
|
601
|
+
content = File.read(config_dest_path)
|
602
|
+
|
603
|
+
content.gsub!(PodBuilder::project_path, "..")
|
604
|
+
content.gsub!(File.expand_path(PodBuilder::project_path("..")), "../..")
|
605
|
+
|
606
|
+
json = JSON.parse(content)
|
607
|
+
begin
|
608
|
+
json["project"]["ios"]["sourceDir"] = "./"
|
609
|
+
json["project"]["ios"]["podfile"] = "./"
|
610
|
+
rescue => exception
|
611
|
+
raise "\n\nFailed updating react native configuration json".red
|
612
|
+
end
|
613
|
+
|
614
|
+
File.write(config_dest_path, JSON.pretty_generate(json))
|
615
|
+
|
616
|
+
return "rn_config = JSON.load(File.read(\"rn_config.json\")) # pb added\n\n" + podfile_content
|
617
|
+
end
|
618
|
+
|
619
|
+
def self.prepare_for_react_native_rn_pods_file(podfile_content)
|
620
|
+
lines = []
|
621
|
+
podfile_content.each_line do |line|
|
622
|
+
if line.include?("use_react_native!")
|
623
|
+
matches = line.match(/(\s*)/)
|
624
|
+
unless matches&.size == 2
|
625
|
+
return podfile_content
|
626
|
+
end
|
627
|
+
|
628
|
+
indentation = matches[1]
|
629
|
+
lines.push("#{indentation}use_react_native!(:path => rn_config[\"reactNativePath\"]) # pb added\n")
|
630
|
+
lines.push("#{indentation}# #{line.strip} # pb removed\n")
|
631
|
+
else
|
632
|
+
lines.push(line)
|
633
|
+
end
|
634
|
+
end
|
635
|
+
|
636
|
+
return lines.join
|
637
|
+
end
|
638
|
+
|
639
|
+
def self.prepare_for_react_native_native_modules_file(podfile_content)
|
640
|
+
lines = []
|
641
|
+
podfile_content.each_line do |line|
|
642
|
+
if line.include?("use_native_modules!")
|
643
|
+
matches = line.match(/(\s*)/)
|
644
|
+
unless matches&.size == 2
|
645
|
+
return podfile_content
|
646
|
+
end
|
647
|
+
|
648
|
+
indentation = matches[1]
|
649
|
+
lines.push("#{indentation}use_native_modules!(rn_config) # pb added\n")
|
650
|
+
lines.push("#{indentation}# #{line.strip} # pb removed\n")
|
651
|
+
else
|
652
|
+
lines.push(line)
|
653
|
+
end
|
654
|
+
end
|
655
|
+
|
656
|
+
return lines.join
|
657
|
+
end
|
658
|
+
|
659
|
+
def self.prepare_for_react_native(podfile_content)
|
660
|
+
original_podfile_content = podfile_content.dup
|
661
|
+
|
662
|
+
podfile_content = prepare_for_react_native_write_pb_configuration(podfile_content)
|
663
|
+
content = prepare_for_react_native_rn_pods_file(podfile_content)
|
664
|
+
if content == podfile_content
|
665
|
+
return original_podfile_content
|
666
|
+
end
|
667
|
+
podfile_content = content
|
668
|
+
content = prepare_for_react_native_native_modules_file(podfile_content)
|
669
|
+
if content == podfile_content
|
670
|
+
return original_podfile_content
|
671
|
+
end
|
672
|
+
podfile_content = content
|
673
|
+
|
674
|
+
Configuration.build_using_repo_paths = true
|
675
|
+
Configuration.react_native_project = true
|
676
|
+
|
677
|
+
return podfile_content
|
537
678
|
end
|
538
679
|
end
|
539
680
|
end
|