pindo 5.18.4 → 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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/command/android/autobuild.rb +4 -6
  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/download.rb +11 -10
  26. data/lib/pindo/command/jps/login.rb +8 -7
  27. data/lib/pindo/command/jps/upload.rb +8 -13
  28. data/lib/pindo/command/repo.rb +0 -6
  29. data/lib/pindo/command/unity/autobuild.rb +7 -12
  30. data/lib/pindo/command/unity/packpush.rb +14 -8
  31. data/lib/pindo/command/utils/renewcert.rb +15 -13
  32. data/lib/pindo/command/utils/repoinit.rb +12 -6
  33. data/lib/pindo/command/utils.rb +7 -7
  34. data/lib/pindo/command/web/autobuild.rb +6 -9
  35. data/lib/pindo/command/web/run.rb +9 -8
  36. data/lib/pindo/module/android/android_build_helper.rb +6 -6
  37. data/lib/pindo/module/android/keystore_helper.rb +1 -1
  38. data/lib/pindo/module/cert/cert_helper.rb +1 -1
  39. data/lib/pindo/options/core/global_options_state.rb +1 -1
  40. data/lib/pindo/options/core/option_item.rb +1 -1
  41. data/lib/pindo/options/groups/appstore_options.rb +114 -0
  42. data/lib/pindo/options/groups/build_options.rb +82 -4
  43. data/lib/pindo/options/groups/cert_options.rb +0 -52
  44. data/lib/pindo/options/groups/common_options.rb +27 -0
  45. data/lib/pindo/options/groups/global_options.rb +18 -0
  46. data/lib/pindo/options/groups/ios_tool_options.rb +60 -0
  47. data/lib/pindo/options/groups/jps_options.rb +41 -0
  48. data/lib/pindo/options/groups/option_group.rb +1 -1
  49. data/lib/pindo/options/groups/pod_options.rb +37 -0
  50. data/lib/pindo/options/groups/unity_options.rb +4 -4
  51. data/lib/pindo/options/groups/utils_options.rb +125 -0
  52. data/lib/pindo/options/options.rb +6 -0
  53. data/lib/pindo/version.rb +1 -1
  54. metadata +7 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 57fbad3f66c9cdf2e2dda64e647feeeb46be84b6739ef7140c133855f57d548b
4
- data.tar.gz: 17f7f6f7bfa9cd4a9353814c64e4eb77f0605a8c92dbd34933370f33f4e5172b
3
+ metadata.gz: 0c5570599c0e84edb77c22267e890c57f736800bc046581d7a902e28b4b5c33f
4
+ data.tar.gz: 46b689df14719e8a7b0ef3af23e209d9e70484b3915b45a02c8c014ab1d2ddb3
5
5
  SHA512:
6
- metadata.gz: 948e941ffb9d6695421264fc413366d07faf0563b224e9b7a0f05370bd98559d1ebd15a99d7b43ef50bb3624a0bea8ffc228331baed069d674532390b6bb5266
7
- data.tar.gz: d085420dff707aaa1ea8c2a9577c02e7be4b0d753ba9aa6a8bfe141b510835c75407adb11176b533f137b2f71e16893a8cc07faa64d03225bbc4cfb057f7d411
6
+ metadata.gz: c2e5bb57d0a922210eff69f20fc7aabdf42660f01073e2a56378f32ff2380173eedd37b00e54f368051566903ac95c37f7139b17760c19c17ce889422e7078a8
7
+ data.tar.gz: 84d21199d7e08ad161a286090fbbc40c0a421f021f654dfde9b663fffc2c0921927e6a95a7cc0db21b074a1a4af0dcd28e354183bcf4bd5bb318dc178cf0a37b
@@ -96,25 +96,23 @@ module Pindo
96
96
  # 定义此命令使用的参数项
97
97
  def self.option_items
98
98
  @option_items ||= Pindo::Options::OptionGroup.merge(
99
- Pindo::Options::BuildOptions.select(:bundle_name), # 添加 bundle_name 参数
99
+ Pindo::Options::BuildOptions.select(:bundle_name, :release, :skipclean, :skipvalidate, :injectsigning),
100
100
  Pindo::Options::JPSOptions.select(:conf, :upload, :media, :bind, :send),
101
101
  Pindo::Options::UnityOptions.select(:skiplib, :skipyoo),
102
- Pindo::Options::UnityOptions.select_with_defaults(skipconfig: true),
102
+ Pindo::Options::UnityOptions.select_with_defaults(skipmacro: true),
103
103
  Pindo::Options::TaskOptions.select(:multi),
104
104
  Pindo::Options::GitOptions.all
105
105
  )
106
106
  end
107
107
 
108
108
  def self.options
109
- [
110
- ['--release', '使用Release模式构建']
111
- ].concat(option_items.map(&:to_claide_option)).concat(super)
109
+ option_items.map(&:to_claide_option).concat(super)
112
110
  end
113
111
 
114
112
  def initialize(argv)
115
113
  @options = initialize_options(argv)
116
114
 
117
- @args_release_flag = argv.flag?('release', false)
115
+ @args_release_flag = @options[:release] || false
118
116
  @args_conf = @options[:conf]
119
117
  @args_bundle_name = @options[:bundle_name] # 从 @options 获取,确保能被缓存
120
118
 
@@ -116,9 +116,9 @@ module Pindo
116
116
  @args_upload_flag = @options[:send] || @options[:upload]
117
117
  @args_conf = @options[:conf]
118
118
  @args_increase_flag = @options[:increase]
119
- @args_skip_config = argv.flag?('skipconfig', false)
120
- @args_skip_lib = argv.flag?('skiplib', false)
121
- @args_skip_yoo = argv.flag?('skipyoo', false)
119
+ @args_skip_config = @options[:skipmacro] || false
120
+ @args_skip_lib = @options[:skiplib] || false
121
+ @args_skip_yoo = @options[:skipyoo] || false
122
122
 
123
123
  super
124
124
  @additional_args = argv.remainder!
@@ -89,9 +89,9 @@ module Pindo
89
89
  # 保存参数到实例变量
90
90
  # 优先使用选项参数,如果没有则使用位置参数
91
91
  @args_bundle_id = @options[:bundleid] || positional_bundleid
92
- @args_skip_config = argv.flag?('skipconfig', false)
93
- @args_skip_lib = argv.flag?('skiplib', false)
94
- @args_skip_yoo = argv.flag?('skipyoo', false)
92
+ @args_skip_config = @options[:skipmacro] || false
93
+ @args_skip_lib = @options[:skiplib] || false
94
+ @args_skip_yoo = @options[:skipyoo] || false
95
95
 
96
96
  # Git 参数
97
97
  @args_release_branch = @options[:release_branch] || 'master'
@@ -78,9 +78,13 @@ module Pindo
78
78
  # 添加工具参数(ToolOptions)
79
79
  items.concat(Pindo::Options::ToolOptions.select(:ipa))
80
80
 
81
+ # 添加构建类型参数(BuildOptions)
82
+ items.concat(Pindo::Options::BuildOptions.select(
83
+ :dev, :adhoc, :develop_id, :build_type
84
+ ))
85
+
81
86
  # 添加证书相关参数(CertOptions)
82
87
  items.concat(Pindo::Options::CertOptions.select(
83
- :dev, :adhoc, :develop_id, :build_type,
84
88
  :platform, :macos, :cert_mode, :storage, :match
85
89
  ))
86
90
 
@@ -141,7 +145,7 @@ module Pindo
141
145
  end
142
146
 
143
147
  # 标准化构建类型
144
- @args_build_type = Pindo::Options::CertOptions.normalize_build_type(@args_build_type)
148
+ @args_build_type = Pindo::Options::BuildOptions.normalize_build_type(@args_build_type)
145
149
 
146
150
  # 处理平台类型
147
151
  @platform_type = @options[:platform]
@@ -42,9 +42,12 @@ module Pindo
42
42
  # 无位置参数
43
43
  ]
44
44
 
45
- # 定义此命令使用的参数项(使用 CertOptions)
45
+ # 定义此命令使用的参数项
46
46
  def self.option_items
47
- @option_items ||= Pindo::Options::CertOptions.all
47
+ @option_items ||= Pindo::Options::OptionGroup.merge(
48
+ Pindo::Options::BuildOptions.select(:build_type, :dev, :adhoc, :release, :develop_id),
49
+ Pindo::Options::CertOptions.all
50
+ )
48
51
  end
49
52
 
50
53
  # 命令的选项列表
@@ -56,9 +59,10 @@ module Pindo
56
59
  # 使用 Options 模块初始化参数
57
60
  @options = initialize_options(argv)
58
61
 
59
- # 证书类型快捷参数
62
+ # 构建类型快捷参数
60
63
  @args_dev_flag = @options[:dev]
61
64
  @args_adhoc_flag = @options[:adhoc]
65
+ @args_release_flag = @options[:release]
62
66
  @args_develop_id_flag = @options[:develop_id]
63
67
  @args_macos_flag = @options[:macos]
64
68
 
@@ -78,20 +82,22 @@ module Pindo
78
82
  @cert_mode ||= 'match' # 默认使用 Match 模式
79
83
  @storage ||= 'git' # 默认使用 Git 存储
80
84
 
81
- # 参数优先级:--develop_id > --adhoc > --dev > 用户指定的 build_type > 默认 appstore
85
+ # 参数优先级:--develop_id > --release > --adhoc > --dev > 用户指定的 build_type > 默认 appstore
82
86
  if @args_develop_id_flag
83
87
  @build_type = 'developer_id'
88
+ elsif @args_release_flag
89
+ @build_type = 'appstore'
84
90
  elsif @args_adhoc_flag
85
91
  @build_type = 'adhoc'
86
92
  elsif @args_dev_flag
87
93
  @build_type = 'dev'
88
94
  elsif @build_type.nil? || @build_type.empty?
89
- @build_type = 'appstore' # 默认使用 appstore 证书
95
+ @build_type = 'appstore'
90
96
  end
91
97
  # 如果用户明确指定了 --build_type,则保持用户指定的值
92
98
 
93
99
  # 标准化构建类型(dev -> development, release -> appstore)
94
- @build_type = Pindo::Options::CertOptions.normalize_build_type(@build_type)
100
+ @build_type = Pindo::Options::BuildOptions.normalize_build_type(@build_type)
95
101
 
96
102
  # 处理平台类型
97
103
  if @args_macos_flag
@@ -31,18 +31,20 @@ module Pindo
31
31
  self.arguments = [
32
32
  ]
33
33
 
34
+ def self.option_items
35
+ @option_items ||= Pindo::Options::AppStoreOptions.select(:metadata, :screenshots, :overwrite)
36
+ end
37
+
34
38
  def self.options
35
- [
36
- ['--metadata', '获取metadata信息'],
37
- ['--screenshots', '下载商店截屏'],
38
- ['--overwrite', '覆盖已存在的文件'],
39
- ].concat(super)
39
+ option_items.map(&:to_claide_option).concat(super)
40
40
  end
41
41
 
42
42
  def initialize(argv)
43
- @upload_metadata_flag = argv.flag?('metadata', false)
44
- @upload_screenshots_flag = argv.flag?('screenshots', false)
45
- @over_write = argv.flag?('overwrite', false)
43
+ @options = initialize_options(argv)
44
+
45
+ @upload_metadata_flag = @options[:metadata] || false
46
+ @upload_screenshots_flag = @options[:screenshots] || false
47
+ @over_write = @options[:overwrite] || false
46
48
 
47
49
  super
48
50
  end
@@ -31,13 +31,12 @@ module Pindo
31
31
  self.arguments = [
32
32
  ]
33
33
 
34
- def self.options
35
- [
36
- ['--check', '检查iap信息'],
37
- ['--download', '从appstore下载app的iap信息'],
38
- ['--boss', '生成boss的iap信息'],
34
+ def self.option_items
35
+ @option_items ||= Pindo::Options::AppStoreOptions.select(:check, :boss, :download)
36
+ end
39
37
 
40
- ].concat(super)
38
+ def self.options
39
+ option_items.map(&:to_claide_option).concat(super)
41
40
  end
42
41
 
43
42
  def validate!
@@ -53,10 +52,11 @@ module Pindo
53
52
  end
54
53
 
55
54
  def initialize(argv)
55
+ @options = initialize_options(argv)
56
56
 
57
- @check_flag = argv.flag?('check', false)
58
- @download_flag = argv.flag?('download', false)
59
- @boss_flag = argv.flag?('boss', false)
57
+ @check_flag = @options[:check] || false
58
+ @download_flag = @options[:download] || false
59
+ @boss_flag = @options[:boss] || false
60
60
 
61
61
  super
62
62
  end
@@ -49,28 +49,27 @@ module Pindo
49
49
 
50
50
  # 定义此命令使用的参数项
51
51
  def self.option_items
52
- @option_items ||= Pindo::Options::BuildOptions.select(:bundleid)
52
+ @option_items ||= Pindo::Options::OptionGroup.merge(
53
+ Pindo::Options::BuildOptions.select(:bundleid),
54
+ Pindo::Options::UtilsOptions.select(:test)
55
+ )
53
56
  end
54
57
 
55
58
  # 命令的选项列表
56
59
  def self.options
57
- [
58
- ['--test', '创建测试环境仓库']
59
- ].concat(option_items.map { |item| item.to_claide_option }).concat(super)
60
+ option_items.map(&:to_claide_option).concat(super)
60
61
  end
61
62
 
62
63
  def initialize(argv)
63
64
  # 首先获取位置参数(向后兼容)
64
65
  positional_bundleid = argv.shift_argument
65
66
 
66
- # 获取 test 标志
67
- @test_flag = argv.flag?('test', false)
68
-
69
67
  # 使用 Options 模块初始化参数
70
68
  @options = initialize_options(argv)
71
69
 
72
70
  # 优先使用选项参数,如果没有则使用位置参数
73
71
  @bundle_id = @options[:bundleid] || positional_bundleid
72
+ @test_flag = @options[:test] || false
74
73
 
75
74
  super
76
75
  @additional_args = argv.remainder!
@@ -33,22 +33,22 @@ module Pindo
33
33
  self.arguments = [
34
34
  ]
35
35
 
36
+ def self.option_items
37
+ @option_items ||= Pindo::Options::AppStoreOptions.select(:metadata, :screenshots, :overwrite, :sync, :ipa)
38
+ end
39
+
36
40
  def self.options
37
- [
38
- ['--metadata', '上传元数据到iTunes Connect'],
39
- ['--screenshots', '上传截图到iTunes Connect'],
40
- ['--overwrite', '覆盖iTunes Connect中的截图'],
41
- ['--sync', '同步截图到iTunes Connect'],
42
- ['--ipa', '上传ipa到iTunes Connect'],
43
- ].concat(super)
41
+ option_items.map(&:to_claide_option).concat(super)
44
42
  end
45
43
 
46
44
  def initialize(argv)
47
- @upload_metadata_flag = argv.flag?('metadata', false)
48
- @upload_screenshots_flag = argv.flag?('screenshots', false)
49
- @overwrite_flag = argv.flag?('overwrite', false)
50
- @sync_flag = argv.flag?('sync', false)
51
- @upload_ipa_flag = argv.flag?('ipa', false)
45
+ @options = initialize_options(argv)
46
+
47
+ @upload_metadata_flag = @options[:metadata] || false
48
+ @upload_screenshots_flag = @options[:screenshots] || false
49
+ @overwrite_flag = @options[:overwrite] || false
50
+ @sync_flag = @options[:sync] || false
51
+ @upload_ipa_flag = @options[:ipa] || false
52
52
 
53
53
  super
54
54
  end
@@ -33,16 +33,17 @@ module Pindo
33
33
  CLAide::Argument.new('path/to/config.json', false),
34
34
  ]
35
35
 
36
+ def self.option_items
37
+ @option_items ||= Pindo::Options::UtilsOptions.select(:down)
38
+ end
39
+
36
40
  def self.options
37
- [
38
- ['--download', '下载app的所有购买项,用法:pindo appstore metadata --download'],
39
- ].concat(super)
41
+ option_items.map(&:to_claide_option).concat(super)
40
42
  end
41
43
 
42
44
  def initialize(argv)
43
-
44
- @args_download_name = argv.option('download')
45
-
45
+ @options = initialize_options(argv)
46
+ @args_download_name = @options[:down] || false
46
47
  super
47
48
  end
48
49
 
@@ -33,16 +33,17 @@ module Pindo
33
33
  CLAide::Argument.new('path/to/config.json', false),
34
34
  ]
35
35
 
36
+ def self.option_items
37
+ @option_items ||= Pindo::Options::UtilsOptions.select(:down)
38
+ end
39
+
36
40
  def self.options
37
- [
38
- ['--download', '下载app的所有购买项,用法:pindo appstore screenshots --download'],
39
- ].concat(super)
41
+ option_items.map(&:to_claide_option).concat(super)
40
42
  end
41
43
 
42
44
  def initialize(argv)
43
-
44
- @args_download_name = argv.option('download')
45
-
45
+ @options = initialize_options(argv)
46
+ @args_download_name = @options[:down] || false
46
47
  super
47
48
  end
48
49
 
@@ -24,14 +24,17 @@ module Pindo
24
24
  self.arguments = [
25
25
  ]
26
26
 
27
+ def self.option_items
28
+ @option_items ||= Pindo::Options::AppStoreOptions.select(:delete)
29
+ end
30
+
27
31
  def self.options
28
- [
29
- ['--delete=TAG_NAME', '删除指定的tag'],
30
- ].concat(super)
32
+ option_items.map(&:to_claide_option).concat(super)
31
33
  end
32
34
 
33
35
  def initialize(argv)
34
- @delete_tag_name = argv.option('delete')
36
+ @options = initialize_options(argv)
37
+ @delete_tag_name = @options[:delete]
35
38
  super
36
39
  end
37
40
 
@@ -35,16 +35,17 @@ DESC
35
35
  CLAide::Argument.new('path/to/config.json', false),
36
36
  ]
37
37
 
38
+ def self.option_items
39
+ @option_items ||= Pindo::Options::UtilsOptions.select(:down)
40
+ end
41
+
38
42
  def self.options
39
- [
40
- ['--download', '下载app的所有购买项,用法:pindo appstore iap --download'],
41
- ].concat(super)
43
+ option_items.map(&:to_claide_option).concat(super)
42
44
  end
43
45
 
44
46
  def initialize(argv)
45
-
46
- @args_download_name = argv.option('download')
47
-
47
+ @options = initialize_options(argv)
48
+ @args_download_name = @options[:down] || false
48
49
  super
49
50
  end
50
51
 
@@ -37,16 +37,17 @@ DESC
37
37
  CLAide::Argument.new('path/to/config.json', false),
38
38
  ]
39
39
 
40
+ def self.option_items
41
+ @option_items ||= Pindo::Options::UtilsOptions.select(:down)
42
+ end
43
+
40
44
  def self.options
41
- [
42
- ['--download', '下载app的所有购买项,用法:pindo appstore metadata --download'],
43
- ].concat(super)
45
+ option_items.map(&:to_claide_option).concat(super)
44
46
  end
45
47
 
46
48
  def initialize(argv)
47
-
48
- @args_download_name = argv.option('download')
49
-
49
+ @options = initialize_options(argv)
50
+ @args_download_name = @options[:down] || false
50
51
  super
51
52
  end
52
53
 
@@ -37,16 +37,17 @@ DESC
37
37
  CLAide::Argument.new('path/to/config.json', false),
38
38
  ]
39
39
 
40
+ def self.option_items
41
+ @option_items ||= Pindo::Options::UtilsOptions.select(:down)
42
+ end
43
+
40
44
  def self.options
41
- [
42
- ['--download', '下载app的所有购买项,用法:pindo appstore screenshots --download'],
43
- ].concat(super)
45
+ option_items.map(&:to_claide_option).concat(super)
44
46
  end
45
47
 
46
48
  def initialize(argv)
47
-
48
- @args_download_name = argv.option('download')
49
-
49
+ @options = initialize_options(argv)
50
+ @args_download_name = @options[:down] || false
50
51
  super
51
52
  end
52
53
 
@@ -39,19 +39,20 @@ module Pindo
39
39
  self.arguments = [
40
40
  ]
41
41
 
42
+ def self.option_items
43
+ @option_items ||= Pindo::Options::IosToolOptions.select(:appstore, :install, :upload)
44
+ end
45
+
42
46
  def self.options
43
- [
44
- ['--appstore', 'AppStore模式,一般不使用'],
45
- ['--install', '运行applovin安装脚本'],
46
- ['--upload', '保存SKAdNetwork IDs到本地配置'],
47
- ].concat(super)
47
+ option_items.map(&:to_claide_option).concat(super)
48
48
  end
49
49
 
50
50
  def initialize(argv)
51
+ @options = initialize_options(argv)
51
52
 
52
- @args_appstore_flag = argv.flag?('appstore', false)
53
- @args_install_flag = argv.flag?('install', false)
54
- @args_upload_flag = argv.flag?('upload', false)
53
+ @args_appstore_flag = @options[:appstore] || false
54
+ @args_install_flag = @options[:install] || false
55
+ @args_upload_flag = @options[:upload] || false
55
56
 
56
57
  super(argv)
57
58
  @additional_args = argv.remainder!
@@ -102,7 +102,7 @@ module Pindo
102
102
  Pindo::Options::BuildOptions.select(:bundleid, :build_type),
103
103
  Pindo::Options::JPSOptions.select(:conf, :upload, :media, :bind, :send),
104
104
  Pindo::Options::UnityOptions.select(:skiplib, :skipyoo),
105
- Pindo::Options::UnityOptions.select_with_defaults(skipconfig: true),
105
+ Pindo::Options::UnityOptions.select_with_defaults(skipmacro: true),
106
106
  Pindo::Options::TaskOptions.select(:multi),
107
107
  Pindo::Options::GitOptions.all
108
108
  )
@@ -75,9 +75,13 @@ module Pindo
75
75
  # 添加工具参数(ToolOptions)
76
76
  items.concat(Pindo::Options::ToolOptions.select(:ipa, :deploy))
77
77
 
78
+ # 添加构建类型参数(BuildOptions)
79
+ items.concat(Pindo::Options::BuildOptions.select(
80
+ :dev, :adhoc, :develop_id, :build_type
81
+ ))
82
+
78
83
  # 添加证书相关参数(CertOptions)
79
84
  items.concat(Pindo::Options::CertOptions.select(
80
- :dev, :adhoc, :develop_id, :build_type,
81
85
  :platform, :macos, :cert_mode, :storage, :match
82
86
  ))
83
87
 
@@ -146,7 +150,7 @@ module Pindo
146
150
  end
147
151
 
148
152
  # 标准化构建类型
149
- @build_type = Pindo::Options::CertOptions.normalize_build_type(@build_type)
153
+ @build_type = Pindo::Options::BuildOptions.normalize_build_type(@build_type)
150
154
 
151
155
  # 处理平台类型
152
156
  @platform_type = @options[:platform]
@@ -57,9 +57,12 @@ module Pindo
57
57
  # 暂无参数
58
58
  ]
59
59
 
60
- # 定义此命令使用的参数项(直接使用 CertOptions)
60
+ # 定义此命令使用的参数项
61
61
  def self.option_items
62
- @option_items ||= Pindo::Options::CertOptions.all
62
+ @option_items ||= Pindo::Options::OptionGroup.merge(
63
+ Pindo::Options::BuildOptions.select(:build_type, :dev, :adhoc, :release, :develop_id),
64
+ Pindo::Options::CertOptions.all
65
+ )
63
66
  end
64
67
 
65
68
  # 命令的选项列表
@@ -71,9 +74,10 @@ module Pindo
71
74
  # 使用 Options 模块初始化参数
72
75
  @options = initialize_options(argv)
73
76
 
74
- # 证书快捷参数
77
+ # 构建类型快捷参数
75
78
  @args_dev_flag = @options[:dev]
76
79
  @args_adhoc_flag = @options[:adhoc]
80
+ @args_release_flag = @options[:release]
77
81
  @args_develop_id_flag = @options[:develop_id]
78
82
  @args_macos_flag = @options[:macos]
79
83
 
@@ -94,21 +98,22 @@ module Pindo
94
98
  # 根据快捷参数确定构建类型
95
99
  @build_type = @options[:build_type]
96
100
 
97
- # 参数优先级:--develop_id > --adhoc > --dev > 用户指定的 build_type > 默认 dev
101
+ # 参数优先级:--develop_id > --release > --adhoc > --dev > 用户指定的 build_type > 默认 dev
98
102
  if @args_develop_id_flag
99
103
  @build_type = 'developer_id'
104
+ elsif @args_release_flag
105
+ @build_type = 'appstore'
100
106
  elsif @args_adhoc_flag
101
107
  @build_type = 'adhoc'
102
108
  elsif @args_dev_flag
103
109
  @build_type = 'dev'
104
110
  elsif @build_type.nil? || @build_type.empty?
105
- # build_type 为 nil 时,iOS cert 命令默认使用 dev
106
111
  @build_type = 'dev'
107
112
  end
108
113
  # 如果用户明确指定了 --build_type,则保持用户指定的值
109
114
 
110
115
  # 标准化构建类型(dev -> development, release -> appstore)
111
- @build_type = Pindo::Options::CertOptions.normalize_build_type(@build_type)
116
+ @build_type = Pindo::Options::BuildOptions.normalize_build_type(@build_type)
112
117
 
113
118
  # 处理平台类型
114
119
  @platform_type = @options[:platform]
@@ -19,7 +19,7 @@ module Pindo
19
19
 
20
20
  * 删除 Unity-iPhone 项目中的 Firebase Crashlytics 脚本
21
21
 
22
- * 自动扫描模式 (--auto): 自动扫描当前目录及 GoodPlatform/BaseiOS 下的 iOS 项目
22
+ * 批量修复模式 (--allproj): 自动扫描当前目录及 GoodPlatform/BaseiOS 下的所有 iOS 项目
23
23
 
24
24
  使用示例:
25
25
 
@@ -27,7 +27,7 @@ module Pindo
27
27
 
28
28
  $ pindo ios fixproj path/to/project # 修复指定目录的项目
29
29
 
30
- $ pindo ios fixproj --auto # 自动扫描并修复 Unity 导出的 iOS 项目
30
+ $ pindo ios fixproj --allproj # 扫描并修复所有 iOS 项目
31
31
  DESC
32
32
 
33
33
  # 定义位置参数
@@ -35,17 +35,20 @@ module Pindo
35
35
  CLAide::Argument.new('path/to/project', true)
36
36
  ]
37
37
 
38
+ def self.option_items
39
+ @option_items ||= Pindo::Options::IosToolOptions.select(:allproj)
40
+ end
41
+
38
42
  # 命令的选项列表
39
43
  def self.options
40
- [
41
- ['--auto', '自动扫描当前目录及 GoodPlatform/BaseiOS 下的 iOS 项目'],
42
- ].concat(super)
44
+ option_items.map(&:to_claide_option).concat(super)
43
45
  end
44
46
 
45
47
  def initialize(argv)
46
48
  # 获取位置参数(项目路径)
47
49
  @project_path = argv.shift_argument
48
- @auto_mode = argv.flag?('auto')
50
+ @options = initialize_options(argv)
51
+ @auto_mode = @options[:allproj] || false
49
52
  super(argv)
50
53
  end
51
54
 
@@ -1,6 +1,7 @@
1
1
  require 'highline/import'
2
2
  require 'fileutils'
3
3
  require 'json'
4
+ require 'pindo/options/options'
4
5
 
5
6
  module Pindo
6
7
  class Command
@@ -30,7 +31,7 @@ module Pindo
30
31
 
31
32
  $ pindo ios podlint MyPod.podspec # 指定podspec文件
32
33
 
33
- $ pindo ios podlint --p=~/MyPod # 指定pod库目录
34
+ $ pindo ios podlint --path=~/MyPod # 指定pod库目录
34
35
 
35
36
  $ pindo ios podlint --verbose # 显示详细输出
36
37
  DESC
@@ -40,15 +41,19 @@ module Pindo
40
41
  CLAide::Argument.new('podspec', true)
41
42
  ]
42
43
 
44
+ def self.option_items
45
+ @option_items ||= Pindo::Options::PodOptions.select(:path)
46
+ end
47
+
43
48
  def self.options
44
- [
45
- ['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
46
- ].concat(super)
49
+ option_items.map(&:to_claide_option).concat(super)
47
50
  end
48
51
 
49
52
  def initialize(argv)
50
53
  @pod_spec_file = argv.shift_argument || nil
51
- @project_dir = argv.option('p')
54
+
55
+ @options = initialize_options(argv)
56
+ @project_dir = @options[:path]
52
57
 
53
58
  super(argv)
54
59
  @additional_args = argv.remainder!