pod-builder 4.4.1 → 4.4.4
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 +5 -0
- data/exe/pod_builder +36 -0
- data/lib/pod_builder/command/init.rb +5 -1
- data/lib/pod_builder/command/switch.rb +17 -2
- data/lib/pod_builder/command/switch_all.rb +15 -0
- data/lib/pod_builder/command.rb +1 -0
- data/lib/pod_builder/core.rb +3 -0
- data/lib/pod_builder/install.rb +0 -10
- data/lib/pod_builder/podfile.rb +45 -1
- data/lib/pod_builder/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b997b0b093cce5c58a5b3f7b169bc9c0bf56f7bf45c4305677d5225bcb601fde
|
4
|
+
data.tar.gz: 0dd7183f48fcb9cee574f52b07f1879d027546eaf73f4994455c10c44d4baa9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66f9bf382df640e48f48511d92b78459ffb55a00b66569143b22aa3731393477531c4519911556da40be04cd95a0b31ce68c3d17bb443234e733267b49ef638e
|
7
|
+
data.tar.gz: ad206eebf7ccf4e21d0d5bc990a70bcfb34877863741621f2b0fc545c737991b20baf39aef09791fc114dadfecd1378d065d3ce16163d69ef7c893d9c620cc3b
|
data/README.md
CHANGED
@@ -71,6 +71,7 @@ PodBuilder comes with a rich set of commands:
|
|
71
71
|
- `restore_all`: rebuilts all pods declared in the Restore-Podfile file
|
72
72
|
- `install_sources`: installs sources of pods to debug into prebuild frameworks
|
73
73
|
- `switch`: switch between prebuilt, development or standard pod in the Application-Podfile
|
74
|
+
- `switch_all`: switch all pods between prebuilt, development or standard in the Application-Podfile
|
74
75
|
- `clean`: removes unused prebuilt frameworks, dSYMs and source files added by install_sources
|
75
76
|
- `sync_podfile`: updates the Application-Podfile with all pods declared in the PodBuilder-Podfile file
|
76
77
|
- `info`: outputs json-formatted information reflecting the current status of prebuilt pods
|
@@ -158,6 +159,10 @@ To support development pods you should specify the path(s) that contain the pods
|
|
158
159
|
|
159
160
|
PodBuilder will automatically determine the proper path when switching a particular pod.
|
160
161
|
|
162
|
+
#### `switch_all` command
|
163
|
+
|
164
|
+
As `switch` but will switch all pods defined in PodBuilder-Podfile.
|
165
|
+
|
161
166
|
#### `clean` command
|
162
167
|
|
163
168
|
Deletes all unused files by PodBuilder, including .frameworks, .dSYMs and _Source_ repos.
|
data/exe/pod_builder
CHANGED
@@ -41,6 +41,7 @@ Command:
|
|
41
41
|
+ install_sources Install sources of pods to debug into prebuilt items
|
42
42
|
+ generate_lldbinit Generate an lldbinit file with setting target.source-map to debug prebuilt items
|
43
43
|
+ switch Switch between prebuilt/development/standard pod in the Application-Podfile
|
44
|
+
+ switch_all Switch all pods between prebuilt/development/standard in the Application-Podfile
|
44
45
|
+ clean Remove prebuild items, dSYMs and source files added by `install_sources` command that are no longer in the PodBuilder-Podfile
|
45
46
|
+ sync_podfile Update your Application-Podfile with all pods declared in the PodBuilder-Podfile
|
46
47
|
+ info Print json-formatted informations about prebuilt items
|
@@ -316,6 +317,41 @@ Options:
|
|
316
317
|
]
|
317
318
|
},
|
318
319
|
|
320
|
+
"switch_all" => {
|
321
|
+
:opts => OptionParser.new do |opts|
|
322
|
+
opts.banner = "
|
323
|
+
Usage:
|
324
|
+
|
325
|
+
$ pod_builder switch_all [OPTIONS]
|
326
|
+
|
327
|
+
Switch all pods integration between prebuilt/development/default version.
|
328
|
+
|
329
|
+
Options:
|
330
|
+
"
|
331
|
+
opts.on("-p", "--prebuilt", "Use prebuilt") do |o|
|
332
|
+
OPTIONS[:switch_mode] = "prebuilt"
|
333
|
+
end
|
334
|
+
opts.on("-d", "--development", "Development pod") do |o|
|
335
|
+
OPTIONS[:switch_mode] = "development"
|
336
|
+
end
|
337
|
+
opts.on("-s", "--default", "Default version specified in PodBuilder-Podfile") do |o|
|
338
|
+
OPTIONS[:switch_mode] = "default"
|
339
|
+
end
|
340
|
+
opts.on("-c", "--child-deps", "Include dependencies of the specified <PODNAME...>") do |o|
|
341
|
+
OPTIONS[:resolve_child_dependencies] = true
|
342
|
+
end
|
343
|
+
opts.on("-r", "--parent-deps", "Include all pods that depend on the specified <PODNAME...>") do |o|
|
344
|
+
OPTIONS[:resolve_parent_dependencies] = true
|
345
|
+
end
|
346
|
+
opts.on("-u", "--skip-repo-update", "Skip CocoaPods repo update (only when passing --parent-deps") do |o|
|
347
|
+
OPTIONS[:update_repos] = false
|
348
|
+
end
|
349
|
+
end,
|
350
|
+
:call => [
|
351
|
+
PodBuilder::Command::SwitchAll
|
352
|
+
]
|
353
|
+
},
|
354
|
+
|
319
355
|
"sync_podfile" => {
|
320
356
|
:opts => OptionParser.new do |opts|
|
321
357
|
opts.banner = "
|
@@ -65,6 +65,10 @@ module PodBuilder
|
|
65
65
|
source_path_rel_path,
|
66
66
|
development_pods_config_rel_path]
|
67
67
|
|
68
|
+
if Configuration.react_native_project
|
69
|
+
git_ignores.push("build/")
|
70
|
+
end
|
71
|
+
|
68
72
|
File.write("#{OPTIONS[:prebuild_path]}/.gitignore", git_ignores.join("\n"))
|
69
73
|
end
|
70
74
|
|
@@ -141,7 +145,7 @@ module PodBuilder
|
|
141
145
|
expected_header_search_path_prefix = "\"HEADER_SEARCH_PATHS\" => \""
|
142
146
|
raise "\n\nExpected header search path entry not found\n".red unless content.include?(expected_header_search_path_prefix)
|
143
147
|
|
144
|
-
content.sub!(expected_header_search_path_prefix, "#{expected_header_search_path_prefix}\\\"$(PODS_ROOT)/Headers/Public/Flipper-Folly\\\" ")
|
148
|
+
content.sub!(expected_header_search_path_prefix, "#{expected_header_search_path_prefix}\\\"$(PODS_ROOT)/Headers/Public/Flipper-Folly\\\" \\\"$(PODS_ROOT)/../build/generated/ios\\\" ")
|
145
149
|
File.write(paths[0], content)
|
146
150
|
end
|
147
151
|
end
|
@@ -9,7 +9,22 @@ module PodBuilder
|
|
9
9
|
PodBuilder::prepare_basepath
|
10
10
|
|
11
11
|
argument_pods = ARGV.dup
|
12
|
-
|
12
|
+
switch_all = argument_pods.first == "*"
|
13
|
+
|
14
|
+
if switch_all
|
15
|
+
pods = []
|
16
|
+
podspecs = Dir.glob("#{PodBuilder::prebuiltpath}/**/*.podspec")
|
17
|
+
podspecs.each do |podspec|
|
18
|
+
spec = Pod::Specification.from_file(podspec)
|
19
|
+
podname = spec.attributes_hash["name"]
|
20
|
+
pods.push(podname)
|
21
|
+
end
|
22
|
+
argument_pods = pods
|
23
|
+
if OPTIONS[:switch_mode] == "development"
|
24
|
+
argument_pods.reject! { |pod_name| self.find_podspec(pod_name).nil? }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
13
28
|
unless argument_pods.count > 0
|
14
29
|
return -1
|
15
30
|
end
|
@@ -235,7 +250,7 @@ module PodBuilder
|
|
235
250
|
if Pathname.new(path).relative?
|
236
251
|
path = PodBuilder::basepath(path)
|
237
252
|
end
|
238
|
-
podspec_paths = Dir.glob(File.expand_path("#{path}/**/#{podname}
|
253
|
+
podspec_paths = Dir.glob(File.expand_path("#{path}/**/#{podname}.podspec"))
|
239
254
|
podspec_paths.select! { |t| !t.include?("/Local Podspecs/") }
|
240
255
|
podspec_paths.select! { |t| Dir.glob(File.join(File.dirname(t), "*")).count > 1 } # exclude podspec folder (which has one file per folder)
|
241
256
|
if podspec_paths.count > 1
|
data/lib/pod_builder/command.rb
CHANGED
@@ -9,6 +9,7 @@ require 'pod_builder/command/deintegrate'
|
|
9
9
|
require 'pod_builder/command/generate_podspec'
|
10
10
|
require 'pod_builder/command/install_sources'
|
11
11
|
require 'pod_builder/command/switch'
|
12
|
+
require 'pod_builder/command/switch_all'
|
12
13
|
require 'pod_builder/command/sync_podfile'
|
13
14
|
require 'pod_builder/command/info'
|
14
15
|
require 'pod_builder/command/generate_lldbinit'
|
data/lib/pod_builder/core.rb
CHANGED
data/lib/pod_builder/install.rb
CHANGED
@@ -198,8 +198,6 @@ module PodBuilder
|
|
198
198
|
gitignored_files = PodBuilder::gitignoredfiles
|
199
199
|
|
200
200
|
swift_version = PodBuilder::system_swift_version
|
201
|
-
|
202
|
-
write_prebuilt_info_filename_gitattributes
|
203
201
|
|
204
202
|
ret = Hash.new
|
205
203
|
root_names = podfile_items.reject(&:is_prebuilt).map(&:root_name).uniq
|
@@ -441,14 +439,6 @@ module PodBuilder
|
|
441
439
|
FileUtils.cp_r(PodBuilder::buildpath_dsympath, PodBuilder::basepath)
|
442
440
|
end
|
443
441
|
end
|
444
|
-
|
445
|
-
def self.write_prebuilt_info_filename_gitattributes
|
446
|
-
gitattributes_path = PodBuilder::basepath(".gitattributes")
|
447
|
-
expected_attributes = ["#{Configuration.configuration_filename} binary"].join
|
448
|
-
unless File.exists?(gitattributes_path) && File.read(gitattributes_path).include?(expected_attributes)
|
449
|
-
File.write(gitattributes_path, expected_attributes, mode: 'a')
|
450
|
-
end
|
451
|
-
end
|
452
442
|
|
453
443
|
def self.build_folder_hash_in_prebuilt_info_file(podfile_item)
|
454
444
|
prebuilt_info_path = PodBuilder::prebuiltpath(File.join(podfile_item.root_name, Configuration.prebuilt_info_filename))
|
data/lib/pod_builder/podfile.rb
CHANGED
@@ -727,6 +727,15 @@ module PodBuilder
|
|
727
727
|
|
728
728
|
def self.prepare_react_native_compilation_workarounds(podfile_content)
|
729
729
|
return podfile_content + """
|
730
|
+
|
731
|
+
def prepare_rn_react_codegen
|
732
|
+
# Beginning with version 0.68.0 react native project compilation relies on some autogenerated files
|
733
|
+
# that are added to the React-Codegen target
|
734
|
+
source_path = \"#{PodBuilder::project_path}/build/generated/ios/.\"
|
735
|
+
destination_path = \"#{PodBuilder::basepath}/build/generated/ios\"
|
736
|
+
FileUtils.cp_r(source_path, destination_path)
|
737
|
+
end
|
738
|
+
|
730
739
|
def prepare_rn_compilation_libevent
|
731
740
|
path = \"Pods/libevent/include/event.h\"
|
732
741
|
replace(path, \"#include <evutil.h>\", \"// #include <evutil.h>\")
|
@@ -745,11 +754,46 @@ def replace(path, find, replace)
|
|
745
754
|
content = File.read(path).gsub(find, replace)
|
746
755
|
File.write(path, content)
|
747
756
|
end
|
748
|
-
end
|
757
|
+
end
|
758
|
+
|
759
|
+
pre_install do |installer|
|
760
|
+
require 'json'
|
761
|
+
|
762
|
+
pods_path = \"#{PodBuilder::project_path}/Pods\"
|
763
|
+
j = JSON.parse(File.read(\"\#{pods_path}/Local Podspecs/FBReactNativeSpec.podspec.json\"))
|
764
|
+
|
765
|
+
output_files = j.dig(\"script_phases\", \"output_files\")
|
766
|
+
|
767
|
+
script_lines = j.dig(\"script_phases\", \"script\").split(\"\\n\")
|
768
|
+
script_lines.insert(0, \"export SCRIPT_OUTPUT_FILE_0=\\\"\#{output_files[0]}\\\"\")
|
769
|
+
script_lines.insert(0, \"export DERIVED_FILE_DIR=/tmp\")
|
770
|
+
script_lines.insert(0, \"export PODS_TARGET_SRCROOT=\\\"#{PodBuilder::project_path}/../node_modules/react-native/React/FBReactNativeSpec\\\"\")
|
771
|
+
script_lines.insert(0, \"export PODS_ROOT=\\\"\#{pods_path}\\\"\")
|
772
|
+
|
773
|
+
Dir.chdir(pods_path) do
|
774
|
+
cmd = script_lines.reject(&:blank?).join(\";\\n\")
|
775
|
+
system(cmd)
|
776
|
+
end
|
777
|
+
end
|
749
778
|
|
750
779
|
post_install do |installer|
|
751
780
|
prepare_rn_compilation_libevent()
|
752
781
|
prepare_rn_flipper_module_redefinition()
|
782
|
+
prepare_rn_react_codegen()
|
783
|
+
|
784
|
+
installer.pods_project.targets.each do |target|
|
785
|
+
target.build_configurations.each do |config|
|
786
|
+
if target.name == 'React-Codegen'
|
787
|
+
config.build_settings['HEADER_SEARCH_PATHS'] = config.build_settings.fetch('HEADER_SEARCH_PATHS', []) + ['$(inherited)', '${PODS_ROOT}/Flipper-Folly', '${PODS_ROOT}/React-Core/ReactCommon', '$(PODS_ROOT)/React-Core/ReactCommon/react/renderer/graphics/platform/cxx', '$(PODS_ROOT)/React-Codegen/build/generated/ios']
|
788
|
+
end
|
789
|
+
if target.name == 'React-Core'
|
790
|
+
config.build_settings['HEADER_SEARCH_PATHS'] = config.build_settings.fetch('HEADER_SEARCH_PATHS', []) + ['$(inherited)', '${PODS_ROOT}/Flipper-Folly']
|
791
|
+
end
|
792
|
+
if target.name == 'React-CoreModules'
|
793
|
+
config.build_settings['HEADER_SEARCH_PATHS'] = config.build_settings.fetch('HEADER_SEARCH_PATHS', []) + ['$(inherited)', '${PODS_ROOT}/Flipper-Folly', '$(PODS_ROOT)/../build/generated/ios']
|
794
|
+
end
|
795
|
+
end
|
796
|
+
end
|
753
797
|
end
|
754
798
|
"""
|
755
799
|
end
|
data/lib/pod_builder/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pod-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.4.
|
4
|
+
version: 4.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomas Camin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -197,6 +197,7 @@ files:
|
|
197
197
|
- lib/pod_builder/command/none.rb
|
198
198
|
- lib/pod_builder/command/restore_all.rb
|
199
199
|
- lib/pod_builder/command/switch.rb
|
200
|
+
- lib/pod_builder/command/switch_all.rb
|
200
201
|
- lib/pod_builder/command/sync_podfile.rb
|
201
202
|
- lib/pod_builder/command/update.rb
|
202
203
|
- lib/pod_builder/configuration.rb
|