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 +4 -4
- data/lib/pindo/base/pindocontext.rb +14 -5
- data/lib/pindo/command/android/autobuild.rb +17 -21
- data/lib/pindo/command/android/build.rb +4 -4
- data/lib/pindo/command/android/debug.rb +7 -7
- data/lib/pindo/command/dev/autobuild.rb +1 -1
- data/lib/pindo/command/dev/build.rb +1 -1
- data/lib/pindo/command/ios/autobuild.rb +20 -23
- data/lib/pindo/command/ios/build.rb +1 -1
- data/lib/pindo/command/unity/apk.rb +18 -21
- data/lib/pindo/command/unity/ipa.rb +21 -16
- data/lib/pindo/command/web/autobuild.rb +1 -1
- data/lib/pindo/command.rb +10 -2
- data/lib/pindo/module/android/apk_helper.rb +6 -0
- data/lib/pindo/module/android/gradle_helper.rb +259 -202
- data/lib/pindo/module/appselect.rb +12 -0
- data/lib/pindo/module/build/buildhelper.rb +54 -0
- data/lib/pindo/module/build/unityhelper.rb +81 -1
- data/lib/pindo/module/pgyer/pgyerhelper.rb +27 -11
- data/lib/pindo/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74540551eee20b918542b7de441e214fcfcbcaa4d747348efdd9bcd312d36d67
|
4
|
+
data.tar.gz: 6f4d6e175b6ff344b9bb26fe85f3a349348a3487ca0999fb86b847d8e37446de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
311
|
-
|
312
|
-
|
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
|
-
|
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',
|
50
|
-
['--proj', '指定上传到测试平台的项目名称'],
|
51
|
-
['--upload',
|
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
|
26
|
+
$ pindo and build # 仅编译
|
27
27
|
|
28
|
-
$ pindo
|
28
|
+
$ pindo and build --upload # 编译并上传
|
29
29
|
|
30
|
-
$ pindo
|
30
|
+
$ pindo and build --send # 编译并发送通知
|
31
31
|
|
32
|
-
$ pindo
|
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
|
25
|
+
$ pindo and debug # 编译Debug包
|
26
26
|
|
27
|
-
$ pindo
|
27
|
+
$ pindo and debug --upload # 编译并上传
|
28
28
|
|
29
|
-
$ pindo
|
29
|
+
$ pindo and debug --send # 编译上传并发送通知
|
30
30
|
|
31
|
-
$ pindo
|
31
|
+
$ pindo and debug --proj=myapp # 指定项目名称
|
32
32
|
|
33
|
-
$ pindo
|
33
|
+
$ pindo and debug --release # 编译Release包
|
34
34
|
|
35
|
-
$ pindo
|
35
|
+
$ pindo and debug --dsign # 测试获取签名文件
|
36
36
|
|
37
|
-
$ pindo
|
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
|
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
|
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
|
-
|
31
|
-
|
32
|
-
支持功能:
|
33
|
-
|
34
|
-
* 编译Debug包
|
35
|
-
|
36
|
-
* 上传到测试平台
|
37
|
-
|
38
|
-
* 发送测试通知
|
30
|
+
编译iOS工程生成IPA并支持上传到测试平台。
|
39
31
|
|
40
|
-
|
32
|
+
环境变量:
|
41
33
|
|
42
|
-
|
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
|
-
|
39
|
+
使用示例:
|
45
40
|
|
46
|
-
|
41
|
+
$ pindo ios autobuild # 编译Debug包
|
42
|
+
$ pindo ios autobuild --upload # 编译并上传
|
43
|
+
$ pindo ios autobuild --send # 编译、上传并发送群组通知
|
47
44
|
|
48
|
-
|
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', '指定打包的
|
60
|
-
|
61
|
-
['--
|
62
|
-
|
63
|
-
['--
|
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
|
103
|
+
puts "Android 工程, 请使用 pindo and build"
|
107
104
|
|
108
105
|
when :unity
|
109
106
|
Pindo::Command::Unity::Ipa::run(args_temp)
|
@@ -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
|
-
|
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
|
-
|
37
|
-
|
38
|
-
|
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
|
-
['--
|
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
|
-
|
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
|
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
|
-
|
48
|
+
注意事项:
|
45
49
|
|
46
|
-
$ pindo unity ipa --send # 编译上传并发送通知
|
47
50
|
|
48
|
-
|
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', '指定打包的
|
60
|
-
['--proj', '指定上传到测试平台的项目名称'],
|
61
|
-
['--upload',
|
62
|
-
['--send',
|
63
|
-
['--base',
|
64
|
-
['--unity-version', '
|
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
|
|
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? &&
|
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"
|