pindo 5.13.9 → 5.13.10

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/git_handler.rb +247 -42
  3. data/lib/pindo/command/android/autobuild.rb +72 -30
  4. data/lib/pindo/command/android/autoresign.rb +23 -322
  5. data/lib/pindo/command/android/keystore.rb +7 -130
  6. data/lib/pindo/command/appstore/adhocbuild.rb +5 -14
  7. data/lib/pindo/command/appstore/autobuild.rb +64 -14
  8. data/lib/pindo/command/appstore/autoresign.rb +1 -3
  9. data/lib/pindo/command/ios/autobuild.rb +71 -53
  10. data/lib/pindo/command/ios/build.rb +8 -186
  11. data/lib/pindo/command/jps/media.rb +146 -0
  12. data/lib/pindo/command/jps/upload.rb +48 -20
  13. data/lib/pindo/command/jps.rb +1 -0
  14. data/lib/pindo/command/unity/autobuild.rb +99 -27
  15. data/lib/pindo/command/unity/packpush.rb +5 -8
  16. data/lib/pindo/command/utils/repoinit.rb +0 -2
  17. data/lib/pindo/command/utils/tag.rb +58 -26
  18. data/lib/pindo/command/utils.rb +0 -1
  19. data/lib/pindo/command/web/autobuild.rb +71 -37
  20. data/lib/pindo/command.rb +0 -56
  21. data/lib/pindo/config/build_info_manager.rb +7 -8
  22. data/lib/pindo/module/android/android_config_helper.rb +2 -11
  23. data/lib/pindo/module/appselect.rb +15 -41
  24. data/lib/pindo/module/appstore/itcapp_helper.rb +3 -6
  25. data/lib/pindo/module/build/build_helper.rb +28 -18
  26. data/lib/pindo/module/build/git_repo_helper.rb +284 -405
  27. data/lib/pindo/module/cert/pem_helper.rb +3 -6
  28. data/lib/pindo/module/pgyer/pgyerhelper.rb +193 -25
  29. data/lib/pindo/module/task/model/appstore/appstore_task.rb +5 -0
  30. data/lib/pindo/module/task/model/build/android_build_adhoc_task.rb +13 -187
  31. data/lib/pindo/module/task/model/build/android_build_dev_task.rb +36 -34
  32. data/lib/pindo/module/task/model/build/android_build_gplay_task.rb +13 -187
  33. data/lib/pindo/module/task/model/build/ios_build_adhoc_task.rb +9 -6
  34. data/lib/pindo/module/task/model/build/ios_build_appstore_task.rb +9 -6
  35. data/lib/pindo/module/task/model/build/ios_build_dev_task.rb +37 -32
  36. data/lib/pindo/module/task/model/build/web_build_dev_task.rb +7 -5
  37. data/lib/pindo/module/task/model/build_task.rb +8 -11
  38. data/lib/pindo/module/task/model/git/git_commit_task.rb +118 -0
  39. data/lib/pindo/module/task/model/git/git_tag_task.rb +125 -0
  40. data/lib/pindo/module/task/model/git_task.rb +75 -0
  41. data/lib/pindo/module/task/model/jps/jps_message_task.rb +178 -0
  42. data/lib/pindo/module/task/model/{resign → jps}/jps_resign_task.rb +13 -22
  43. data/lib/pindo/module/task/model/jps/jps_upload_media_task.rb +248 -0
  44. data/lib/pindo/module/task/model/jps/jps_upload_task.rb +38 -93
  45. data/lib/pindo/module/task/model/jps_task.rb +43 -0
  46. data/lib/pindo/module/task/model/resign/ipa_local_resign_task.rb +5 -0
  47. data/lib/pindo/module/task/model/unity/unity_config_task.rb +0 -4
  48. data/lib/pindo/module/task/model/unity/unity_export_task.rb +8 -7
  49. data/lib/pindo/module/task/model/unity/unity_update_task.rb +4 -3
  50. data/lib/pindo/module/task/model/unity/unity_yoo_asset_task.rb +8 -7
  51. data/lib/pindo/module/task/model/unity_task.rb +7 -2
  52. data/lib/pindo/module/task/pindo_task.rb +101 -1
  53. data/lib/pindo/module/task/task_manager.rb +29 -32
  54. data/lib/pindo/module/unity/nuget_helper.rb +7 -7
  55. data/lib/pindo/options/core/global_options_state.rb +96 -26
  56. data/lib/pindo/options/core/option_configuration.rb +3 -0
  57. data/lib/pindo/options/core/option_item.rb +36 -0
  58. data/lib/pindo/options/groups/build_options.rb +23 -6
  59. data/lib/pindo/options/groups/git_options.rb +115 -0
  60. data/lib/pindo/options/groups/jps_options.rb +7 -0
  61. data/lib/pindo/options/groups/option_group.rb +15 -0
  62. data/lib/pindo/options/groups/unity_options.rb +49 -0
  63. data/lib/pindo/options/options.rb +2 -0
  64. data/lib/pindo/version.rb +2 -2
  65. metadata +15 -11
  66. data/lib/pindo/base/githelper.rb +0 -686
  67. data/lib/pindo/base/pindocontext.rb +0 -602
  68. data/lib/pindo/command/utils/feishu.rb +0 -134
  69. data/lib/pindo/module/build/version_helper.rb +0 -146
  70. data/lib/pindo/module/task/model/git_tag_task.rb +0 -80
@@ -1,332 +1,33 @@
1
- require 'highline/import'
2
- require 'fileutils'
3
- require 'pindo/base/executable'
4
-
5
1
  module Pindo
6
- class Command
7
- class Android < Command
8
- class Autoresign < Android
9
-
10
- include Appselect
11
-
12
- self.summary = 'APK包重签名工具'
13
-
14
- self.description = <<-DESC
15
- 使用指定的keystore重新签名APK包。
16
-
17
- 支持功能:
18
-
19
- * 自动查找APK文件
20
-
21
- * 使用debug或release keystore签名
22
-
23
- * 支持指定APK路径
24
-
25
- * 支持上传到JPS测试平台
26
-
27
- * 支持发送测试通知
28
-
29
- * 自动zipalign优化
30
-
31
- 使用示例:
32
-
33
- $ pindo and autoresign # 重签名当前目录下的APK
34
-
35
- $ pindo and autoresign demo.apk # 重签名指定APK文件
36
-
37
- $ pindo and autoresign --release # 使用release keystore签名
38
-
39
- $ pindo and autoresign --adhoc # 使用adhoc keystore签名
40
-
41
- $ pindo and autoresign --upload # 重签名并上传到JPS
42
-
43
- $ pindo and autoresign --send # 重签名、上传并发送通知
44
- DESC
45
-
46
- self.arguments = [
47
- CLAide::Argument.new('path/to/demo.apk', true),
48
- ]
49
-
50
- def self.options
51
- [
52
- ['--apk', '指定要重签名的APK文件路径'],
53
- ['--release', '使用release keystore签名'],
54
- ['--adhoc', '使用adhoc keystore签名(默认)'],
55
- ['--proj', '指定上传到测试平台的项目名称'],
56
- ['--upload', '上传重签名后的APK到测试平台'],
57
- ['--send', '上传成功后发送测试通知'],
58
- ].concat(super)
59
- end
60
-
61
- def initialize(argv)
62
- @args_apk_file = argv.shift_argument
63
- @args_set_apk_name = argv.option('apk')
64
- @args_release_flag = argv.flag?('release', false)
65
- @args_adhoc_flag = argv.flag?('adhoc', true)
66
-
67
- @args_upload_flag = argv.flag?('upload', false)
68
- @args_send_flag = argv.flag?('send', false)
69
- @args_proj_name = argv.option('proj')
70
-
71
- if @args_send_flag
72
- @args_upload_flag = true
73
- end
74
-
75
- super
76
- @additional_args = argv.remainder!
77
- end
78
-
79
- def run
80
- # 查找APK文件
81
- apk_file_name = find_apk_file
82
-
83
- if apk_file_name.nil? || !File.exist?(apk_file_name)
84
- Funlog.instance.fancyinfo_error("未找到APK文件")
85
- return
86
- end
87
-
88
- puts
89
- puts "正在重签名的APK: #{apk_file_name}"
90
- puts "文件大小: #{(File.size(apk_file_name) / 1024.0 / 1024.0).round(2)} MB"
91
- puts "修改时间: #{File.mtime(apk_file_name)}"
92
- puts
93
-
94
- # 获取keystore配置
95
- keystore_info = get_keystore_info
96
-
97
- if keystore_info.nil?
98
- Funlog.instance.fancyinfo_error("无法获取keystore配置")
99
- return
100
- end
101
-
102
- # 执行重签名
103
- resigned_apk = resign_apk(apk_file_name, keystore_info)
104
-
105
- if resigned_apk.nil?
106
- Funlog.instance.fancyinfo_error("重签名失败")
107
- return
108
- end
109
-
110
- puts
111
- Funlog.instance.fancyinfo_success("重签名成功: #{resigned_apk}")
112
- puts
113
-
114
- # 上传到JPS
115
- if @args_upload_flag
116
- upload_to_jps(resigned_apk)
117
- end
118
- end
2
+ class Command
3
+ class Android < Command
4
+ class Autoresign < Android
119
5
 
120
- private
6
+ # TODO: 待实现
7
+ self.summary = 'APK包重签名工具(暂未实现)'
121
8
 
122
- def find_apk_file
123
- apk_file_name = @args_apk_file
124
- if !@args_set_apk_name.nil?
125
- apk_file_name = @args_set_apk_name
126
- end
9
+ self.description = <<-DESC
10
+ 使用指定的keystore重新签名APK包。
127
11
 
128
- if !apk_file_name.nil? && File.exist?(apk_file_name)
129
- return apk_file_name
130
- end
12
+ 注意: 此命令暂未实现。
13
+ DESC
131
14
 
132
- # 查找当前目录下最新的APK文件
133
- current_dir = Dir.pwd
134
- apk_files = Dir.glob(File.join(current_dir, "*.apk"))
15
+ self.arguments = []
135
16
 
136
- # 排除已经重签名的文件,优先选择最新的
137
- apk_file_name = apk_files.max_by do |f|
138
- if File.basename(f).include?("_resigned")
139
- Time.local(0, 1, 1)
140
- else
141
- File.mtime(f)
142
- end
143
- end
144
-
145
- return apk_file_name
146
- end
147
-
148
- def get_keystore_info
149
- # 根据参数确定使用哪个keystore
150
- keystore_type = @args_release_flag ? "release" : "adhoc"
151
-
152
- # 从配置中获取keystore信息
153
- config_json = load_config_json
154
- return nil if config_json.nil?
155
-
156
- keystore_info = {}
157
-
158
- if keystore_type == "release"
159
- keystore_info[:path] = config_json['app_android_keystore_release']
160
- keystore_info[:password] = config_json['app_android_keystore_release_password']
161
- keystore_info[:alias] = config_json['app_android_keystore_release_alias']
162
- keystore_info[:alias_password] = config_json['app_android_keystore_release_alias_password']
163
- else
164
- keystore_info[:path] = config_json['app_android_keystore_adhoc']
165
- keystore_info[:password] = config_json['app_android_keystore_adhoc_password']
166
- keystore_info[:alias] = config_json['app_android_keystore_adhoc_alias']
167
- keystore_info[:alias_password] = config_json['app_android_keystore_adhoc_alias_password']
168
- end
169
-
170
- # 验证keystore文件存在
171
- if keystore_info[:path].nil? || !File.exist?(keystore_info[:path])
172
- Funlog.instance.fancyinfo_error("Keystore文件不存在: #{keystore_info[:path]}")
173
- return nil
174
- end
175
-
176
- puts "使用Keystore: #{keystore_info[:path]}"
177
- puts "Keystore类型: #{keystore_type}"
178
-
179
- return keystore_info
180
- end
181
-
182
- def resign_apk(apk_file, keystore_info)
183
- # 准备输出文件名
184
- base_name = File.basename(apk_file, ".apk")
185
- output_dir = File.dirname(apk_file)
186
-
187
- # 生成临时文件名
188
- unsigned_apk = File.join(output_dir, "#{base_name}_unsigned.apk")
189
- aligned_apk = File.join(output_dir, "#{base_name}_aligned.apk")
190
- resigned_apk = File.join(output_dir, "#{base_name}_resigned.apk")
191
-
192
- begin
193
- # 1. 移除原有签名
194
- puts "1. 移除原有签名..."
195
- FileUtils.cp(apk_file, unsigned_apk)
196
- system("zip -d \"#{unsigned_apk}\" META-INF/\\* > /dev/null 2>&1")
197
-
198
- # 2. zipalign优化
199
- puts "2. 执行zipalign优化..."
200
- zipalign_cmd = "zipalign -v 4 \"#{unsigned_apk}\" \"#{aligned_apk}\""
201
-
202
- if !system(zipalign_cmd)
203
- # 如果zipalign失败,尝试使用Android SDK中的zipalign
204
- android_home = ENV['ANDROID_HOME'] || ENV['ANDROID_SDK_ROOT']
205
- if android_home
206
- build_tools_dir = Dir.glob(File.join(android_home, "build-tools", "*")).max
207
- if build_tools_dir
208
- zipalign_path = File.join(build_tools_dir, "zipalign")
209
- if File.exist?(zipalign_path)
210
- zipalign_cmd = "\"#{zipalign_path}\" -v 4 \"#{unsigned_apk}\" \"#{aligned_apk}\""
211
- system(zipalign_cmd)
212
- end
213
- end
214
- else
215
- # 如果没有zipalign,直接使用未对齐的APK
216
- FileUtils.cp(unsigned_apk, aligned_apk)
217
- end
218
- end
219
-
220
- # 3. 使用apksigner重新签名
221
- puts "3. 重新签名APK..."
222
- apksigner_cmd = [
223
- "apksigner", "sign",
224
- "--ks", keystore_info[:path],
225
- "--ks-pass", "pass:#{keystore_info[:password]}",
226
- "--ks-key-alias", keystore_info[:alias],
227
- "--key-pass", "pass:#{keystore_info[:alias_password]}",
228
- "--out", resigned_apk,
229
- aligned_apk
230
- ].join(" ")
231
-
232
- if !system(apksigner_cmd)
233
- # 如果apksigner失败,尝试使用jarsigner
234
- puts "尝试使用jarsigner..."
235
- jarsigner_cmd = [
236
- "jarsigner",
237
- "-verbose",
238
- "-sigalg", "SHA256withRSA",
239
- "-digestalg", "SHA-256",
240
- "-keystore", keystore_info[:path],
241
- "-storepass", keystore_info[:password],
242
- "-keypass", keystore_info[:alias_password],
243
- aligned_apk,
244
- keystore_info[:alias]
245
- ].join(" ")
246
-
247
- if system(jarsigner_cmd)
248
- FileUtils.mv(aligned_apk, resigned_apk)
249
- else
250
- Funlog.instance.fancyinfo_error("签名失败")
251
- return nil
252
- end
253
- end
254
-
255
- # 4. 验证签名
256
- puts "4. 验证签名..."
257
- verify_cmd = "apksigner verify \"#{resigned_apk}\""
258
- if !system(verify_cmd)
259
- # 尝试使用jarsigner验证
260
- system("jarsigner -verify \"#{resigned_apk}\"")
261
- end
262
-
263
- return resigned_apk
264
-
265
- ensure
266
- # 清理临时文件
267
- FileUtils.rm_f(unsigned_apk) if File.exist?(unsigned_apk)
268
- FileUtils.rm_f(aligned_apk) if File.exist?(aligned_apk)
269
- end
270
- end
271
-
272
- def upload_to_jps(apk_file)
273
- # 上传到JPS平台
274
- Funlog.instance.fancyinfo_start("开始上传到JPS测试平台...")
275
-
276
- upload_params = [apk_file]
277
- upload_params << "--proj=#{@args_proj_name}" if @args_proj_name
278
- upload_params << "--send" if @args_send_flag
279
-
280
- # 调用jps upload命令
281
- Pindo::Command::Jps::Upload.run(upload_params)
282
-
283
- Funlog.instance.fancyinfo_success("上传完成")
284
- end
285
-
286
- def load_config_json
287
- # 查找并加载配置文件
288
- config_file = find_config_file
289
- return nil if config_file.nil?
290
-
291
- begin
292
- config_json = JSON.parse(File.read(config_file))
293
- return config_json
294
- rescue => e
295
- Funlog.instance.fancyinfo_error("解析配置文件失败: #{e.message}")
296
- return nil
297
- end
298
- end
299
-
300
- def find_config_file
301
- current_dir = Dir.pwd
302
-
303
- # 查找顺序:当前目录 -> 父目录(向上查找)
304
- while current_dir != "/"
305
- config_file = File.join(current_dir, "config.json")
306
- if File.exist?(config_file)
307
- return config_file
308
- end
309
-
310
- # 检查.pindo目录
311
- pindo_config = File.join(current_dir, ".pindo", "config.json")
312
- if File.exist?(pindo_config)
313
- return pindo_config
314
- end
315
-
316
- current_dir = File.dirname(current_dir)
317
- end
318
-
319
- # 使用默认配置
320
- default_config = pindo_single_config.app_config_dir
321
- if default_config && File.exist?(default_config)
322
- config_file = File.join(default_config, "config.json")
323
- return config_file if File.exist?(config_file)
324
- end
17
+ def self.options
18
+ [].concat(super)
19
+ end
325
20
 
326
- return nil
327
- end
21
+ def initialize(argv)
22
+ super
23
+ end
328
24
 
329
- end
25
+ def run
26
+ # TODO: 待实现
27
+ raise Informative, "pindo android autoresign 命令暂未实现"
330
28
  end
29
+
30
+ end
331
31
  end
332
- end
32
+ end
33
+ end
@@ -1,153 +1,30 @@
1
- require 'fileutils'
2
-
3
1
  module Pindo
4
2
  class Command
5
3
  class Android < Command
6
4
  class Keystore < Android
7
5
 
8
- # Android签名管理工具
9
- self.summary = 'Android签名密钥(keystore)管理工具'
6
+ # TODO: 待实现
7
+ self.summary = 'Android签名密钥(keystore)管理工具(暂未实现)'
10
8
 
11
- # 详细说明
12
9
  self.description = <<-DESC
13
10
  Android签名密钥(keystore)管理和配置工具。
14
11
 
15
- 支持功能:
16
-
17
- * 管理Debug和Release签名密钥
18
-
19
- * 配置工程签名设置
20
-
21
- * 支持AdHoc模式签名
22
-
23
- * 从配置仓库获取签名文件
24
-
25
- 使用示例:
26
-
27
- $ pindo android keystore # 使用Debug模式签名
28
-
29
- $ pindo android keystore --release # 使用Release模式签名
30
-
31
- $ pindo android keystore --adhoc # 使用AdHoc模式签名
12
+ 注意: 此命令暂未实现,请使用 pindo android autobuild 命令。
32
13
  DESC
33
14
 
34
- # 命令参数
35
- self.arguments = [
36
- # 暂无参数
37
- ]
15
+ self.arguments = []
38
16
 
39
- # 命令选项
40
17
  def self.options
41
- [
42
- ['--adhoc', '使用adhoc模式'],
43
- ['--release', '使用release模式'],
44
- ].concat(super)
18
+ [].concat(super)
45
19
  end
46
20
 
47
21
  def initialize(argv)
48
- @args_release_flag = argv.flag?('release', false)
49
- @upload_flag = argv.flag?('upload', false)
50
- @send_flag = argv.flag?('send', false)
51
- @proj_name = argv.option('proj')
52
- @args_dsign_flag = argv.flag?('dsign', false)
53
- if @send_flag
54
- @upload_flag = true
55
- end
56
- @args_direct_flag = argv.flag?('direct', false)
57
-
58
22
  super
59
23
  end
60
24
 
61
25
  def run
62
- pindo_project_dir = Dir.pwd
63
-
64
- # # 如果设置了 dsign 标志,则执行签名文件获取并直接返回
65
- # if @args_dsign_flag
66
- # Pindo::AndroidBuildHelper.share_instance.dsign(pindo_project_dir, !@args_release_flag)
67
- # return
68
- # end
69
-
70
-
71
- app_info_obj = nil
72
- workflow_info = nil
73
- if @upload_flag
74
- proj_name = @proj_name
75
- # 传入 package_type 获取 workflow_info
76
- app_info_obj, workflow_info = PgyerHelper.share_instace.prepare_upload(
77
- working_directory: Dir.pwd,
78
- proj_name: proj_name,
79
- package_type: 'apk'
80
- )
81
-
82
- # ===== 使用 workflow 配置更新 Android 项目 =====
83
- if workflow_info && workflow_info[:package_name]
84
- workflow_packname = workflow_info[:package_name]
85
-
86
- puts "\n使用工作流配置更新 Android 项目:"
87
- puts " Workflow Package Name: #{workflow_packname}"
88
-
89
- # 一次性更新 App Name、Application ID 和 URL Schemes
90
- Pindo::AndroidConfigHelper.update_project_with_workflow(
91
- project_dir: pindo_project_dir,
92
- workflow_packname: workflow_packname
93
- )
94
-
95
- # 添加基于 Application ID 的 Scheme(在 workflow 设置完成后)
96
- Pindo::AndroidConfigHelper.add_application_id_based_scheme(
97
- project_dir: pindo_project_dir
98
- )
99
- else
100
- raise Informative, "未获取到工作流信息"
101
- end
102
- end
103
-
104
- begin
105
- apk_path = Pindo::AndroidBuildHelper.share_instance.auto_build_apk(pindo_project_dir, !@args_release_flag, @args_direct_flag)
106
- ipa_file_upload = Dir.glob(apk_path).max_by {|f| File.mtime(f)}
107
-
108
- if !ipa_file_upload.nil? && !app_info_obj.nil?
109
- description = nil
110
- result_data = PgyerHelper.share_instace.start_upload(
111
- app_info_obj: app_info_obj,
112
- ipa_file_upload: ipa_file_upload,
113
- description: description,
114
- workflow_info: workflow_info
115
- )
116
- if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
117
- PgyerHelper.share_instace.print_app_version_info(
118
- app_info_obj: app_info_obj,
119
- app_version_info_obj: result_data["data"]
120
- )
121
- if @send_flag
122
- # 始终发送给自己
123
- PgyerHelper.share_instace.send_apptest_msg(
124
- app_info_obj: app_info_obj,
125
- app_version_info_obj: result_data["data"],
126
- receiveType: "self"
127
- )
128
-
129
- # 额外发送到测试群
130
- PgyerHelper.share_instace.send_apptest_msg(
131
- app_info_obj: app_info_obj,
132
- app_version_info_obj: result_data["data"],
133
- chatEnv: "DevTest",
134
- receiveType: "chat"
135
- )
136
- end
137
- end
138
- end
139
-
140
- # 只在构建成功完成时弹出目标文件夹
141
- puts "\e[32m构建完成!正在打开目标文件夹...\e[0m"
142
- system "open #{pindo_project_dir}"
143
-
144
- rescue => e
145
- puts "\e[31m构建失败: #{e.message}\e[0m"
146
- puts "\e[33m正在打开项目文件夹以便检查错误...\e[0m"
147
- system "open #{pindo_project_dir}"
148
- raise e
149
- end
150
-
26
+ # TODO: 待实现
27
+ raise Informative, "pindo android keystore 命令暂未实现,请使用 pindo android autobuild"
151
28
  end
152
29
 
153
30
  end
@@ -4,12 +4,11 @@ require 'find'
4
4
  require 'fileutils'
5
5
  require 'pindo/base/executable'
6
6
  require 'pindo/module/build/build_helper'
7
- require 'pindo/module/build/version_helper'
7
+ require 'pindo/module/build/git_repo_helper'
8
8
  require 'pindo/module/xcode/xcode_build_config'
9
9
  require 'pindo/module/xcode/xcode_build_helper'
10
10
  require 'pindo/config/ios_config_parser'
11
11
  require 'pindo/config/build_info_manager'
12
- require 'pindo/base/pindocontext'
13
12
  require 'pindo/module/task/task_manager'
14
13
  require 'pindo/module/task/model/unity/unity_config_task'
15
14
  require 'pindo/module/task/model/unity/unity_update_task'
@@ -80,7 +79,8 @@ module Pindo
80
79
  @option_items ||= begin
81
80
  items = Pindo::Options::OptionGroup.merge(
82
81
  Pindo::Options::BuildOptions.select(:bundleid),
83
- Pindo::Options::JPSOptions.select(:proj, :upload, :send)
82
+ Pindo::Options::JPSOptions.select(:proj, :upload, :send),
83
+ Pindo::Options::UnityOptions.all
84
84
  )
85
85
 
86
86
  # 添加 increase 参数
@@ -98,12 +98,7 @@ module Pindo
98
98
 
99
99
  # 命令的选项列表
100
100
  def self.options
101
- # 转换为 CLAide 格式
102
- option_items.map { |item| item.to_claide_option }.concat([
103
- ['--skipconfig', '跳过Unity编译模式配置(加快构建速度)'],
104
- ['--skiplib', '跳过Unity必备库更新(加快构建速度)'],
105
- ['--skipyoo', '跳过YooAsset资源打包(加快构建速度)']
106
- ]).concat(super)
101
+ option_items.map(&:to_claide_option).concat(super)
107
102
  end
108
103
 
109
104
  def initialize(argv)
@@ -138,11 +133,7 @@ module Pindo
138
133
 
139
134
  begin
140
135
  # 加载 JPS 配置(如果存在)
141
- context = Pindo::PindoContext.instance
142
- context.load_and_apply_jps_config(pindo_project_dir)
143
-
144
- # 注意:参数缓存已在 initialize 中通过 GlobalOptionsState 处理
145
- # 不再使用 PindoContext 的缓存机制
136
+ Pindo::BuildHelper.share_instance.load_jps_build_config(pindo_project_dir)
146
137
 
147
138
  # 处理配置文件
148
139
  prepare_config(pindo_project_dir)