cocoapods-fy-bin 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d7b3392b5c0f86ef30102bdfaa6082789a6551bd29b89882a2169017f52e4ce
4
- data.tar.gz: 84883396084cd316e277e2d8e4221365aecff4ac4861b76e6397bcdda8c90f31
3
+ metadata.gz: 213c8226fe3dfbe423df192225e48ff350ca37494e79b7efc212c18f57698931
4
+ data.tar.gz: 1ab095c3672015afbeed53497a15127065f8076d3caeed0c1d985d6074bc71b1
5
5
  SHA512:
6
- metadata.gz: 641a61b03a5744633f16a913aa3da2b85c7d6b1f9f1988728e174e0378239b3dbf83c95e4c36fd9901a099fd64a83d7fe2b58224706f6de6f889b6da362416d5
7
- data.tar.gz: 64b8b127610c403e399686b347fdf346d2cc1d0f8b8c70142140b47c376f0aa738dc6d24b9759053c5dc8adace34892a35a179a25bc776d659dc23d2ebcbb552
6
+ metadata.gz: 49037edd4a308d61702a13315c2d4071e68b43b7430f010a35632ce3dda73d3f014a4e274ba1d8ad1b755b9b0e75c3a9e5ef4daf4722730147a719c40f6eab09
7
+ data.tar.gz: e182deff9c70c7793daa6cade6f23a64cf94aad5e6080d6e1c88501c381e037354796394927371674d7ce9d2513e5f8330b1bc286b987c29bfc64b132426b45b
data/README.md CHANGED
@@ -1 +1,40 @@
1
+ ### 特色:
1
2
 
3
+ 1.**支持swift二进制化编译**
4
+
5
+ 2.**支持源码/二进制切换**
6
+
7
+ 3.**无入侵、不影响现有业务**
8
+
9
+ 关于 插件具体的架构部署实践和更详细的资源,可以参考
10
+
11
+ > [iOS编译速度如何稳定提高10倍以上](https://juejin.cn/post/6903407900006449160)
12
+ >
13
+ > [iOS美团同款"ZSource"二进制调试实现](https://juejin.im/post/5f066cfa5188252e893a136e)
14
+ >
15
+ > [iOS教你如何像RN一样实时编译](https://juejin.im/post/6850037272415813645)
16
+ >
17
+ > [Swift编译慢?请看这里,全套开源](https://juejin.im/post/6890419459639476237)
18
+ >
19
+ > [OC-Demo](https://github.com/su350380433/cocoapods-imy-bin-demo)
20
+ >
21
+ > [Swift-OC-Demo](https://github.com/su350380433/Swift-OC-Demo)
22
+
23
+
24
+
25
+
26
+
27
+ ## 一、使用教程
28
+
29
+ [使用教程](./使用教程.md)
30
+
31
+
32
+
33
+
34
+ ## 二、感谢
35
+
36
+ **[cocoapods-imy-bin](https://github.com/MeetYouDevs/cocoapods-imy-bin)**
37
+
38
+ **[cocoapods-bin](https://github.com/tripleCC/cocoapods-bin)**
39
+
40
+ [美团 iOS 工程 zsource 命令背后的那些事儿](https://tech.meituan.com/2019/08/08/the-things-behind-the-ios-project-zsource-command.html)
@@ -1,12 +1,10 @@
1
1
 
2
- require 'cocoapods-fy-bin/command/bin/initHotKey'
3
2
  require 'cocoapods-fy-bin/command/bin/init'
4
3
  require 'cocoapods-fy-bin/command/bin/archive'
5
4
  require 'cocoapods-fy-bin/command/bin/auto'
6
5
  require 'cocoapods-fy-bin/command/bin/code'
7
6
  require 'cocoapods-fy-bin/command/bin/update'
8
7
  require 'cocoapods-fy-bin/command/bin/install'
9
- require 'cocoapods-fy-bin/command/bin/imy'
10
8
 
11
9
  require 'cocoapods-fy-bin/helpers'
12
10
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  module CBin
3
- VERSION = '0.1.8'
3
+ VERSION = '0.1.9'
4
4
  end
5
5
 
6
6
  module Pod
@@ -178,13 +178,13 @@ module CBin
178
178
  defines += "GCC_PREPROCESSOR_DEFINITIONS='$(inherited)'"
179
179
  defines += " SWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited)' "
180
180
  defines += @spec.consumer(@platform).compiler_flags.join(' ')
181
- options = ios_build_options
181
+ # options = ios_build_options
182
182
  # if is_debug_model
183
183
  archs = ios_architectures
184
184
  # archs = %w[arm64 armv7 armv7s]
185
185
  pre_build_command
186
186
  archs.map do |arch|
187
- # -fembed-bitcode支持bitcode BUILD_LIBRARY_FOR_DISTRIBUTION=YES 构建向后兼容的framework
187
+ # -fembed-bitcode包含bitcode BUILD_LIBRARY_FOR_DISTRIBUTION=YES 构建向后兼容的framework
188
188
  xcodebuild(defines, "ARCHS=\'#{arch}\' OTHER_CFLAGS=\'-fembed-bitcode -Qunused-arguments\' DEBUG_INFORMATION_FORMAT=\'dwarf-with-dsym\' BUILD_LIBRARY_FOR_DISTRIBUTION=YES","build-#{arch}",@build_model)
189
189
  end
190
190
  suf_build_command
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-fy-bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - dr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-08 00:00:00.000000000 Z
11
+ date: 2022-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parallel
@@ -110,9 +110,7 @@ files:
110
110
  - lib/cocoapods-fy-bin/command/bin/archive.rb
111
111
  - lib/cocoapods-fy-bin/command/bin/auto.rb
112
112
  - lib/cocoapods-fy-bin/command/bin/code.rb
113
- - lib/cocoapods-fy-bin/command/bin/imy.rb
114
113
  - lib/cocoapods-fy-bin/command/bin/init.rb
115
- - lib/cocoapods-fy-bin/command/bin/initHotKey.rb
116
114
  - lib/cocoapods-fy-bin/command/bin/install.rb
117
115
  - lib/cocoapods-fy-bin/command/bin/lib/lint.rb
118
116
  - lib/cocoapods-fy-bin/command/bin/repo/update.rb
@@ -122,8 +120,6 @@ files:
122
120
  - lib/cocoapods-fy-bin/config/config.rb
123
121
  - lib/cocoapods-fy-bin/config/config_asker.rb
124
122
  - lib/cocoapods-fy-bin/config/config_builder.rb
125
- - lib/cocoapods-fy-bin/config/config_hot_key.rb
126
- - lib/cocoapods-fy-bin/config/config_hot_key_asker.rb
127
123
  - lib/cocoapods-fy-bin/gem_version.rb
128
124
  - lib/cocoapods-fy-bin/helpers.rb
129
125
  - lib/cocoapods-fy-bin/helpers/build_helper.rb
@@ -1,46 +0,0 @@
1
- require 'cocoapods-fy-bin/config/config_hot_key_asker'
2
-
3
- module Pod
4
- class Command
5
- class Bin < Command
6
- class Imy < Bin
7
- self.summary = '快捷键'
8
- self.description = <<-DESC
9
- 创建 文件,在其中保存插件需要的配置信息,
10
- 如二进制私有源地址、源码私有源地址等。
11
- DESC
12
-
13
- self.arguments = [
14
- CLAide::Argument.new('1', false)
15
- ]
16
-
17
- def self.options
18
- [
19
- ].concat(super)
20
- end
21
-
22
- def initialize(argv)
23
- @hot_key = argv.shift_argument || '1'
24
- super
25
- end
26
-
27
- def run
28
- CBin.config_hot_key.set_hot_key_index(@hot_key)
29
- UI.puts "cd #{CBin.config_hot_key.hot_key_dir}".yellow
30
-
31
- if Dir.exist?(CBin.config_hot_key.hot_key_dir)
32
- Dir.chdir(CBin.config_hot_key.hot_key_dir) do
33
- UI.puts " #{CBin.config_hot_key.hot_key_cmd}".yellow
34
- system CBin.config_hot_key.hot_key_cmd
35
- end
36
- else
37
- raise "配置项中文件目录不存在 #{CBin.config_hot_key.hot_key_dir}"
38
- end
39
-
40
-
41
- end
42
-
43
- end
44
- end
45
- end
46
- end
@@ -1,70 +0,0 @@
1
-
2
- require 'cocoapods-fy-bin/config/config_hot_key_asker'
3
-
4
- module Pod
5
- class Command
6
- class Bin < Command
7
- class Inithk < Bin
8
- self.summary = '初始化快捷键配置.'
9
- self.description = <<-DESC
10
- 创建 文件,在其中保存插件需要的配置信息,
11
- 如二进制私有源地址、源码私有源地址等。
12
- DESC
13
-
14
- def self.options
15
- [
16
- ['--bin-url=URL', '配置文件地址,直接从此地址下载配置文件']
17
- ].concat(super)
18
- end
19
-
20
- def initialize(argv)
21
- @bin_url = argv.option('bin-url')
22
- super
23
- end
24
-
25
- def run
26
- if @bin_url.nil?
27
- config_with_asker
28
- else
29
- config_with_url(@bin_url)
30
- end
31
- end
32
-
33
- private
34
-
35
- def config_with_url(url)
36
- require 'open-uri'
37
-
38
- UI.puts "开始下载配置文件...\n"
39
- file = open(url)
40
- contents = YAML.safe_load(file.read)
41
-
42
- UI.puts "开始同步配置文件...\n"
43
- CBin.config_hot_key.sync_config(contents.to_hash)
44
- UI.puts "设置完成.\n".green
45
- rescue Errno::ENOENT => e
46
- raise Informative, "配置文件路径 #{url} 无效,请确认后重试."
47
- end
48
-
49
- def config_with_asker
50
- asker = CBin::Config_Hot_Key::Asker.new
51
- asker.wellcome_message
52
-
53
- config = {}
54
- template_hash = CBin.config_hot_key.template_hash
55
- template_hash.each do |k, v|
56
- default = begin
57
- CBin.config_hot_key.send(k)
58
- rescue StandardError
59
- nil
60
- end
61
- config[k] = asker.ask_with_answer(v[:description], default, v[:selection])
62
- end
63
-
64
- CBin.config_hot_key.sync_config(config)
65
- asker.done_message
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,103 +0,0 @@
1
- require 'yaml'
2
- require 'cocoapods-fy-bin/native/podfile'
3
- require 'cocoapods-fy-bin/native/podfile_env'
4
- require 'cocoapods/generate'
5
-
6
- module CBin
7
- class Config_Hot_Key
8
-
9
- def config_file
10
- config_file_with_hot_key_index(hot_key_index)
11
- end
12
-
13
- def template_hash
14
- {
15
- 'hot_key_index' => { description: '快捷键', default: '1', selection: %w[1 2 3...] },
16
- 'hot_key_dir' => { description: '快捷键执行目录', default: '' },
17
- 'hot_key_cmd' => { description: '快捷键执行命令', default: 'pod bin update --no-repo-update' }
18
- }
19
- end
20
-
21
- def config_file_with_hot_key_index(hot_key_index)
22
- file = config_file_whith_hot_key_index(hot_key_index)
23
- raise "\n===== #{hot_key_index} 参数有误,请检查%w[1 2 3...]===" unless (hot_key_index.to_i).is_a?(Integer)
24
- File.expand_path("#{Pod::Config.instance.home_dir}/#{file}")
25
- end
26
-
27
- def hot_key_index
28
- @hot_key_index = 1 if @hot_key_index.is_a?(NilClass)
29
- @hot_key_index
30
- end
31
-
32
- def set_hot_key_index(hot_key_index)
33
- @hot_key_index = hot_key_index
34
- end
35
-
36
- def config_file_whith_hot_key_index(hot_key_index)
37
- "hot_key_#{hot_key_index}.yml"
38
- end
39
-
40
- def sync_config(config)
41
- File.open(config_file_with_hot_key_index(config['hot_key_index']), 'w+') do |f|
42
- f.write(config.to_yaml)
43
- end
44
- end
45
-
46
- def default_config
47
- @default_config ||= Hash[template_hash.map { |k, v| [k, v[:default]] }]
48
- end
49
-
50
- private
51
-
52
- def load_config
53
- file = config_file
54
- if (!file.nil?) && File.exist?(config_file)
55
- YAML.load_file(config_file)
56
- else
57
- default_config
58
- end
59
- end
60
-
61
- def config
62
- @config ||= begin
63
- puts "====== cocoapods-fy-bin #{CBin::VERSION} 版本 ======== \n"
64
- @config = OpenStruct.new load_config
65
- validate!
66
- @config
67
- end
68
- end
69
-
70
- def validate!
71
- template_hash.each do |k, v|
72
- selection = v[:selection]
73
- next if !selection || selection.empty?
74
-
75
- config_value = @config.send(k)
76
- next unless config_value
77
- unless selection.include?(config_value)
78
- raise Pod::Informative, "#{k} 字段的值必须限定在可选值 [ #{selection.join(' / ')} ] 内".red
79
- end
80
- end
81
- end
82
-
83
- def respond_to_missing?(method, include_private = false)
84
- config.respond_to?(method) || super
85
- end
86
-
87
- def method_missing(method, *args, &block)
88
- if config.respond_to?(method)
89
- config.send(method, *args)
90
- elsif template_hash.keys.include?(method.to_s)
91
- raise Pod::Informative, "#{method} 字段必须在配置文件 #{config_file} 中设置, 请执行 init 命令配置或手动修改配置文件".red
92
- else
93
- super
94
- end
95
- end
96
- end
97
-
98
- def self.config_hot_key
99
- @config_hot_key ||= Config_Hot_Key.new
100
- end
101
-
102
- end
103
-
@@ -1,57 +0,0 @@
1
- require 'yaml'
2
- require 'cocoapods-fy-bin/config/config_hot_key'
3
-
4
- module CBin
5
- class Config_Hot_Key
6
- class Asker
7
- def show_prompt
8
- print ' > '.green
9
- end
10
-
11
- def ask_with_answer(question, pre_answer, selection)
12
- print "\n#{question}\n"
13
-
14
- print_selection_info = lambda {
15
- print "可选值:[ #{selection.join(' / ')} ]\n" if selection
16
- }
17
- print_selection_info.call
18
- print "旧值:#{pre_answer}\n" unless pre_answer.nil?
19
-
20
- answer = ''
21
- loop do
22
- show_prompt
23
- answer = STDIN.gets.chomp.strip
24
-
25
- if answer == '' && !pre_answer.nil?
26
- answer = pre_answer
27
- print answer.yellow
28
- print "\n"
29
- end
30
-
31
- next if answer.empty?
32
- break if !selection || selection.include?(answer)
33
-
34
- print_selection_info.call
35
- end
36
-
37
- answer
38
- end
39
-
40
- def wellcome_message
41
- print <<~EOF
42
-
43
- 开始设置快捷键 pod bin imy.
44
- 所有的信息都会保存在 #{CBin.config_hot_key.config_file} 文件中.
45
- %w[hot_key.yaml]
46
- 你可以在对应目录下手动添加编辑该文件. 文件包含的配置信息样式如下:
47
-
48
- #{CBin.config_hot_key.default_config.to_yaml}
49
- EOF
50
- end
51
-
52
- def done_message
53
- print "\n设置完成.\n".green
54
- end
55
- end
56
- end
57
- end