cocoapods-jxedt 0.0.17 → 0.0.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cocoapods-jxedt/binary/config.rb +9 -0
- data/lib/cocoapods-jxedt/binary/helper/prebuild_installer.rb +58 -1
- data/lib/cocoapods-jxedt/binary/helper/prebuild_sandbox.rb +10 -17
- data/lib/cocoapods-jxedt/binary/hooks/pre_install.rb +1 -0
- data/lib/cocoapods-jxedt/gem_version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c059b0853c0b86e555a853eea168d4a3c1c8652bb8db739d5e3e9a434abf22c
|
4
|
+
data.tar.gz: a77b1ca134e6f16ce3a12f6da6974b363c07992ee90939c63a0f7d6e9384d020
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e35493b31fe5ab1a60b447f8623360a6649a43cce78149bfb814fe55925c0e936ae111543901203f66634341de2c23b5c48d6ad997f6efe851b2d30a259ea31e
|
7
|
+
data.tar.gz: be8fdce02f67e56af427026fa8c99c593468354a6a77571b76394f9b32b5e31707db5d40b7424c209acc289b02b954c4f20eb1c61295e38c76df020e6a43549a
|
@@ -12,6 +12,7 @@ module Jxedt
|
|
12
12
|
:binary_switch => "插件开关,设置为false则关闭插件二进制功能。默认为true",
|
13
13
|
:prebuild_job => "开启编译任务,设置为false则不触发编译功能。默认为true",
|
14
14
|
:keep_source_project => "保留源码的pods工程,方便查看源码,文件目录为Podfile文件同级目录下'Pods-Source'。默认为false",
|
15
|
+
:create_index_project => "在源码工程目录下创建一个index project工程,可以直接拖入workspace中,可点击查看源码,可断点调试。默认取`keep_source_project`的配置",
|
15
16
|
:dev_pods_enabled => "Development Pods是否支持二进制。默认为false",
|
16
17
|
:excluded_pods => "排除binary的pods,是一个数组。默认是[]",
|
17
18
|
:xcconfig_configuration_alias => "xcconfig文件中配置多configuration的别名(一定要唯一),用于搜索替换,我们用来支持多configuration的二进制。一般不需要设置,默认值为'cocoapods-jxedt-binary'",
|
@@ -82,6 +83,14 @@ module Jxedt
|
|
82
83
|
@dsl_config[:keep_source_project] || false
|
83
84
|
end
|
84
85
|
|
86
|
+
def create_index_project?
|
87
|
+
@create_index ||= begin
|
88
|
+
create_index = @dsl_config[:create_index_project]
|
89
|
+
create_index = keep_source_project? if create_index.nil?
|
90
|
+
create_index && keep_source_project?
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
85
94
|
def dev_pods_enabled?
|
86
95
|
@dsl_config[:dev_pods_enabled] || false
|
87
96
|
end
|
@@ -7,5 +7,62 @@ module Pod
|
|
7
7
|
super.to_h.merge(:integrate_targets => false)
|
8
8
|
)
|
9
9
|
end
|
10
|
+
|
11
|
+
def generate_pods_index_project!
|
12
|
+
return unless Jxedt.config.create_index_project?
|
13
|
+
|
14
|
+
Pod::UI.puts "-----------------------------------------"
|
15
|
+
Pod::UI.puts "🚖 生成Pods-Index.xcodeproj,可以直接把工程拖入workspace来查看源码或进行二进制调试"
|
16
|
+
Pod::UI.puts "-----------------------------------------"
|
17
|
+
|
18
|
+
# 生成index project开始标识
|
19
|
+
sandbox.index_project_create_stage = true
|
20
|
+
|
21
|
+
# 只生成pods target工程
|
22
|
+
cache_analysis_result = analyze_project_cache
|
23
|
+
# 获取缓存中需要生成的pod_targets
|
24
|
+
pod_targets_to_generate = cache_analysis_result.pod_targets_to_generate.clone
|
25
|
+
# 修改标识,这个标识用于修改Target的productName
|
26
|
+
pod_targets_to_generate.each { |target| target.binary_index_enabled = true }
|
27
|
+
|
28
|
+
# 调用生成project的方法,aggregate_targets传空
|
29
|
+
create_and_save_projects(pod_targets_to_generate, [],
|
30
|
+
cache_analysis_result.build_configurations, cache_analysis_result.project_object_version)
|
31
|
+
|
32
|
+
# 恢复sandbox标识
|
33
|
+
sandbox.index_project_create_stage = false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
module Pod
|
39
|
+
class Installer
|
40
|
+
# Cleans up the sandbox directory by removing stale target support files and headers.
|
41
|
+
#
|
42
|
+
class SandboxDirCleaner
|
43
|
+
alias_method :old_sandbox_project_dir_names, :sandbox_project_dir_names
|
44
|
+
def sandbox_project_dir_names
|
45
|
+
project_dir_names = old_sandbox_project_dir_names
|
46
|
+
if sandbox.is_a?(Pod::JxedtPrebuildSandbox)
|
47
|
+
# 如果允许生成Pods-Index.xcodeproj,排除这个文件
|
48
|
+
project_dir_names.reject! { |d| d.basename.to_s =~ /#{sandbox.index_project_name}$/ } if Jxedt.config.create_index_project?
|
49
|
+
end
|
50
|
+
project_dir_names
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class PodTarget < Target
|
56
|
+
attr_accessor :binary_index_enabled
|
57
|
+
|
58
|
+
# 修改product module name
|
59
|
+
alias_method :old_product_module_name, :product_module_name
|
60
|
+
def product_module_name
|
61
|
+
name_ = old_product_module_name
|
62
|
+
return "#{name_}_Source" if binary_index_enabled
|
63
|
+
name_
|
64
|
+
end
|
10
65
|
end
|
11
|
-
end
|
66
|
+
end
|
67
|
+
|
68
|
+
|
@@ -51,6 +51,8 @@ module Pod
|
|
51
51
|
#
|
52
52
|
#
|
53
53
|
class JxedtPrebuildSandbox < Sandbox
|
54
|
+
attr_accessor :index_project_create_stage
|
55
|
+
|
54
56
|
# [Pod::Sandbox] standard_sandbox
|
55
57
|
def self.from_standard_sandbox(sandbox, sandbox_path: nil, real_path_compiler: false)
|
56
58
|
prebuild_sandbox_path = Pathname.new(sandbox.root).realpath + '../Pods-Source'
|
@@ -105,27 +107,18 @@ module Pod
|
|
105
107
|
end
|
106
108
|
|
107
109
|
def project_path
|
110
|
+
if index_project_create_stage
|
111
|
+
return root + index_project_name
|
112
|
+
end
|
108
113
|
root + 'Pods-Source.xcodeproj'
|
109
114
|
end
|
110
115
|
|
111
|
-
def
|
112
|
-
|
113
|
-
|
114
|
-
require 'xcodeproj'
|
115
|
-
project = Xcodeproj::Project.open(project_path)
|
116
|
-
project.targets.each do |target|
|
117
|
-
target.build_configurations.each do |config|
|
118
|
-
# 修改工程的product name
|
119
|
-
product_name = config.build_settings['PRODUCT_NAME'] || target.name
|
120
|
-
config.build_settings['PRODUCT_NAME'] = "#{product_name}_Source"
|
121
|
-
end
|
122
|
-
# target.name = "#{target.name}_Source"
|
123
|
-
end
|
124
|
-
project.save
|
116
|
+
def index_project_name
|
117
|
+
return 'Pods-Index.xcodeproj'
|
118
|
+
end
|
125
119
|
|
126
|
-
|
127
|
-
|
128
|
-
end
|
120
|
+
def clean_source_project!
|
121
|
+
return if Jxedt.config.keep_source_project?
|
129
122
|
|
130
123
|
sources_root.rmtree if real_path_compiler? && sources_root.exist?
|
131
124
|
root.rmtree if root.exist?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-jxedt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- guojiashuang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocoapods
|