pindo 5.5.8 → 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: d4c90bdffcd10aa827054b7aacc7107591c96d6f7c1079f2096592bc5bb0af77
4
- data.tar.gz: 48d4f04d336c484d76cf1a92fda827b7e9e53608d55786c588f43f85a8752f64
3
+ metadata.gz: 74540551eee20b918542b7de441e214fcfcbcaa4d747348efdd9bcd312d36d67
4
+ data.tar.gz: 6f4d6e175b6ff344b9bb26fe85f3a349348a3487ca0999fb86b847d8e37446de
5
5
  SHA512:
6
- metadata.gz: b280d9bcb83416db8499742ab9fc854460fd94125b268e864a7dec64837ceb220bb0d19986718816430ba82497ce980e0a1e515c4ba99c3c3a8562a473f616ef
7
- data.tar.gz: a6628594b11ef81be6d762bc00a6ae3a0fa21c126de0b87222d189afd40b61256742d22bd360b8a02d0afac9850b032d8a5e9aa4b084c144caa758d55237e95b
6
+ metadata.gz: 31a3e0cfef6eb95d8deaa16f95a15da7c91fb33f10acc642e57e9e4e26a0f315114fec8572ca35e0c1ebb83bdc163101e10155555ef23a30171a0f3fbd18f96b
7
+ data.tar.gz: 31fd9e169330f6a8713d9d7472c96d26a74bb32afb3e6c9ad3d6d36dd3a84f76f939ee4e50f478650916cc9a101170e27bcb8d861d69296f2802bc6613da6221
@@ -306,13 +306,22 @@ module Pindo
306
306
  end
307
307
  puts "────────────────────────────────────────"
308
308
 
309
- # 询问用户是否使用缓存
310
- require 'highline/import'
311
- cli = HighLine.new
312
- confirm = cli.agree("\n是否使用以上缓存的选择? (y/n) ")
309
+ # 检查是否设置了强制编译环境变量
310
+ force_build = ENV['PINDO_FORCE_BUILD']
311
+
312
+ if force_build && !force_build.empty?
313
+ # 环境变量存在,自动使用缓存
314
+ puts "\n检测到 PINDO_FORCE_BUILD 环境变量,自动使用缓存的选择"
315
+ confirm = true
316
+ else
317
+ # 询问用户是否使用缓存
318
+ require 'highline/import'
319
+ cli = HighLine.new
320
+ confirm = cli.agree("\n是否使用以上缓存的选择? (y/n) ")
321
+ end
313
322
 
314
323
  if confirm
315
- puts "使用缓存的选择\n"
324
+ puts "使用缓存的选择\n" unless force_build
316
325
  # 恢复三级结构的文件缓存到内存缓存
317
326
  file_cache.each do |proj_path, commands|
318
327
  @memory_selections[proj_path] ||= {}
@@ -13,7 +13,7 @@ module Pindo
13
13
  include Appselect
14
14
  include Pindo::Githelper
15
15
 
16
- self.summary = '打包Android工程并发布到蒲公英'
16
+ self.summary = '打包Android工程并发布到测试平台'
17
17
 
18
18
  # 启用缓存机制
19
19
  def self.use_cache?
@@ -21,35 +21,31 @@ module Pindo
21
21
  end
22
22
 
23
23
  self.description = <<-DESC
24
- 编译Android包并支持上传到测试平台。
24
+ 编译Android工程生成APK/AAB并支持上传到测试平台。
25
25
 
26
- 支持功能:
26
+ 环境变量:
27
27
 
28
- * 编译Debug/Release包
28
+ PINDO_PROJECT_NAME - 指定项目名称,跳过选择确认
29
+ PINDO_TAG_DECISION - 指定Tag策略(new/retag/skip/exit)
30
+ PINDO_FORCE_BUILD - 存在时自动使用缓存选择
29
31
 
30
- * 上传到测试平台
32
+ 使用示例:
31
33
 
32
- * 发送测试通知
34
+ $ pindo android autobuild # 编译Debug包
35
+ $ pindo android autobuild --release # 编译Release包
36
+ $ pindo android autobuild --upload # 编译并上传
37
+ $ pindo android autobuild --send # 编译、上传并发送群组通知
33
38
 
34
- 使用示例:
35
-
36
- $ pindo android autobuild # 编译Debug包
37
-
38
- $ pindo android autobuild --release # 编译Release包
39
-
40
- $ pindo android autobuild --upload # 编译并上传
41
-
42
- $ pindo android autobuild --send # 编译上传并发送通知
43
-
44
- $ pindo android autobuild --proj=myapp # 指定项目名称
39
+ # CI/CD自动化构建
40
+ $ PINDO_FORCE_BUILD=1 PINDO_PROJECT_NAME="Test Demo" PINDO_TAG_DECISION=new pindo android autobuild --upload
45
41
  DESC
46
42
 
47
43
  def self.options
48
44
  [
49
- ['--release', '使用release模式构建'],
50
- ['--proj', '指定上传到测试平台的项目名称'],
51
- ['--upload', '上传编译后的apk到测试平台(上传成功后会自动发送消息给自己)'],
52
- ['--send', '发送消息到项目群(注意:不带此参数也会发送给自己)']
45
+ ['--release', '使用Release模式构建'],
46
+ ['--proj=NAME', '指定上传到测试平台的项目名称'],
47
+ ['--upload', '编译后上传到测试平台(自动发送给自己)'],
48
+ ['--send', '发送通知到测试群组(同时发送给自己)']
53
49
  ].concat(super)
54
50
  end
55
51
 
@@ -23,13 +23,13 @@ module Pindo
23
23
 
24
24
  使用示例:
25
25
 
26
- $ pindo android build # 仅编译
26
+ $ pindo and build # 仅编译
27
27
 
28
- $ pindo android build --upload # 编译并上传
28
+ $ pindo and build --upload # 编译并上传
29
29
 
30
- $ pindo android build --send # 编译并发送通知
30
+ $ pindo and build --send # 编译并发送通知
31
31
 
32
- $ pindo android build --proj=myapp # 指定项目名称
32
+ $ pindo and build --proj=myapp # 指定项目名称
33
33
  DESC
34
34
 
35
35
  def self.options
@@ -22,19 +22,19 @@ module Pindo
22
22
 
23
23
  使用示例:
24
24
 
25
- $ pindo android debug # 编译Debug包
25
+ $ pindo and debug # 编译Debug包
26
26
 
27
- $ pindo android debug --upload # 编译并上传
27
+ $ pindo and debug --upload # 编译并上传
28
28
 
29
- $ pindo android debug --send # 编译上传并发送通知
29
+ $ pindo and debug --send # 编译上传并发送通知
30
30
 
31
- $ pindo android debug --proj=myapp # 指定项目名称
31
+ $ pindo and debug --proj=myapp # 指定项目名称
32
32
 
33
- $ pindo android debug --release # 编译Release包
33
+ $ pindo and debug --release # 编译Release包
34
34
 
35
- $ pindo android debug --dsign # 测试获取签名文件
35
+ $ pindo and debug --dsign # 测试获取签名文件
36
36
 
37
- $ pindo android debug --direct # 直接打包而不编译 unity 子 Lib
37
+ $ pindo and debug --direct # 直接打包而不编译 unity 子 Lib
38
38
  DESC
39
39
 
40
40
  # 命令参数
@@ -102,7 +102,7 @@ module Pindo
102
102
  puts "iOS工程, 请使用 pindo ios autobuild"
103
103
  Pindo::Command::Ios::Autobuild::run(args_temp)
104
104
  when :android
105
- puts "Android工程, 请使用 pindo android autobuild"
105
+ puts "Android工程, 请使用 pindo and autobuild"
106
106
  when :unity
107
107
  raise Informative, "Unity工程, 请使用 pindo unity ipa 或者pindo unity apk"
108
108
  else
@@ -79,7 +79,7 @@ module Pindo
79
79
  puts "iOS 工程, 请使用 pindo ios build"
80
80
  Pindo::Command::Ios::Build::run(args_temp)
81
81
  when :android
82
- puts "Android 工程, 请使用 pindo android build"
82
+ puts "Android 工程, 请使用 pindo and build"
83
83
  Pindo::Command::Android::Build::run(args_temp)
84
84
  when :unity
85
85
  raise Informative, "Unity 工程, 请使用 pindo unity ipa 或者pindo unity apk"
@@ -16,7 +16,7 @@ module Pindo
16
16
  include Appselect
17
17
  include Pindo::Githelper
18
18
  # 命令的简要说明 - 打包iOS工程并发布到蒲公英
19
- self.summary = '打包iOS工程并发布到蒲公英'
19
+ self.summary = '打包iOS工程并发布到测试平台'
20
20
 
21
21
  # 启用缓存机制
22
22
  def self.use_cache?
@@ -27,25 +27,23 @@ module Pindo
27
27
 
28
28
  # 命令的详细说明,包含用法示例
29
29
  self.description = <<-DESC
30
- 编译iOS Debug包并支持上传到测试平台。
31
-
32
- 支持功能:
33
-
34
- * 编译Debug包
35
-
36
- * 上传到测试平台
37
-
38
- * 发送测试通知
30
+ 编译iOS工程生成IPA并支持上传到测试平台。
39
31
 
40
- 使用示例:
32
+ 环境变量:
41
33
 
42
- $ pindo ios autobuild # 编译Debug包
34
+ PINDO_BUNDLE_ID - 指定Bundle ID(如: com.heroneverdie101)
35
+ PINDO_PROJECT_NAME - 指定项目名称(如: Test Demo)
36
+ PINDO_TAG_DECISION - 指定Tag策略(new/retag/skip/exit)
37
+ PINDO_FORCE_BUILD - 自动使用缓存选择,跳过确认
43
38
 
44
- $ pindo ios autobuild --upload # 编译并上传
39
+ 使用示例:
45
40
 
46
- $ pindo ios autobuild --send # 编译上传并发送通知
41
+ $ pindo ios autobuild # 编译Debug包
42
+ $ pindo ios autobuild --upload # 编译并上传
43
+ $ pindo ios autobuild --send # 编译、上传并发送群组通知
47
44
 
48
- $ pindo ios autobuild --proj=myapp # 指定项目名称
45
+ # CI/CD自动化构建
46
+ $ PINDO_FORCE_BUILD=1 PINDO_BUNDLE_ID=com.heroneverdie101 PINDO_PROJECT_NAME="Test Demo" PINDO_TAG_DECISION=new pindo ios autobuild --upload
49
47
  DESC
50
48
 
51
49
  # 命令的参数列表
@@ -56,13 +54,12 @@ module Pindo
56
54
  # 命令的选项列表
57
55
  def self.options
58
56
  [
59
- ['--bundleid', '指定打包的bundleID'],
60
- # 指定上传到蒲公英的项目
61
- ['--proj', '指定上传到测试平台的项目名称'],
62
- # 上传编译包
63
- ['--upload', '上传编译后的ipa到测试平台(上传成功后会自动发送消息给自己)'],
64
- # 发送通知
65
- ['--send', '发送消息到项目群(注意:不带此参数也会发送给自己)']
57
+ ['--bundleid=ID', '指定打包的Bundle ID'],
58
+ ['--proj=NAME', '指定上传到测试平台的项目名称'],
59
+ ['--upload', '编译后上传到测试平台(上传成功后自动发送给自己)'],
60
+ ['--send', '发送通知到测试群组(同时也会发送给自己)'],
61
+ ['--adhoc', '使用AdHoc证书打包(默认使用Dev证书)'],
62
+ ['--deploy', '使用发布证书打包']
66
63
  ].concat(super)
67
64
  end
68
65
 
@@ -103,7 +100,7 @@ module Pindo
103
100
  when :ios
104
101
  ios_autobuild
105
102
  when :android
106
- puts "Android 工程, 请使用 pindo android build"
103
+ puts "Android 工程, 请使用 pindo and build"
107
104
 
108
105
  when :unity
109
106
  Pindo::Command::Unity::Ipa::run(args_temp)
@@ -84,7 +84,7 @@ module Pindo
84
84
  when :ios
85
85
  ios_build
86
86
  when :android
87
- raise Informative, "Android 工程, 请使用 pindo android build"
87
+ raise Informative, "Android 工程, 请使用 pindo and build"
88
88
  when :unity
89
89
  raise Informative, "Unity 工程, 请使用 pindo unity ipa"
90
90
  else
@@ -12,7 +12,7 @@ module Pindo
12
12
  class Apk < Unity
13
13
 
14
14
  # 命令的简要说明 - 编译Unity工程生成Android APK
15
- self.summary = '编译Unity工程生成Android APK'
15
+ self.summary = '编译Unity工程生成Android APK并支持上传到测试平台'
16
16
 
17
17
  # 启用缓存机制
18
18
  def self.use_cache?
@@ -21,25 +21,26 @@ module Pindo
21
21
 
22
22
  # 命令的详细说明,包含用法示例
23
23
  self.description = <<-DESC
24
- 编译Unity工程生成Android APK
24
+ 编译Unity工程生成Android APK并支持上传到测试平台。
25
25
 
26
- 支持功能:
26
+ 环境变量:
27
27
 
28
- * 编译生成APK
28
+ PINDO_PROJECT_NAME - 指定项目名称,跳过选择确认
29
+ PINDO_TAG_DECISION - 指定Tag策略(new/retag/skip/exit)
30
+ PINDO_FORCE_BUILD - 存在时自动使用缓存选择
29
31
 
30
- * 上传到测试平台
32
+ 使用示例:
31
33
 
32
- * 发送测试通知
34
+ $ pindo unity apk # 编译APK
35
+ $ pindo unity apk --upload # 编译并上传
36
+ $ pindo unity apk --send # 编译、上传并发送群组通知
33
37
 
34
- 使用示例:
38
+ # CI/CD自动化构建
39
+ $ PINDO_FORCE_BUILD=1 PINDO_PROJECT_NAME="Test Demo" PINDO_TAG_DECISION=new pindo unity apk --upload
35
40
 
36
- $ pindo unity apk # 编译APK
37
-
38
- $ pindo unity apk --upload # 编译并上传
39
-
40
- $ pindo unity apk --send # 编译并上传并发送通知
41
-
42
- $ pindo unity apk --proj=myapp # 指定项目名称
41
+ 注意事项:
42
+ • 需要在Unity工程根目录下执行
43
+ Unity版本会自动检测
43
44
  DESC
44
45
 
45
46
  # 命令的参数列表
@@ -50,13 +51,9 @@ DESC
50
51
  # 命令的选项列表
51
52
  def self.options
52
53
  [
53
- # 指定上传到蒲公英的项目
54
- ['--proj', '指定上传到测试平台的项目名称'],
55
- # 上传编译包
56
- ['--upload', '上传编译后的APK到测试平台(上传成功后会自动发送消息给自己)'],
57
- # 发送通知
58
- ['--send', '发送消息到项目群(注意:不带此参数也会发送给自己)']
59
-
54
+ ['--proj=NAME', '指定上传到测试平台的项目名称'],
55
+ ['--upload', '编译后上传到测试平台(自动发送给自己)'],
56
+ ['--send', '发送通知到测试群组(同时发送给自己)']
60
57
  ].concat(super)
61
58
  end
62
59
 
@@ -29,23 +29,27 @@ module Pindo
29
29
  self.description = <<-DESC
30
30
  编译Unity工程生成iOS IPA并支持上传到测试平台。
31
31
 
32
- 支持功能:
32
+ 环境变量:
33
33
 
34
- * 编译生成IPA
35
-
36
- * 上传到测试平台
37
-
38
- * 发送测试通知
34
+ PINDO_BUNDLE_ID - 指定Bundle ID(如: com.heroneverdie101)
35
+ PINDO_PROJECT_NAME - 指定项目名称(如: Test Demo)
36
+ PINDO_TAG_DECISION - 指定Tag策略(new/retag/skip/exit)
37
+ PINDO_FORCE_BUILD - 自动使用缓存选择,跳过确认
39
38
 
40
39
  使用示例:
41
40
 
42
- $ pindo unity ipa # 编译IPA
41
+ $ pindo unity ipa # 编译IPA
42
+ $ pindo unity ipa --upload # 编译并上传
43
+ $ pindo unity ipa --send # 编译、上传并发送群组通知
44
+
45
+ # CI/CD自动化构建
46
+ $ PINDO_FORCE_BUILD=1 PINDO_BUNDLE_ID=com.heroneverdie101 PINDO_PROJECT_NAME="Test Demo" PINDO_TAG_DECISION=new pindo unity ipa --upload
43
47
 
44
- $ pindo unity ipa --upload # 编译并上传
48
+ 注意事项:
45
49
 
46
- $ pindo unity ipa --send # 编译上传并发送通知
47
50
 
48
- $ pindo unity ipa --proj=myapp # 指定项目名称
51
+ 需要在Unity工程根目录下执行
52
+ • Unity版本会自动检测
49
53
  DESC
50
54
 
51
55
  # 命令参数
@@ -56,12 +60,13 @@ DESC
56
60
  # 命令选项
57
61
  def self.options
58
62
  [
59
- ['--bundleid', '指定打包的bundleID'],
60
- ['--proj', '指定上传到测试平台的项目名称'],
61
- ['--upload', '上传编译后的IPA到测试平台(上传成功后会自动发送消息给自己)'],
62
- ['--send', '发送消息到项目群(注意:不带此参数也会发送给自己)'],
63
- ['--base', 'Unity工程编译lib模式'],
64
- ['--unity-version', '切换Unity版本']
63
+ ['--bundleid=ID', '指定打包的Bundle ID'],
64
+ ['--proj=NAME', '指定上传到测试平台的项目名称'],
65
+ ['--upload', '编译后上传到测试平台(上传成功后自动发送给自己)'],
66
+ ['--send', '发送通知到测试群组(同时也会发送给自己)'],
67
+ ['--base', 'Unity工程编译lib模式'],
68
+ ['--unity-version', '强制选择Unity版本'],
69
+ ['--deploy', '使用发布证书打包']
65
70
  ].concat(super)
66
71
  end
67
72
 
@@ -101,7 +101,7 @@ module Pindo
101
101
  when :ios
102
102
  puts "iOS 工程, 请使用 pindo ios autobuild"
103
103
  when :android
104
- puts "Android 工程, 请使用 pindo android build"
104
+ puts "Android 工程, 请使用 pindo and build"
105
105
 
106
106
  when :unity
107
107
  web_autobuild
data/lib/pindo/command.rb CHANGED
@@ -108,11 +108,19 @@ module Pindo
108
108
  @args_help_flag = argv.flag?('help', false)
109
109
  @args_verbose_flag = argv.flag?('verbose', false)
110
110
 
111
+ # 检查是否是 help 请求(检查原始命令行参数)
112
+ original_args = ARGV.join(' ')
113
+ is_help_request = @args_help_flag ||
114
+ original_args.include?('--help') ||
115
+ original_args.include?('-h') ||
116
+ argv.remainder.include?('--help') ||
117
+ argv.remainder.include?('-h')
118
+
111
119
  # 设置全局 verbose 标志
112
120
  ENV['PINDO_VERBOSE'] = '1' if @args_verbose_flag
113
121
 
114
- # 在非抽象命令初始化时设置上下文
115
- if !self.class.abstract_command? && !@args_help_flag
122
+ # 在非抽象命令初始化时设置上下文(但不在显示帮助时)
123
+ if !self.class.abstract_command? && !is_help_request
116
124
  context = Pindo::PindoContext.instance
117
125
 
118
126
  # 只在上下文未设置时才设置(避免重复设置)
@@ -55,6 +55,12 @@ module Pindo
55
55
  puts "\e[31m\e[1m✗ AAB 包不符合 Google Play 提交标准,需要修复合规问题才能提交!!!\e[0m"
56
56
  end
57
57
 
58
+ # 添加合规检测说明
59
+ puts "\e[36m\e[1m📋 合规检测说明:\e[0m"
60
+ puts "\e[33m • 仅供测试用的包可以忽略合规检测问题\e[0m"
61
+ puts "\e[33m • 提交至 Google Play 的正式用包必须处理所有合规检测问题\e[0m"
62
+ puts "\e[33m • 建议在正式发布前解决所有合规问题以确保顺利上架\e[0m"
63
+
58
64
  rescue => e
59
65
  puts "\e[31mGoogle Play 合规检测失败: #{e.message}\e[0m"
60
66
  puts "\e[33m建议手动检查包体积、Target SDK 版本和共享库对齐情况\e[0m"