pindo 5.18.3 → 5.18.5

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/command/android/autobuild.rb +27 -25
  3. data/lib/pindo/command/appstore/adhocbuild.rb +3 -3
  4. data/lib/pindo/command/appstore/autobuild.rb +3 -3
  5. data/lib/pindo/command/appstore/autoresign.rb +6 -2
  6. data/lib/pindo/command/appstore/cert.rb +12 -6
  7. data/lib/pindo/command/appstore/getitcinfo.rb +10 -8
  8. data/lib/pindo/command/appstore/iap.rb +9 -9
  9. data/lib/pindo/command/appstore/initconfig.rb +6 -7
  10. data/lib/pindo/command/appstore/itcinfo.rb +12 -12
  11. data/lib/pindo/command/appstore/metadata.rb +7 -6
  12. data/lib/pindo/command/appstore/screenshots.rb +7 -6
  13. data/lib/pindo/command/appstore/tag.rb +7 -4
  14. data/lib/pindo/command/gplay/iap.rb +7 -6
  15. data/lib/pindo/command/gplay/metadata.rb +7 -6
  16. data/lib/pindo/command/gplay/screenshots.rb +7 -6
  17. data/lib/pindo/command/ios/applovin.rb +9 -8
  18. data/lib/pindo/command/ios/autobuild.rb +1 -1
  19. data/lib/pindo/command/ios/autoresign.rb +6 -2
  20. data/lib/pindo/command/ios/cert.rb +11 -6
  21. data/lib/pindo/command/ios/fixproj.rb +9 -6
  22. data/lib/pindo/command/ios/podlint.rb +10 -5
  23. data/lib/pindo/command/ios/podpush.rb +13 -6
  24. data/lib/pindo/command/ios/podupdate.rb +10 -6
  25. data/lib/pindo/command/jps/apptest.rb +2 -2
  26. data/lib/pindo/command/jps/bind.rb +1 -1
  27. data/lib/pindo/command/jps/download.rb +11 -10
  28. data/lib/pindo/command/jps/login.rb +8 -7
  29. data/lib/pindo/command/jps/media.rb +1 -1
  30. data/lib/pindo/command/jps/upload.rb +56 -31
  31. data/lib/pindo/command/repo.rb +0 -6
  32. data/lib/pindo/command/unity/autobuild.rb +33 -41
  33. data/lib/pindo/command/unity/packpush.rb +14 -8
  34. data/lib/pindo/command/utils/renewcert.rb +15 -13
  35. data/lib/pindo/command/utils/repoinit.rb +12 -6
  36. data/lib/pindo/command/utils.rb +7 -7
  37. data/lib/pindo/command/web/autobuild.rb +29 -28
  38. data/lib/pindo/command/web/run.rb +9 -8
  39. data/lib/pindo/module/android/android_build_helper.rb +6 -6
  40. data/lib/pindo/module/android/keystore_helper.rb +1 -1
  41. data/lib/pindo/module/build/build_helper.rb +37 -3
  42. data/lib/pindo/module/cert/cert_helper.rb +1 -1
  43. data/lib/pindo/module/pgyer/pgyerhelper.rb +3 -3
  44. data/lib/pindo/module/task/core/task_executor.rb +2 -0
  45. data/lib/pindo/module/task/task_manager.rb +8 -0
  46. data/lib/pindo/options/core/global_options_state.rb +1 -1
  47. data/lib/pindo/options/core/option_item.rb +1 -1
  48. data/lib/pindo/options/groups/appstore_options.rb +114 -0
  49. data/lib/pindo/options/groups/build_options.rb +93 -4
  50. data/lib/pindo/options/groups/cert_options.rb +0 -52
  51. data/lib/pindo/options/groups/common_options.rb +27 -0
  52. data/lib/pindo/options/groups/global_options.rb +18 -0
  53. data/lib/pindo/options/groups/ios_tool_options.rb +60 -0
  54. data/lib/pindo/options/groups/jps_options.rb +41 -0
  55. data/lib/pindo/options/groups/option_group.rb +1 -1
  56. data/lib/pindo/options/groups/pod_options.rb +37 -0
  57. data/lib/pindo/options/groups/unity_options.rb +4 -4
  58. data/lib/pindo/options/groups/utils_options.rb +125 -0
  59. data/lib/pindo/options/options.rb +6 -0
  60. data/lib/pindo/version.rb +2 -2
  61. metadata +7 -1
@@ -0,0 +1,60 @@
1
+ require 'pindo/options/core/option_item'
2
+ require 'pindo/options/groups/option_group'
3
+
4
+ module Pindo
5
+ module Options
6
+ # iOS 工具命令参数组
7
+ # 定义 iOS 专属工具命令的参数(fixproj、applovin 等)
8
+ module IosToolOptions
9
+ extend OptionGroup
10
+
11
+ def self.all_options
12
+ @all_options ||= {
13
+ allproj: OptionItem.new(
14
+ key: :allproj,
15
+ name: '批量修复',
16
+ description: '扫描当前目录及 GoodPlatform/BaseiOS 下的所有 iOS 项目并修复',
17
+ type: OptionItem::Boolean,
18
+ env_name: 'PINDO_ALL_PROJ',
19
+ default_value: false,
20
+ optional: true,
21
+ example: 'pindo ios fixproj --allproj'
22
+ ),
23
+
24
+ appstore: OptionItem.new(
25
+ key: :appstore,
26
+ name: 'App Store 模式',
27
+ description: 'App Store 模式(一般不使用)',
28
+ type: OptionItem::Boolean,
29
+ env_name: 'PINDO_IOS_APPSTORE',
30
+ default_value: false,
31
+ optional: true,
32
+ example: 'pindo ios applovin --appstore'
33
+ ),
34
+
35
+ install: OptionItem.new(
36
+ key: :install,
37
+ name: '安装',
38
+ description: '运行安装脚本',
39
+ type: OptionItem::Boolean,
40
+ env_name: 'PINDO_IOS_INSTALL',
41
+ default_value: false,
42
+ optional: true,
43
+ example: 'pindo ios applovin --install'
44
+ ),
45
+
46
+ upload: OptionItem.new(
47
+ key: :upload,
48
+ name: '保存配置',
49
+ description: '保存 SKAdNetwork IDs 配置到本地',
50
+ type: OptionItem::Boolean,
51
+ env_name: 'PINDO_IOS_UPLOAD',
52
+ default_value: false,
53
+ optional: true,
54
+ example: 'pindo ios applovin --upload'
55
+ )
56
+ }
57
+ end
58
+ end
59
+ end
60
+ end
@@ -99,6 +99,47 @@ module Pindo
99
99
  env_name: 'PINDO_SEND_GROUP',
100
100
  optional: true,
101
101
  example: 'pindo jps apptest --group'
102
+ ),
103
+
104
+ login: OptionItem.new(
105
+ key: :login,
106
+ name: '强制登录',
107
+ description: '强制重新登录 JPS 平台',
108
+ type: OptionItem::Boolean,
109
+ env_name: 'PINDO_JPS_LOGIN',
110
+ default_value: false,
111
+ optional: true,
112
+ example: 'pindo jps upload --login'
113
+ ),
114
+
115
+ file: OptionItem.new(
116
+ key: :file,
117
+ name: '上传文件',
118
+ description: '指定要上传的文件路径(支持 ipa/apk/app/exe/html)',
119
+ type: String,
120
+ env_name: 'PINDO_JPS_FILE',
121
+ optional: true,
122
+ example: 'pindo jps upload --file=path/to/app.ipa'
123
+ ),
124
+
125
+ attach: OptionItem.new(
126
+ key: :attach,
127
+ name: '附件',
128
+ description: '指定需要和安装包一起上传的附件文件',
129
+ type: String,
130
+ env_name: 'PINDO_JPS_ATTACH',
131
+ optional: true,
132
+ example: 'pindo jps upload --attach=file.zip'
133
+ ),
134
+
135
+ index: OptionItem.new(
136
+ key: :index,
137
+ name: '版本序号',
138
+ description: '指定下载的版本序号',
139
+ type: String,
140
+ env_name: 'PINDO_JPS_INDEX',
141
+ optional: true,
142
+ example: 'pindo jps download --index=1'
102
143
  )
103
144
  }
104
145
  end
@@ -41,7 +41,7 @@ module Pindo
41
41
  # @param defaults [Hash{Symbol => Any}] key => default_value 的映射
42
42
  # @return [Array<OptionItem>] 修改后的参数列表
43
43
  # @example
44
- # UnityOptions.select_with_defaults(skipconfig: true, skiplib: true)
44
+ # UnityOptions.select_with_defaults(skipmacro: true, skiplib: true)
45
45
  def select_with_defaults(**defaults)
46
46
  defaults.map do |key, default_value|
47
47
  option = all_options[key]
@@ -0,0 +1,37 @@
1
+ require 'pindo/options/core/option_item'
2
+ require 'pindo/options/groups/option_group'
3
+
4
+ module Pindo
5
+ module Options
6
+ # Pod 相关参数组
7
+ # 定义 CocoaPods 操作相关的参数(podupdate、podlint、podpush)
8
+ module PodOptions
9
+ extend OptionGroup
10
+
11
+ def self.all_options
12
+ @all_options ||= {
13
+ path: OptionItem.new(
14
+ key: :path,
15
+ name: '项目目录',
16
+ description: '指定 Pod 库所在的项目目录',
17
+ type: String,
18
+ env_name: 'PINDO_POD_PATH',
19
+ optional: true,
20
+ example: 'pindo ios podupdate --path=./MyPodLib'
21
+ ),
22
+
23
+ install: OptionItem.new(
24
+ key: :install,
25
+ name: '执行安装',
26
+ description: '更新完 lib 之后执行 pod install',
27
+ type: OptionItem::Boolean,
28
+ env_name: 'PINDO_POD_INSTALL',
29
+ default_value: false,
30
+ optional: true,
31
+ example: 'pindo ios podupdate --install'
32
+ )
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -10,15 +10,15 @@ module Pindo
10
10
 
11
11
  def self.all_options
12
12
  @all_options ||= {
13
- skipconfig: OptionItem.new(
14
- key: :skipconfig,
13
+ skipmacro: OptionItem.new(
14
+ key: :skipmacro,
15
15
  name: '跳过宏设置',
16
16
  description: '跳过Unity编译宏设置(加快构建速度)',
17
17
  type: OptionItem::Boolean,
18
- env_name: 'PINDO_SKIP_CONFIG',
18
+ env_name: 'PINDO_SKIP_MACRO',
19
19
  default_value: false,
20
20
  optional: true,
21
- example: 'pindo appstore autobuild --skipconfig'
21
+ example: 'pindo appstore autobuild --skipmacro'
22
22
  ),
23
23
 
24
24
  skiplib: OptionItem.new(
@@ -0,0 +1,125 @@
1
+ require 'pindo/options/core/option_item'
2
+ require 'pindo/options/groups/option_group'
3
+
4
+ module Pindo
5
+ module Options
6
+ # 工具及辅助命令参数组
7
+ # 定义 utils、appstore、gplay 等命令中共享的辅助参数
8
+ module UtilsOptions
9
+ extend OptionGroup
10
+
11
+ def self.all_options
12
+ @all_options ||= {
13
+ down: OptionItem.new(
14
+ key: :down,
15
+ name: '下载',
16
+ description: '下载资源(元数据、截图等)',
17
+ type: OptionItem::Boolean,
18
+ env_name: 'PINDO_DOWN',
19
+ default_value: false,
20
+ optional: true,
21
+ example: 'pindo appstore metadata --down'
22
+ ),
23
+
24
+ test: OptionItem.new(
25
+ key: :test,
26
+ name: '测试模式',
27
+ description: '使用测试环境仓库',
28
+ type: OptionItem::Boolean,
29
+ env_name: 'PINDO_TEST',
30
+ default_value: false,
31
+ optional: true,
32
+ example: 'pindo appstore initconfig --test'
33
+ ),
34
+
35
+ mode: OptionItem.new(
36
+ key: :mode,
37
+ name: '版本模式',
38
+ description: '版本增加模式(major/minor/patch),默认 minor',
39
+ type: String,
40
+ env_name: 'PINDO_REPO_MODE',
41
+ default_value: 'minor',
42
+ optional: true,
43
+ example: 'pindo utils repoinit --mode=minor'
44
+ ),
45
+
46
+ retag: OptionItem.new(
47
+ key: :retag,
48
+ name: '重新打标签',
49
+ description: '强制重新创建当前版本的 Git Tag',
50
+ type: OptionItem::Boolean,
51
+ env_name: 'PINDO_RETAG',
52
+ default_value: false,
53
+ optional: true,
54
+ example: 'pindo utils repoinit --retag'
55
+ ),
56
+
57
+ fast: OptionItem.new(
58
+ key: :fast,
59
+ name: '快速模式',
60
+ description: '快速更新证书(跳过部分验证)',
61
+ type: OptionItem::Boolean,
62
+ env_name: 'PINDO_CERT_FAST',
63
+ default_value: false,
64
+ optional: true,
65
+ example: 'pindo utils renewcert --fast'
66
+ ),
67
+
68
+ fixedid: OptionItem.new(
69
+ key: :fixedid,
70
+ name: '固定 ID',
71
+ description: '重新更新 Bundle ID 的功能配置',
72
+ type: OptionItem::Boolean,
73
+ env_name: 'PINDO_CERT_FIXEDID',
74
+ default_value: false,
75
+ optional: true,
76
+ example: 'pindo utils renewcert --fixedid'
77
+ ),
78
+
79
+ nupkg: OptionItem.new(
80
+ key: :nupkg,
81
+ name: 'NuGet 包',
82
+ description: '指定要上传的 .nupkg 文件路径',
83
+ type: String,
84
+ env_name: 'PINDO_NUPKG',
85
+ optional: true,
86
+ example: 'pindo unity packpush --nupkg=path/to/package.nupkg'
87
+ ),
88
+
89
+ run: OptionItem.new(
90
+ key: :run,
91
+ name: '本地运行',
92
+ description: '编译完成后在本地打开运行',
93
+ type: OptionItem::Boolean,
94
+ env_name: 'PINDO_RUN',
95
+ default_value: false,
96
+ optional: true,
97
+ example: 'pindo web autobuild --run'
98
+ ),
99
+
100
+ port: OptionItem.new(
101
+ key: :port,
102
+ name: '端口号',
103
+ description: '指定本地 HTTP 服务器端口',
104
+ type: String,
105
+ env_name: 'PINDO_PORT',
106
+ default_value: '8000',
107
+ optional: true,
108
+ example: 'pindo web run --port=3000'
109
+ ),
110
+
111
+ debug: OptionItem.new(
112
+ key: :debug,
113
+ name: '调试模式',
114
+ description: '显示详细的调试信息',
115
+ type: OptionItem::Boolean,
116
+ env_name: 'PINDO_DEBUG_MODE',
117
+ default_value: false,
118
+ optional: true,
119
+ example: 'pindo web run --debug'
120
+ )
121
+ }
122
+ end
123
+ end
124
+ end
125
+ end
@@ -10,8 +10,14 @@ require 'pindo/options/core/global_options_state'
10
10
 
11
11
  # 参数组 (groups/)
12
12
  require 'pindo/options/groups/option_group'
13
+ require 'pindo/options/groups/global_options'
14
+ require 'pindo/options/groups/common_options'
13
15
  require 'pindo/options/groups/build_options'
14
16
  require 'pindo/options/groups/jps_options'
15
17
  require 'pindo/options/groups/unity_options'
16
18
  require 'pindo/options/groups/git_options'
17
19
  require 'pindo/options/groups/tool_options'
20
+ require 'pindo/options/groups/appstore_options'
21
+ require 'pindo/options/groups/pod_options'
22
+ require 'pindo/options/groups/ios_tool_options'
23
+ require 'pindo/options/groups/utils_options'
data/lib/pindo/version.rb CHANGED
@@ -6,13 +6,13 @@ require 'time'
6
6
 
7
7
  module Pindo
8
8
 
9
- VERSION = "5.18.3"
9
+ VERSION = "5.18.5"
10
10
 
11
11
  class VersionCheck
12
12
  RUBYGEMS_API = 'https://rubygems.org/api/v1/gems/pindo.json'
13
13
  VERSION_INFO_FILE = File.expand_path('~/.pindo/version_info.yml')
14
14
  CHECK_INTERVAL = 5 * 60 * 60 # 5小时检查一次
15
- CONFIG_MIN_VERSION = '1.7.0' # 硬编码的配置版本要求
15
+ CONFIG_MIN_VERSION = '1.8.0' # 硬编码的配置版本要求
16
16
 
17
17
  class << self
18
18
  # 主版本检查方法(保持向后兼容)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pindo
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.18.3
4
+ version: 5.18.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - wade
@@ -486,14 +486,20 @@ files:
486
486
  - lib/pindo/options/core/option_initializer.rb
487
487
  - lib/pindo/options/core/option_item.rb
488
488
  - lib/pindo/options/core/option_value_parser.rb
489
+ - lib/pindo/options/groups/appstore_options.rb
489
490
  - lib/pindo/options/groups/build_options.rb
490
491
  - lib/pindo/options/groups/cert_options.rb
492
+ - lib/pindo/options/groups/common_options.rb
491
493
  - lib/pindo/options/groups/git_options.rb
494
+ - lib/pindo/options/groups/global_options.rb
495
+ - lib/pindo/options/groups/ios_tool_options.rb
492
496
  - lib/pindo/options/groups/jps_options.rb
493
497
  - lib/pindo/options/groups/option_group.rb
498
+ - lib/pindo/options/groups/pod_options.rb
494
499
  - lib/pindo/options/groups/task_options.rb
495
500
  - lib/pindo/options/groups/tool_options.rb
496
501
  - lib/pindo/options/groups/unity_options.rb
502
+ - lib/pindo/options/groups/utils_options.rb
497
503
  - lib/pindo/options/helpers/bundleid_selector.rb
498
504
  - lib/pindo/options/helpers/git_constants.rb
499
505
  - lib/pindo/options/options.rb