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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d2ef6bc4b485373616f4d2c175e90b817e9b01653f6ed6ecc178600f4b221bce
4
- data.tar.gz: 373e1539e8f34f93465875386d11a57d265678987ac6f37513697b6ae1fdaffc
3
+ metadata.gz: 7dc3d17ae852663339c556b8ce756e1d6072f409a0355857be8b4e853b28c5b4
4
+ data.tar.gz: 82f389a34190b85f569d70452af68a6648164a245e272211338df351c1d5ee6d
5
5
  SHA512:
6
- metadata.gz: 285e197ed1015865f273880da25d8c036289fdce81c87a982da2add77ecc8e2310bc2503c85c22a4c4fc9f8cda4903779b565b10bef465dc5b28b30aa21faa9c
7
- data.tar.gz: 8a0329bc6cdd2a0088f26d395694c642935988c2632f44891adb87841bc04a33750645c83ed5195e46bd70e64121962f5148d89c53ad3d637c528982c0bd0915
6
+ metadata.gz: bb1640b3a067294022afd664ba651dc99321fcfbcb9215d7234a533dc50b72ec164749d26f5557582732a93ce2414ae327f818111216f5f6a682960ddb2a3fcf
7
+ data.tar.gz: 3159244490814d002460a3b6a843b36668735798c195963ed6934eb67ac11b564dabe50217204df291da76df5e222b3a0312c257f135b72b1ad2cc2379b196d8
@@ -1,5 +1,5 @@
1
1
  module CocoapodsKz
2
- VERSION = "0.1"
2
+ VERSION = "0.1.1"
3
3
  end
4
4
 
5
5
  module Pod
@@ -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
- kz_pod_target.product_name = "#{kz_pod_target.name}.framework"
52
- kz_pod_target.product_basename = kz_pod_target.name
53
- if result
54
- kz_pod_target.repair_modulemap_path = "${PODS_XCFRAMEWORKS_BUILD_DIR}/#{kz_pod_target.root_name}/#{kz_pod_target.product_name}/Modules/module.modulemap"
55
- if kz_pod_target.origin_uses_swift?
56
- kz_pod_target.repair_swift_include_path = "${PODS_XCFRAMEWORKS_BUILD_DIR}/#{kz_pod_target.root_name}/#{kz_pod_target.product_name}/Modules"
57
- end
58
- else
59
- kz_pod_target.repair_modulemap_path = "#{kz_pod_target.native_pod_target.configuration_build_dir}/#{kz_pod_target.product_name}/Modules/module.modulemap"
60
- if kz_pod_target.origin_uses_swift?
61
- kz_pod_target.repair_swift_include_path = "#{kz_pod_target.native_pod_target.configuration_build_dir}/#{kz_pod_target.product_name}/Modules"
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.need_repair_module_import = true
65
- KZLog.log("检测到多个target编译产物名均为:#{temp_name},已配置#{kz_pod_target.name}使用新产物名:#{kz_pod_target.name}.framework,并使用modulemap进行修复引用方式保持不变", :info)
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
- yaml_header_info["name"] = built_products_dir + "#{kz_pod_target.product_name}/Headers"
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.product_name}/Modules"
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.product_name}/Modules/module.modulemap"
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: '0.1'
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-08-13 00:00:00.000000000 Z
11
+ date: 2025-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler