pindo 5.6.0 → 5.6.2

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: 7d23d4410fab4ab64064d30c2de2d2d80497680f7ef7060dfbec66b8846590fd
4
- data.tar.gz: b5cb4eac436803e526996758e177f7c65fb1b46fd61a4206a73b10186b36032d
3
+ metadata.gz: 74540551eee20b918542b7de441e214fcfcbcaa4d747348efdd9bcd312d36d67
4
+ data.tar.gz: 6f4d6e175b6ff344b9bb26fe85f3a349348a3487ca0999fb86b847d8e37446de
5
5
  SHA512:
6
- metadata.gz: 740540fd9b326e5d499f7e7b676114ee0d16d76cf7ceff46c542ef77f4f5d42919b9e53b137c1fdfd7381e7cd2aa1d530cfeda93abf25fbf12c5d5a6811b5d06
7
- data.tar.gz: 68d4a36608e23b651a2acac424ecfb3f2bd8b9c026c435d908841ae064952d7ecdc1166f3b87f634c34a32e7bc2c734abe794e2e694c4e416eca68c09f053d76
6
+ metadata.gz: 31a3e0cfef6eb95d8deaa16f95a15da7c91fb33f10acc642e57e9e4e26a0f315114fec8572ca35e0c1ebb83bdc163101e10155555ef23a30171a0f3fbd18f96b
7
+ data.tar.gz: 31fd9e169330f6a8713d9d7472c96d26a74bb32afb3e6c9ad3d6d36dd3a84f76f939ee4e50f478650916cc9a101170e27bcb8d861d69296f2802bc6613da6221
@@ -280,13 +280,23 @@ module Pindo
280
280
  cached_jar = get_cached_gradle_wrapper_jar(gradle_version)
281
281
  if cached_jar
282
282
  FileUtils.cp(cached_jar, wrapper_jar_path)
283
- puts "\e[32m✓ 从缓存复制 gradle-wrapper.jar 成功\e[0m"
284
- return true
283
+ # 验证缓存文件
284
+ if verify_gradle_wrapper_jar_complete(wrapper_jar_path, gradle_version)
285
+ puts "\e[32m✓ 从缓存复制 gradle-wrapper.jar 成功\e[0m"
286
+ return true
287
+ else
288
+ puts "\e[33m⚠ 缓存文件验证失败,继续下载\e[0m"
289
+ end
285
290
  end
286
291
 
287
292
  # 3. 尝试下载
288
293
  if download_standard_wrapper_jar(wrapper_jar_path, gradle_version)
289
- return true
294
+ # 验证下载的文件
295
+ if verify_gradle_wrapper_jar_complete(wrapper_jar_path, gradle_version)
296
+ return true
297
+ else
298
+ puts "\e[33m⚠ 下载文件验证失败,使用内置文件\e[0m"
299
+ end
290
300
  end
291
301
 
292
302
  # 4. 最后回退:使用内置文件
@@ -299,59 +309,6 @@ module Pindo
299
309
  false
300
310
  end
301
311
 
302
- # 使用gradlew脚本生成wrapper
303
- def generate_wrapper_with_gradlew(project_path, gradle_version)
304
- puts "使用gradlew脚本生成wrapper..."
305
-
306
- # 切换到项目目录
307
- Dir.chdir(project_path) do
308
- # 使用gradlew wrapper命令生成wrapper
309
- cmd = "./gradlew wrapper --gradle-version #{gradle_version}"
310
- puts "执行命令: #{cmd}"
311
-
312
- result = system(cmd)
313
- if result
314
- puts "\e[32m✓ gradle wrapper生成成功\e[0m"
315
- return true
316
- else
317
- puts "\e[31m✗ gradle wrapper生成失败\e[0m"
318
- return false
319
- end
320
- end
321
- rescue => e
322
- puts "\e[31m✗ gradle wrapper生成异常: #{e.message}\e[0m"
323
- false
324
- end
325
-
326
- # 使用gradle命令生成wrapper
327
- def generate_wrapper_with_gradle(project_path, gradle_version)
328
- puts "使用gradle命令生成wrapper..."
329
-
330
- # 检查系统是否有gradle命令
331
- unless system("which gradle > /dev/null 2>&1")
332
- puts "\e[33m⚠ 系统未安装gradle,使用简化的wrapper生成方式...\e[0m"
333
- return generate_wrapper_manually(project_path, gradle_version)
334
- end
335
-
336
- # 切换到项目目录
337
- Dir.chdir(project_path) do
338
- # 使用gradle wrapper命令生成wrapper
339
- cmd = "gradle wrapper --gradle-version #{gradle_version}"
340
- puts "执行命令: #{cmd}"
341
-
342
- result = system(cmd)
343
- if result
344
- puts "\e[32m✓ gradle wrapper生成成功\e[0m"
345
- return true
346
- else
347
- puts "\e[31m✗ gradle wrapper生成失败\e[0m"
348
- return false
349
- end
350
- end
351
- rescue => e
352
- puts "\e[31m✗ gradle wrapper生成异常: #{e.message}\e[0m"
353
- false
354
- end
355
312
 
356
313
  # 改进的手动生成wrapper逻辑(带内置文件回退)
357
314
  def generate_wrapper_manually(project_path, gradle_version)
@@ -428,9 +385,22 @@ module Pindo
428
385
  return false
429
386
  end
430
387
 
431
- # 检查 jar 文件是否包含 GradleWrapperMain 类
432
- unless verify_jar_contains_class(jar_path, "org.gradle.wrapper.GradleWrapperMain")
433
- puts "\e[33m⚠ gradle-wrapper.jar 缺少 GradleWrapperMain 类\e[0m"
388
+ # 检查 jar 文件是否包含必要的类
389
+ required_classes = [
390
+ "org.gradle.wrapper.GradleWrapperMain",
391
+ "org.gradle.cli.CommandLineParser",
392
+ "org.gradle.wrapper.WrapperExecutor"
393
+ ]
394
+
395
+ missing_classes = []
396
+ required_classes.each do |class_name|
397
+ unless verify_jar_contains_class(jar_path, class_name)
398
+ missing_classes << class_name
399
+ end
400
+ end
401
+
402
+ if missing_classes.any?
403
+ puts "\e[33m⚠ gradle-wrapper.jar 缺少必要类: #{missing_classes.join(', ')}\e[0m"
434
404
  return false
435
405
  end
436
406
 
@@ -495,130 +465,128 @@ module Pindo
495
465
  puts "\e[32m✓ gradle-wrapper.jar 已保存到缓存: #{cached_jar}\e[0m"
496
466
  end
497
467
 
498
- # 改进的下载标准 gradle-wrapper.jar
468
+ # 改进的下载标准 gradle-wrapper.jar(使用正确的下载策略)
499
469
  def download_standard_wrapper_jar(wrapper_jar_path, gradle_version)
500
470
  puts "下载标准的gradle-wrapper.jar..."
501
471
 
502
- # 使用更可靠的下载源
503
- wrapper_jar_urls = [
504
- # 官方 Gradle 分发服务(最可靠)
505
- "https://services.gradle.org/distributions/gradle-#{gradle_version}-wrapper.jar",
506
- # Maven Central(备用)
507
- "https://repo1.maven.org/maven2/org/gradle/gradle-wrapper/#{gradle_version}/gradle-wrapper-#{gradle_version}.jar",
508
- # GitHub releases(最后备用)
509
- "https://github.com/gradle/gradle/releases/download/v#{gradle_version}/gradle-#{gradle_version}-wrapper.jar"
472
+ # 使用正确的下载策略:从Gradle分发包中提取wrapper jar
473
+ gradle_dist_urls = [
474
+ "https://services.gradle.org/distributions/gradle-#{gradle_version}-bin.zip"
510
475
  ]
511
476
 
512
- wrapper_jar_urls.each do |url|
513
- puts "尝试下载: #{url}"
514
- if download_with_curl(url, wrapper_jar_path)
515
- # 增强验证:检查文件完整性和类存在性
516
- if verify_gradle_wrapper_jar_complete(wrapper_jar_path, gradle_version)
517
- puts "\e[32m✓ gradle-wrapper.jar下载并验证成功\e[0m"
518
- # 保存到缓存
519
- save_to_cache(wrapper_jar_path, gradle_version)
520
- return true
521
- else
522
- puts "\e[33m⚠ 下载的文件验证失败,尝试下一个源\e[0m"
523
- File.delete(wrapper_jar_path) if File.exist?(wrapper_jar_path)
524
- end
477
+ gradle_dist_urls.each do |url|
478
+ puts "尝试从Gradle分发包下载: #{url}"
479
+ if download_and_extract_wrapper_from_distribution(url, wrapper_jar_path, gradle_version)
480
+ puts "\e[32m✓ 从Gradle分发包成功提取gradle-wrapper.jar\e[0m"
481
+ # 保存到缓存
482
+ save_to_cache(wrapper_jar_path, gradle_version)
483
+ return true
525
484
  end
526
485
  end
527
486
 
528
- puts "\e[31m✗ 所有下载源都失败\e[0m"
487
+
488
+ puts "\e[31m✗ 下载 gradle-wrapper.jar 失败\e[0m"
529
489
  false
530
490
  end
531
491
 
532
- # 下载gradle分发包并生成wrapper
533
- def download_and_generate_wrapper(project_path, gradle_version)
534
- puts "下载gradle分发包并生成wrapper..."
535
-
492
+ # 从Gradle分发包中下载并提取wrapper jar
493
+ def download_and_extract_wrapper_from_distribution(dist_url, wrapper_jar_path, gradle_version)
536
494
  begin
537
495
  # 创建临时目录
538
- temp_dir = Dir.mktmpdir("gradle_download_")
496
+ temp_dir = Dir.mktmpdir("gradle_dist_")
497
+ zip_path = File.join(temp_dir, "gradle-#{gradle_version}-bin.zip")
498
+
499
+ # 下载Gradle分发包
500
+ puts "下载Gradle分发包: #{dist_url}"
501
+ unless download_with_curl(dist_url, zip_path)
502
+ puts "\e[33m⚠ 下载Gradle分发包失败\e[0m"
503
+ return false
504
+ end
505
+
506
+ # 检查下载的文件大小
507
+ unless File.exist?(zip_path) && File.size(zip_path) > 1000000 # 至少1MB
508
+ puts "\e[33m⚠ 下载的Gradle分发包文件异常\e[0m"
509
+ return false
510
+ end
511
+
512
+ # 解压Gradle分发包
513
+ puts "解压Gradle分发包..."
514
+ unless system("cd #{temp_dir} && unzip -q gradle-#{gradle_version}-bin.zip")
515
+ puts "\e[33m⚠ 解压Gradle分发包失败\e[0m"
516
+ return false
517
+ end
518
+
519
+ # 查找gradle-wrapper jar文件
539
520
  gradle_dir = File.join(temp_dir, "gradle-#{gradle_version}")
521
+ wrapper_jar_source = File.join(gradle_dir, "lib", "gradle-wrapper-#{gradle_version}.jar")
522
+
523
+ unless File.exist?(wrapper_jar_source)
524
+ puts "\e[33m⚠ 在Gradle分发包中未找到gradle-wrapper jar文件\e[0m"
525
+ return false
526
+ end
540
527
 
541
- # 下载gradle分发包
542
- download_urls = [
543
- "https://services.gradle.org/distributions/gradle-#{gradle_version}-bin.zip",
544
- "https://github.com/gradle/gradle-distributions/releases/download/v#{gradle_version}/gradle-#{gradle_version}-bin.zip"
545
- ]
528
+ # 解压gradle-wrapper jar文件,提取真正的gradle-wrapper.jar
529
+ extract_temp_dir = Dir.mktmpdir("gradle_wrapper_extract_")
530
+ extract_cmd = "cd #{extract_temp_dir} && unzip -q '#{wrapper_jar_source}'"
546
531
 
547
- download_success = false
548
- download_urls.each do |url|
549
- puts "尝试下载: #{url}"
550
- zip_path = File.join(temp_dir, "gradle-#{gradle_version}-bin.zip")
551
-
552
- if download_with_curl(url, zip_path)
553
- # 解压gradle分发包
554
- if system("cd #{temp_dir} && unzip -q gradle-#{gradle_version}-bin.zip")
555
- download_success = true
556
- puts "✓ gradle分发包下载并解压成功"
557
- break
558
- end
559
- end
532
+ unless system(extract_cmd)
533
+ puts "\e[33m⚠ 解压gradle-wrapper jar文件失败\e[0m"
534
+ FileUtils.rm_rf(extract_temp_dir)
535
+ return false
560
536
  end
561
537
 
562
- unless download_success
563
- puts "\e[31m✗ 下载gradle分发包失败\e[0m"
538
+ # 查找解压后的gradle-wrapper.jar文件
539
+ extracted_wrapper_jar = File.join(extract_temp_dir, "gradle-wrapper.jar")
540
+
541
+ unless File.exist?(extracted_wrapper_jar)
542
+ puts "\e[33m⚠ 在解压后的文件中未找到gradle-wrapper.jar\e[0m"
543
+ FileUtils.rm_rf(extract_temp_dir)
564
544
  return false
565
545
  end
566
546
 
567
- # 使用下载的gradle生成wrapper
568
- gradle_bin = File.join(gradle_dir, "bin", "gradle")
569
- if File.exist?(gradle_bin)
570
- Dir.chdir(project_path) do
571
- cmd = "#{gradle_bin} wrapper --gradle-version #{gradle_version}"
572
- puts "执行命令: #{cmd}"
573
-
574
- result = system(cmd)
575
- if result
576
- puts "\e[32m✓ gradle wrapper生成成功\e[0m"
577
- # 重要:在清理临时目录之前,确保wrapper已经生成完成
578
- # 等待一下确保文件写入完成
579
- sleep(1)
580
- return true
581
- else
582
- puts "\e[31m✗ gradle wrapper生成失败\e[0m"
583
- return false
584
- end
585
- end
586
- else
587
- puts "\e[31m✗ 未找到gradle可执行文件\e[0m"
547
+ # 验证解压后的wrapper jar文件
548
+ unless verify_gradle_wrapper_jar_complete(extracted_wrapper_jar, gradle_version)
549
+ puts "\e[33m⚠ 解压后的wrapper jar文件验证失败\e[0m"
550
+ FileUtils.rm_rf(extract_temp_dir)
588
551
  return false
589
552
  end
590
553
 
554
+ # 复制解压后的wrapper jar文件到目标位置
555
+ FileUtils.cp(extracted_wrapper_jar, wrapper_jar_path)
556
+ puts "\e[32m✓ 成功从Gradle分发包提取gradle-wrapper.jar\e[0m"
557
+
558
+ # 清理临时目录
559
+ FileUtils.rm_rf(extract_temp_dir)
560
+
561
+ return true
562
+
591
563
  rescue => e
592
- puts "\e[31m✗ 下载并生成wrapper异常: #{e.message}\e[0m"
564
+ puts "\e[31m✗ 从Gradle分发包提取wrapper jar异常: #{e.message}\e[0m"
593
565
  false
594
566
  ensure
595
- # 延迟清理临时目录,确保wrapper生成完成
567
+ # 清理临时目录
596
568
  if temp_dir && File.directory?(temp_dir)
597
- puts "清理临时目录: #{temp_dir}"
598
569
  FileUtils.rm_rf(temp_dir)
599
570
  end
600
571
  end
601
572
  end
602
573
 
603
- # 使用curl下载文件(备用方案)
574
+
575
+ # 简化的curl下载方法(直接使用简化版本)
604
576
  def download_with_curl(url, file_path)
605
577
  puts "使用curl下载: #{url}"
606
578
 
607
- # 使用curl命令下载,支持重定向和SSL
608
- curl_cmd = [
609
- 'curl',
610
- '-L', # 跟随重定向
611
- '-s', # 静默模式
612
- '--connect-timeout', '30', # 连接超时
613
- '--max-time', '300', # 最大时间5分钟
614
- '--retry', '3', # 重试3次
615
- '--retry-delay', '2', # 重试延迟2秒
616
- '--user-agent', 'Pindo Gradle Wrapper Helper/1.0',
617
- '-o', file_path, # 输出文件
618
- url
619
- ]
579
+ # 检查curl是否可用
580
+ unless system("which curl > /dev/null 2>&1")
581
+ puts "\e[31m✗ curl命令不可用,请安装curl\e[0m"
582
+ return false
583
+ end
584
+
585
+ # 使用简化的curl命令
586
+ simple_cmd = "curl -L -o '#{file_path}' '#{url}'"
587
+ puts "执行curl命令: #{simple_cmd}"
620
588
 
621
- if system(*curl_cmd)
589
+ if system(simple_cmd)
622
590
  if File.exist?(file_path) && File.size(file_path) > 0
623
591
  puts "\e[32m✓ curl下载成功: #{File.size(file_path)} 字节\e[0m"
624
592
  return true
@@ -627,7 +595,7 @@ module Pindo
627
595
  return false
628
596
  end
629
597
  else
630
- puts "\e[31m✗ curl下载失败: 命令执行失败\e[0m"
598
+ puts "\e[31m✗ curl下载失败\e[0m"
631
599
  return false
632
600
  end
633
601
  rescue => e
@@ -635,62 +603,10 @@ module Pindo
635
603
  false
636
604
  end
637
605
 
638
- # 验证gradle-wrapper.jar文件
639
- def verify_gradle_wrapper_jar(jar_path, expected_version)
640
- # 检查文件是否存在且大小合理
641
- File.exist?(jar_path) && File.size(jar_path) > MIN_GRADLE_WRAPPER_JAR_SIZE
642
- end
643
606
 
644
607
 
645
- # 从gradle分发包中提取gradle-wrapper.jar
646
- def extract_gradle_wrapper_jar(zip_path, target_path)
647
- puts "正在从gradle分发包中提取gradle-wrapper.jar..."
648
- puts "ZIP文件: #{zip_path}"
649
- puts "ZIP文件大小: #{File.size(zip_path)} 字节"
650
-
651
- Zip::File.open(zip_path) do |zip_file|
652
- puts "ZIP文件包含 #{zip_file.count} 个文件"
653
-
654
- # 列出ZIP文件中的所有文件(用于调试)
655
- puts "ZIP文件内容:"
656
- zip_file.each_with_index do |entry, index|
657
- puts " #{index + 1}. #{entry.name}"
658
- break if index >= 10 # 只显示前10个文件
659
- end
660
- puts " ..." if zip_file.count > 10
661
-
662
- # 查找gradle-wrapper.jar
663
- wrapper_entry = zip_file.find { |entry| entry.name.include?('gradle-wrapper.jar') }
664
-
665
- if wrapper_entry
666
- puts "找到gradle-wrapper.jar: #{wrapper_entry.name}"
667
- wrapper_entry.extract(target_path)
668
- puts "\e[32m✓ gradle-wrapper.jar提取成功\e[0m"
669
- return true
670
- else
671
- puts "\e[31m✗ 在gradle分发包中未找到gradle-wrapper.jar\e[0m"
672
- puts "尝试查找其他可能的wrapper文件..."
673
-
674
- # 查找其他可能的wrapper文件
675
- wrapper_entries = zip_file.select { |entry| entry.name.include?('wrapper') }
676
- if wrapper_entries.any?
677
- puts "找到以下wrapper相关文件:"
678
- wrapper_entries.each do |entry|
679
- puts " - #{entry.name}"
680
- end
681
- else
682
- puts "未找到任何wrapper相关文件"
683
- end
684
-
685
- return false
686
- end
687
- end
688
- rescue => e
689
- puts "\e[31m✗ 解压gradle-wrapper.jar失败: #{e.message}\e[0m"
690
- false
691
- end
692
608
 
693
- # 改进的生成gradlew脚本逻辑(带内置文件回退)
609
+ # 改进的生成gradlew脚本逻辑(优先生成新脚本)
694
610
  def generate_gradlew_script(project_path)
695
611
  gradlew_path = File.join(project_path, "gradlew")
696
612
 
@@ -702,15 +618,7 @@ module Pindo
702
618
 
703
619
  puts "正在生成gradlew脚本..."
704
620
 
705
- # 1. 尝试使用内置脚本
706
- if use_builtin_gradlew_script(project_path)
707
- return true
708
- end
709
-
710
- # 2. 回退到生成新脚本
711
- puts "\e[33m⚠ 内置脚本不可用,生成新的 gradlew 脚本\e[0m"
712
-
713
- # 生成gradlew脚本内容(通用脚本,不依赖版本)
621
+ # 1. 优先生成新的gradlew脚本
714
622
  gradlew_content = generate_gradlew_content()
715
623
 
716
624
  # 写入gradlew文件
@@ -719,8 +627,20 @@ module Pindo
719
627
  # 设置执行权限
720
628
  system("chmod", "+x", gradlew_path)
721
629
 
722
- puts "\e[32m✓ gradlew脚本生成完成\e[0m"
723
- true
630
+ # 验证生成的脚本
631
+ if File.exist?(gradlew_path) && File.executable?(gradlew_path)
632
+ puts "\e[32m✓ gradlew脚本生成完成\e[0m"
633
+ return true
634
+ end
635
+
636
+ # 2. 如果生成失败,回退到内置脚本
637
+ puts "\e[33m⚠ 生成脚本失败,使用内置 gradlew 脚本\e[0m"
638
+ if use_builtin_gradlew_script(project_path)
639
+ return true
640
+ end
641
+
642
+ puts "\e[31m✗ 无法生成有效的 gradlew 脚本\e[0m"
643
+ false
724
644
  end
725
645
 
726
646
  # 生成gradlew脚本内容(通用脚本,适用于所有Gradle项目)
@@ -1,6 +1,8 @@
1
1
  require 'open3'
2
2
  require 'json'
3
3
  require 'singleton'
4
+ require 'pindo/base/funlog'
5
+ require 'pindo/config/pindoconfig'
4
6
 
5
7
  # 定义Informative异常类
6
8
  class Informative < StandardError; end
@@ -380,17 +382,95 @@ module Pindo
380
382
  end
381
383
  end
382
384
 
385
+ # 比较版本号 (语义化版本比较)
386
+ # 返回: true 如果 v1 < v2, false 否则
387
+ def version_less_than?(v1, v2)
388
+ return false if v1.nil? || v2.nil?
389
+
390
+ Gem::Version.new(v1) < Gem::Version.new(v2)
391
+ rescue ArgumentError
392
+ # 版本格式无效时的降级处理
393
+ v1.to_s < v2.to_s
394
+ end
395
+
396
+ # 检查 GoodUnityBuild 版本是否满足要求
397
+ def check_goodunitybuild_version(unity_exe_full_path, project_path)
398
+ library_version = get_library_version(unity_exe_full_path: unity_exe_full_path, project_path: project_path)
399
+
400
+ return unless library_version
401
+
402
+ required_version = Pindoconfig.instance.pindo_user_config_json["goodunitybuild_version"]
403
+
404
+ puts "当前使用的 GoodUnityBuild 版本: #{library_version}"
405
+ puts "要求的 GoodUnityBuild 最底版本: #{required_version}"
406
+
407
+ return unless required_version
408
+
409
+ if version_less_than?(library_version, required_version)
410
+ raise Informative, <<~MSG
411
+ GoodUnityBuild 版本过低!
412
+ 当前版本: #{library_version}
413
+ 要求版本: #{required_version}
414
+ 请更新 GoodUnityBuild 库到 #{required_version} 或更高版本
415
+ MSG
416
+ end
417
+ rescue Informative
418
+ raise
419
+ rescue => e
420
+ puts "GoodUnityBuild 库版本检查失败: #{e.message}"
421
+ end
422
+
423
+ # 获取 GoodUnityBuild 库版本
424
+ def get_library_version(unity_exe_full_path:, project_path:)
425
+ cmd_args = [
426
+ unity_exe_full_path,
427
+ "-batchmode",
428
+ "-quit",
429
+ "-projectPath",
430
+ project_path.to_s,
431
+ "-executeMethod",
432
+ "GoodUnityBuild.BuildManager.PrintLibraryVersion"
433
+ ]
434
+
435
+ stdout_str, _, _ = Open3.capture3(*cmd_args)
436
+
437
+ # 尝试多种模式匹配版本号
438
+ patterns = [
439
+ /GoodUnityBuild Version:\s*(\d+\.\d+\.\d+)/i,
440
+ /\[GoodUnityBuild\]\s+Version\s+(\d+\.\d+\.\d+)/i
441
+ ]
442
+
443
+ patterns.each do |pattern|
444
+ if match = stdout_str.match(pattern)
445
+ return match[1]
446
+ end
447
+ end
448
+
449
+ # 从文件读取作为备用方案
450
+ version_file = File.join(project_path, "Logs", "GoodUnityBuild_version.txt")
451
+ if File.exist?(version_file)
452
+ content = File.read(version_file).strip
453
+ return content[/(\d+\.\d+\.\d+)/, 1]
454
+ end
455
+
456
+ nil
457
+ rescue => e
458
+ nil
459
+ end
383
460
 
384
461
  def build_project(unity_exe_full_path:nil, project_path:nil, platform: nil, isLibrary: false)
385
462
 
386
463
  # 检查是否有Unity进程在运行,传入Unity路径和项目路径以精确匹配
387
464
  check_unity_processes(unity_exe_full_path: unity_exe_full_path, project_path: project_path)
388
465
 
466
+ # 检查 GoodUnityBuild 库版本
467
+ check_goodunitybuild_version(unity_exe_full_path, project_path)
468
+
389
469
  additional_args = {}
390
470
  additional_args[:platform] = platform if platform
391
471
  additional_args[:buildtype] = 'library' if isLibrary
392
472
 
393
- # 首先尝试使用GoodUnityBuild.BuildManager.BatchBuild
473
+ # 使用GoodUnityBuild.BuildManager.BatchBuild进行构建
394
474
  result = execute_unity_command(unity_exe_full_path, project_path, additional_args)
395
475
 
396
476
  if result[:success]
@@ -300,7 +300,6 @@ module Pindo
300
300
  # aws_client = AWSS3Client.new
301
301
  aws_client = JPSClient::UploadClient.new(@pgyer_client)
302
302
  upload_res = aws_client.upload_file(binary_file:ipa_file_upload)
303
- puts upload_res
304
303
  attach_key_url = nil
305
304
  attachFileUrls = []
306
305
 
data/lib/pindo/version.rb CHANGED
@@ -6,7 +6,7 @@ require 'time'
6
6
 
7
7
  module Pindo
8
8
 
9
- VERSION = "5.6.0"
9
+ VERSION = "5.6.2"
10
10
 
11
11
  class VersionCheck
12
12
  RUBYGEMS_API = 'https://rubygems.org/api/v1/gems/pindo.json'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pindo
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.6.0
4
+ version: 5.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - wade
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-09-29 00:00:00.000000000 Z
10
+ date: 2025-10-05 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: claide
@@ -115,20 +115,20 @@ dependencies:
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: 1.1.0
118
+ version: '1.2'
119
119
  - - ">="
120
120
  - !ruby/object:Gem::Version
121
- version: 1.1.0
121
+ version: 1.2.0
122
122
  type: :runtime
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - "~>"
127
127
  - !ruby/object:Gem::Version
128
- version: 1.1.0
128
+ version: '1.2'
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: 1.1.0
131
+ version: 1.2.0
132
132
  - !ruby/object:Gem::Dependency
133
133
  name: rqrcode
134
134
  requirement: !ruby/object:Gem::Requirement