cocoapods-kz 0.1 → 0.1.1
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/lib/cocoapods-kz/gem_version.rb +1 -1
- data/lib/cocoapods-kz/helpers/kz_analyzer.rb +17 -14
- data/lib/cocoapods-kz/helpers/kz_generator_hmap.rb +5 -3
- data/lib/cocoapods-kz/helpers/kz_pod_target.rb +6 -0
- data/lib/cocoapods-kz/native/pod_target_integrator.rb +9 -0
- 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: 7dc3d17ae852663339c556b8ce756e1d6072f409a0355857be8b4e853b28c5b4
|
|
4
|
+
data.tar.gz: 82f389a34190b85f569d70452af68a6648164a245e272211338df351c1d5ee6d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bb1640b3a067294022afd664ba651dc99321fcfbcb9215d7234a533dc50b72ec164749d26f5557582732a93ce2414ae327f818111216f5f6a682960ddb2a3fcf
|
|
7
|
+
data.tar.gz: 3159244490814d002460a3b6a843b36668735798c195963ed6934eb67ac11b564dabe50217204df291da76df5e222b3a0312c257f135b72b1ad2cc2379b196d8
|
|
@@ -48,22 +48,25 @@ module KZ
|
|
|
48
48
|
result = KZGlobalHelper.instance.pod_config_result_with_target(kz_pod_target)
|
|
49
49
|
temp_name = "#{kz_pod_target.product_name}_#{kz_pod_target.platform_name}"
|
|
50
50
|
if temp_repeat_product_name.include?(temp_name)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
if kz_pod_target.origin_should_build?
|
|
52
|
+
kz_pod_target.product_name = "#{kz_pod_target.name}.framework"
|
|
53
|
+
kz_pod_target.product_basename = kz_pod_target.name
|
|
54
|
+
if result
|
|
55
|
+
kz_pod_target.repair_modulemap_path = "${PODS_XCFRAMEWORKS_BUILD_DIR}/#{kz_pod_target.root_name}/#{kz_pod_target.product_name}/Modules/module.modulemap"
|
|
56
|
+
if kz_pod_target.origin_uses_swift?
|
|
57
|
+
kz_pod_target.repair_swift_include_path = "${PODS_XCFRAMEWORKS_BUILD_DIR}/#{kz_pod_target.root_name}/#{kz_pod_target.product_name}/Modules"
|
|
58
|
+
end
|
|
59
|
+
else
|
|
60
|
+
kz_pod_target.repair_modulemap_path = "#{kz_pod_target.native_pod_target.configuration_build_dir}/#{kz_pod_target.product_name}/Modules/module.modulemap"
|
|
61
|
+
if kz_pod_target.origin_uses_swift?
|
|
62
|
+
kz_pod_target.repair_swift_include_path = "#{kz_pod_target.native_pod_target.configuration_build_dir}/#{kz_pod_target.product_name}/Modules"
|
|
63
|
+
end
|
|
62
64
|
end
|
|
65
|
+
kz_pod_target.need_repair_module_import = true
|
|
66
|
+
KZLog.log("检测到多个target编译产物名均为:#{temp_name},已配置#{kz_pod_target.name}使用新产物名:#{kz_pod_target.name}.framework,并使用modulemap进行修复引用方式保持不变", :info)
|
|
63
67
|
end
|
|
64
|
-
kz_pod_target.
|
|
65
|
-
|
|
66
|
-
elsif kz_pod_target.origin_should_build?
|
|
68
|
+
kz_pod_target.have_same_root = true
|
|
69
|
+
elsif kz_pod_target
|
|
67
70
|
temp_repeat_product_name << "#{temp_name}"
|
|
68
71
|
end
|
|
69
72
|
|
|
@@ -300,7 +300,9 @@ module KZ
|
|
|
300
300
|
|
|
301
301
|
yaml_header_info = {}
|
|
302
302
|
yaml_header_info["type"] = "directory"
|
|
303
|
-
|
|
303
|
+
# 使用origin_product_name,是因为kz_analyzer中对于拥有相同product_name的target的product_name改成了target_name
|
|
304
|
+
# 但是新版Xcode的编译过程包含一个scan步骤,会使用hamp中映射的framework,hmap中使用的是原始product_name,这里需要与之同步
|
|
305
|
+
yaml_header_info["name"] = built_products_dir + "#{kz_pod_target.origin_product_name}/Headers"
|
|
304
306
|
yaml_roots.append(yaml_header_info)
|
|
305
307
|
|
|
306
308
|
public_headers = kz_pod_target.public_headers
|
|
@@ -316,7 +318,7 @@ module KZ
|
|
|
316
318
|
|
|
317
319
|
yaml_modulemap_info = {}
|
|
318
320
|
yaml_modulemap_info["type"] = "directory"
|
|
319
|
-
yaml_modulemap_info["name"] = built_products_dir + "#{kz_pod_target.
|
|
321
|
+
yaml_modulemap_info["name"] = built_products_dir + "#{kz_pod_target.origin_product_name}/Modules"
|
|
320
322
|
yaml_roots.append(yaml_modulemap_info)
|
|
321
323
|
|
|
322
324
|
yaml_modulemap_contents = []
|
|
@@ -325,7 +327,7 @@ module KZ
|
|
|
325
327
|
yaml_modulemap_content = {}
|
|
326
328
|
yaml_modulemap_content["type"] = "file"
|
|
327
329
|
yaml_modulemap_content["name"] = "module.modulemap"
|
|
328
|
-
yaml_modulemap_content["external-contents"] = built_products_dir + "#{kz_pod_target.
|
|
330
|
+
yaml_modulemap_content["external-contents"] = built_products_dir + "#{kz_pod_target.origin_product_name}/Modules/module.modulemap"
|
|
329
331
|
yaml_modulemap_contents.append(yaml_modulemap_content)
|
|
330
332
|
|
|
331
333
|
pod_yaml_info
|
|
@@ -34,8 +34,12 @@ module KZ
|
|
|
34
34
|
attr_accessor :custom_origin_yaml_path
|
|
35
35
|
|
|
36
36
|
attr_accessor :platform_name
|
|
37
|
+
# 是否存在跟其他pod相同的root pod,一搬为同一个pod,再不同target中拆分为sub pod使用
|
|
38
|
+
attr_accessor :have_same_root
|
|
37
39
|
# target编译最终的产物名称
|
|
38
40
|
attr_accessor :product_name
|
|
41
|
+
# target原始产物名称
|
|
42
|
+
attr_accessor :origin_product_name
|
|
39
43
|
# 对应xcode配置PRODUCT_NAME,当多个target的PRODUCT_NAME相同时,需要手动修改,防止打包报错
|
|
40
44
|
attr_accessor :product_basename
|
|
41
45
|
# 当手动修改PRODUCT_NAME之后,产物名称会改变,在framework模式下对于OC组件需要使用modulemap文件配置寻找路径,对于Swift组件需要配置单独的include path
|
|
@@ -69,7 +73,9 @@ module KZ
|
|
|
69
73
|
@config_pod_mode = :kz_pod_origin_mode
|
|
70
74
|
|
|
71
75
|
@platform_name = native_pod_target.platform.symbolic_name
|
|
76
|
+
@have_same_root = false
|
|
72
77
|
@product_name = native_pod_target.origin_product_name
|
|
78
|
+
@origin_product_name = native_pod_target.origin_product_name
|
|
73
79
|
@product_basename = native_pod_target.origin_product_basename
|
|
74
80
|
@need_repair_module_import = false
|
|
75
81
|
@use_local_private_headers_path = false
|
|
@@ -14,6 +14,15 @@ module Pod
|
|
|
14
14
|
|
|
15
15
|
xcframeworks = target.xcframeworks.values.flatten
|
|
16
16
|
|
|
17
|
+
kz_pod_target = target.weakRef_kz_pod_target
|
|
18
|
+
if kz_pod_target&.have_same_root
|
|
19
|
+
# 如果产物相同,极大可能为sub pod模式,xcframework有相同处理指令,导致并发执行rsync报错
|
|
20
|
+
# 这里延迟0.2秒可以极大减少这种错误产生
|
|
21
|
+
script_content = File.read(target.copy_xcframeworks_script_path)
|
|
22
|
+
new_script_content = script_content.sub(/(install_xcframework "\$\{PODS_ROOT})/, "sleep 0.2\n\\1")
|
|
23
|
+
File.write(target.copy_xcframeworks_script_path, new_script_content)
|
|
24
|
+
end
|
|
25
|
+
|
|
17
26
|
if use_input_output_paths? && !xcframeworks.empty?
|
|
18
27
|
input_file_list_path = target.copy_xcframeworks_script_input_files_path
|
|
19
28
|
input_file_list_relative_path = "${PODS_ROOT}/#{input_file_list_path.relative_path_from(target.sandbox.root)}"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cocoapods-kz
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- yixiong
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-10-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|