cocoapods-jxedt 0.0.20 → 0.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: abe43eae6c807ddde37ea7b81207987ba97882ffb07f19b6331d6e4ee3f0252a
4
- data.tar.gz: 4de675f594a49c74c3c6542c4c39025cad621aefd62110f155b6da3634520137
3
+ metadata.gz: a6302e970ed73bc5b9e9d1c360b07866274dfef9c17cb525fbf421c18731a0af
4
+ data.tar.gz: bc7af03bb9f4754d6ad79011b9350f05008a311701236f69f5d8f265a85e1bd7
5
5
  SHA512:
6
- metadata.gz: 5fe8e4a1d9f7f49bc3171c97372a60f540180124468b81e34dfd055aff059d4fed9d865c4b0a0a7298ea638d77d9876e709246fef564b94e03fb707a3ba23ee7
7
- data.tar.gz: 5a2aad13e0ac630865c88ef177048fbca2ef7b5cf88cc783c4cf8d502ca01faddf7e1f9fb6fa1c2b5db1c339124cf3bafeea3425074cfe1789eb29e714d8229e
6
+ metadata.gz: 4792210d5b87ea5ed46be38635a2c6851a355c97cc964b59cfb8c35031bb5da0b18f36ac496ce59f031e9108cd469821ea3eb887bb22ecb6cf0b0744ecaaff4f
7
+ data.tar.gz: ae695a6d13a154a1b5d3f9fb060c1e8aabf346c719a8d5e3c2f76f07d4eb81260550796ef7721730b616090be5d0aaecd6ee726b85e6fbdd13ea51c7fd1aa4ec
@@ -18,6 +18,7 @@ module Jxedt
18
18
  :xcconfig_configuration_alias => "xcconfig文件中配置多configuration的别名(一定要唯一),用于搜索替换,我们用来支持多configuration的二进制。一般不需要设置,默认值为'cocoapods-jxedt-binary'",
19
19
  :framework_header_search_enabled => "开启binary的组件是否配置HEADER_SEARCH_PATH头文件搜索,兼容头文件引用的问题。默认为false",
20
20
  :silent_build => "静默编译,即不输出编译命令。默认true",
21
+ :fix_swiftinterface_pods => "修复swiftinterface的bug,即:组件中包含和module name同名的class,使用不同swift编译器编译时报错;需要填写需要修复的组件名称",
21
22
  :configurations => "支持的configuration配置,可以写字符串'Debug'或'Release',也可以写多个'['Debug', 'Release']'。默认为'Release'",
22
23
  :xcframework => "编译结果是否为xcframework。默认false",
23
24
  :clean_build => "编译的时候是否clean build。默认true",
@@ -119,6 +120,11 @@ module Jxedt
119
120
  @dsl_config[:silent_build] || @dsl_config[:silent_build].nil?
120
121
  end
121
122
 
123
+ def should_fix_swiftinterface_bug?(target_name)
124
+ @fix_swiftinterface_pods = @dsl_config[:fix_swiftinterface_pods] || []
125
+ @fix_swiftinterface_pods.include?(target_name)
126
+ end
127
+
122
128
  def xcframework?
123
129
  @dsl_config[:xcframework] || false
124
130
  end
@@ -201,7 +207,12 @@ module Jxedt
201
207
  end
202
208
 
203
209
  def git_remote_repo
204
- @remote ||= cache_repo[:remote]
210
+ @remote ||= begin
211
+ remote = cache_repo[:remote]
212
+ remote.chomp!('/') if remote.is_a?(String) # 去除最后的'/'
213
+ remote.strip! if remote.is_a?(String) # 去除左右空格、转义字符
214
+ remote
215
+ end
205
216
  end
206
217
 
207
218
  def cache_repo_enabled?
@@ -20,6 +20,7 @@ module Pod
20
20
  def handle_pods_project_configurations!(installer)
21
21
  installer.pods_project.targets.each do |target|
22
22
  target.build_configurations.each do |config|
23
+ config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "YES"
23
24
  config.build_settings["CODE_SIGN_IDENTITY"] = "" if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
24
25
  end
25
26
  end
@@ -35,6 +35,16 @@ module Jxedt
35
35
  else
36
36
  collect_output(target, Dir[target_products_dir_of(target, sdks[0]) + "/*"])
37
37
  end
38
+
39
+ # fix swiftinterface bug
40
+ if target.defines_module? && Jxedt.config.should_fix_swiftinterface_bug?(target.label)
41
+ # https://developer.apple.com/forums/thread/123253
42
+ cmd = "find #{output_path(target)} -name '*.swiftinterface' -exec sed -i -e 's/#{target.product_module_name}\\.//g' {} \\;"
43
+ `#{cmd}`
44
+
45
+ Pod::UI.puts "- Fix Swiftinterface Bug: #{target}".magenta unless Jxedt.config.silent_build?
46
+ Pod::UI.puts_indented "$ #{cmd}" unless Jxedt.config.silent_build?
47
+ end
38
48
  end
39
49
  end
40
50
 
@@ -54,8 +54,6 @@ module Pod
54
54
  class BuildSettings
55
55
  # missing framework header search paths
56
56
  def missing_framework_header_search_path(pt)
57
- return [] unless pt.frame_header_search_paths_enable?
58
-
59
57
  paths = []
60
58
  pt.file_accessors.each do |file_accessor|
61
59
  # xcframeworks
@@ -123,7 +121,11 @@ module Pod
123
121
  alias_method :old_raw_header_search_paths, :_raw_header_search_paths
124
122
  def _raw_header_search_paths
125
123
  header_search_paths = old_raw_header_search_paths
126
- header_search_paths.concat pod_targets.flat_map { |pt| missing_framework_header_search_path(pt) }
124
+ header_search_paths.concat pod_targets.flat_map { |pt|
125
+ search_paths = []
126
+ search_paths.concat missing_framework_header_search_path(pt) if pt.frame_header_search_paths_enable?
127
+ search_paths
128
+ }
127
129
  header_search_paths.uniq
128
130
  end
129
131
  end
@@ -134,7 +136,8 @@ module Pod
134
136
  alias_method :old_raw_header_search_paths, :_raw_header_search_paths
135
137
  def _raw_header_search_paths
136
138
  header_search_paths = old_raw_header_search_paths
137
- header_search_paths.concat dependent_targets.flat_map { |pt| missing_framework_header_search_path(pt) } if target.should_build?
139
+ # 两个条件都满足时添加header_search_paths
140
+ header_search_paths.concat dependent_targets.flat_map { |pt| missing_framework_header_search_path(pt) } if target.should_build? && target.frame_header_search_paths_enable?
138
141
  header_search_paths.uniq
139
142
  end
140
143
 
@@ -12,11 +12,13 @@ module Pod
12
12
  ]
13
13
  def self.options
14
14
  [
15
- ['--force-push', '强制推送组件二进制到远程,远程有相同的校验和会被本地覆盖']
15
+ ['--force-push', '强制推送组件二进制到远程,远程有相同的校验和会被本地覆盖'],
16
+ ['--name', '需要推送到远程的组件名称,不填则推送全部的二进制组件到远程']
16
17
  ]
17
18
  end
18
19
  def initialize(argv)
19
20
  @force_push = argv.flag?('force-push', false)
21
+ @name = argv.option('name')
20
22
  super
21
23
  end
22
24
 
@@ -32,7 +34,10 @@ module Pod
32
34
  require 'cocoapods-jxedt/git_helper/cache_pucher'
33
35
 
34
36
  output_dir = Pod::Config.instance.sandbox.root + Jxedt.config.binary_dir
35
- Jxedt::CachePucher.push(output_dir, nil, @force_push)
37
+
38
+ targets = []
39
+ targets += @name.split(',') if @name && @name.length > 0
40
+ Jxedt::CachePucher.push(output_dir, targets, @force_push)
36
41
  end
37
42
  end
38
43
  end
@@ -75,7 +75,8 @@ module Pod
75
75
  lines = File.readlines(file_path)
76
76
  # 获取命中的行
77
77
  File.foreach(file_path).with_index {|line, num|
78
- matched = line =~ /^\s*#import\s*"#{header_name_regulation}"\s*\n$/ || line =~ /^\s*#import\s*<#{header_name_regulation}>\s*\n$/
78
+ matched_regex = "(^\s*#import\s*\"#{header_name_regulation}\")|(^\s*#import\s*<#{header_name_regulation}>)"
79
+ matched = line =~ /#{matched_regex}/
79
80
  next unless matched
80
81
 
81
82
  header_name = line.match(/(?<=")#{header_name_regulation}(?=")/) || line.match(/(?<=<)#{header_name_regulation}(?=>)/)
@@ -83,7 +84,7 @@ module Pod
83
84
 
84
85
  changed = true # 文件需要修改
85
86
  project_module_name = public_header_mapping["#{header_name}"]
86
- replace_line = "#import " << "<#{project_module_name}/#{header_name}>\n"
87
+ replace_line = line.gsub(/#{matched_regex}/, "#import <#{project_module_name}/#{header_name}>")
87
88
  lines[num] = replace_line
88
89
  record << "#{file_path} 第#{num}行,#{line} => #{replace_line}"
89
90
  }
@@ -107,7 +108,8 @@ module Pod
107
108
  文件修改详情:
108
109
  #{JSON.pretty_generate(record)}
109
110
  LOGS
110
- logs.gsub!('\\"', '"').gsub!('\\n', '') # 去除转义字符
111
+ logs.gsub!('\\"', '"')# 去除转义字符
112
+ logs.gsub!('\\n', '') # 去除转义字符
111
113
  puts logs if @verbose_flag
112
114
  File.open(log_file_path, 'w') { |file| file.write("#{logs}") } unless log_file_path.nil?
113
115
  end
@@ -53,7 +53,7 @@ module Pod
53
53
  all_binary! 组件全部使用二进制
54
54
  binary_dir('../_Prebuild') 配置二进制的放置路径
55
55
  binary_switch(true) 二进制开关
56
- framework_header_search_enabled(true) 开启配置依赖的framework头文件配置
56
+ framework_header_search_enabled! 开启配置依赖的framework头文件配置
57
57
  use_binary_settings(Hash) 使用二进制的组件配置
58
58
  cocoapods_jxedt_config(Hash) 配置插件
59
59
  DSL_METHOD
@@ -1,3 +1,3 @@
1
1
  module CocoapodsJxedt
2
- VERSION = "0.0.20"
2
+ VERSION = "0.0.21"
3
3
  end
@@ -16,7 +16,7 @@ module Jxedt
16
16
  output_dir.children.each do |child|
17
17
  next unless child.directory?
18
18
  pod_name = child.basename.to_s
19
- next if targets && targets.is_a?(Array) && !(targets.include?(pod_name))
19
+ next if targets && targets.is_a?(Array) && targets.size > 0 && !(targets.include?(pod_name))
20
20
 
21
21
  pod_checksum = child.children.select { |ch| ch.extname == '.checksum' }.first
22
22
  pod_checksum = pod_checksum.basename.sub_ext('').to_s unless pod_checksum.nil?
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.20
4
+ version: 0.0.21
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-31 00:00:00.000000000 Z
11
+ date: 2023-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods