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.
- checksums.yaml +4 -4
- data/lib/pindo/command/android/autobuild.rb +4 -6
- data/lib/pindo/command/appstore/adhocbuild.rb +3 -3
- data/lib/pindo/command/appstore/autobuild.rb +3 -3
- data/lib/pindo/command/appstore/autoresign.rb +6 -2
- data/lib/pindo/command/appstore/cert.rb +12 -6
- data/lib/pindo/command/appstore/getitcinfo.rb +10 -8
- data/lib/pindo/command/appstore/iap.rb +9 -9
- data/lib/pindo/command/appstore/initconfig.rb +6 -7
- data/lib/pindo/command/appstore/itcinfo.rb +12 -12
- data/lib/pindo/command/appstore/metadata.rb +7 -6
- data/lib/pindo/command/appstore/screenshots.rb +7 -6
- data/lib/pindo/command/appstore/tag.rb +7 -4
- data/lib/pindo/command/gplay/iap.rb +7 -6
- data/lib/pindo/command/gplay/metadata.rb +7 -6
- data/lib/pindo/command/gplay/screenshots.rb +7 -6
- data/lib/pindo/command/ios/applovin.rb +9 -8
- data/lib/pindo/command/ios/autobuild.rb +1 -1
- data/lib/pindo/command/ios/autoresign.rb +6 -2
- data/lib/pindo/command/ios/cert.rb +11 -6
- data/lib/pindo/command/ios/fixproj.rb +9 -6
- data/lib/pindo/command/ios/podlint.rb +10 -5
- data/lib/pindo/command/ios/podpush.rb +13 -6
- data/lib/pindo/command/ios/podupdate.rb +10 -6
- data/lib/pindo/command/jps/download.rb +11 -10
- data/lib/pindo/command/jps/login.rb +8 -7
- data/lib/pindo/command/jps/upload.rb +8 -13
- data/lib/pindo/command/repo.rb +0 -6
- data/lib/pindo/command/unity/autobuild.rb +7 -12
- data/lib/pindo/command/unity/packpush.rb +14 -8
- data/lib/pindo/command/utils/renewcert.rb +15 -13
- data/lib/pindo/command/utils/repoinit.rb +12 -6
- data/lib/pindo/command/utils.rb +7 -7
- data/lib/pindo/command/web/autobuild.rb +6 -9
- data/lib/pindo/command/web/run.rb +9 -8
- data/lib/pindo/module/android/android_build_helper.rb +6 -6
- data/lib/pindo/module/android/keystore_helper.rb +1 -1
- data/lib/pindo/module/cert/cert_helper.rb +1 -1
- data/lib/pindo/options/core/global_options_state.rb +1 -1
- data/lib/pindo/options/core/option_item.rb +1 -1
- data/lib/pindo/options/groups/appstore_options.rb +114 -0
- data/lib/pindo/options/groups/build_options.rb +82 -4
- data/lib/pindo/options/groups/cert_options.rb +0 -52
- data/lib/pindo/options/groups/common_options.rb +27 -0
- data/lib/pindo/options/groups/global_options.rb +18 -0
- data/lib/pindo/options/groups/ios_tool_options.rb +60 -0
- data/lib/pindo/options/groups/jps_options.rb +41 -0
- data/lib/pindo/options/groups/option_group.rb +1 -1
- data/lib/pindo/options/groups/pod_options.rb +37 -0
- data/lib/pindo/options/groups/unity_options.rb +4 -4
- data/lib/pindo/options/groups/utils_options.rb +125 -0
- data/lib/pindo/options/options.rb +6 -0
- data/lib/pindo/version.rb +1 -1
- metadata +7 -1
|
@@ -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
|
|
@@ -37,17 +38,23 @@ module Pindo
|
|
|
37
38
|
CLAide::Argument.new('podspec', true)
|
|
38
39
|
]
|
|
39
40
|
|
|
41
|
+
def self.option_items
|
|
42
|
+
@option_items ||= Pindo::Options::OptionGroup.merge(
|
|
43
|
+
Pindo::Options::PodOptions.select(:path),
|
|
44
|
+
Pindo::Options::CommonOptions.select(:force)
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
|
|
40
48
|
def self.options
|
|
41
|
-
|
|
42
|
-
['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
|
|
43
|
-
['--force', '强制推送,跳过验证步骤(相当于原forcepush命令)'],
|
|
44
|
-
].concat(super)
|
|
49
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
45
50
|
end
|
|
46
51
|
|
|
47
52
|
def initialize(argv)
|
|
48
53
|
@pod_spec_file = argv.shift_argument || nil
|
|
49
|
-
|
|
50
|
-
@
|
|
54
|
+
|
|
55
|
+
@options = initialize_options(argv)
|
|
56
|
+
@project_dir = @options[:path]
|
|
57
|
+
@force_push = @options[:force] || false
|
|
51
58
|
|
|
52
59
|
super(argv)
|
|
53
60
|
@additional_args = argv.remainder!
|
|
@@ -2,6 +2,7 @@ require 'highline/import'
|
|
|
2
2
|
require 'fileutils'
|
|
3
3
|
require 'json'
|
|
4
4
|
require 'pindo/module/xcode/cocoapods_helper'
|
|
5
|
+
require 'pindo/options/options'
|
|
5
6
|
|
|
6
7
|
module Pindo
|
|
7
8
|
class Command
|
|
@@ -32,16 +33,19 @@ module Pindo
|
|
|
32
33
|
|
|
33
34
|
]
|
|
34
35
|
|
|
36
|
+
def self.option_items
|
|
37
|
+
@option_items ||= Pindo::Options::PodOptions.select(:path, :install)
|
|
38
|
+
end
|
|
39
|
+
|
|
35
40
|
def self.options
|
|
36
|
-
|
|
37
|
-
['--install', '更新完lib之后执行pod install, pindo ios podupdate --install'],
|
|
38
|
-
['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
|
|
39
|
-
].concat(super)
|
|
41
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
40
42
|
end
|
|
41
43
|
|
|
42
44
|
def initialize(argv)
|
|
43
|
-
@
|
|
44
|
-
|
|
45
|
+
@options = initialize_options(argv)
|
|
46
|
+
|
|
47
|
+
@args_install_flag = @options[:install] || false
|
|
48
|
+
@project_dir = @options[:path]
|
|
45
49
|
|
|
46
50
|
@additional_args = argv.remainder!
|
|
47
51
|
super(argv)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'highline/import'
|
|
2
2
|
require 'fileutils'
|
|
3
3
|
require 'pindo/module/pgyer/pgyerhelper'
|
|
4
|
+
require 'pindo/options/options'
|
|
4
5
|
require 'open-uri'
|
|
5
6
|
|
|
6
7
|
|
|
@@ -34,21 +35,21 @@ module Pindo
|
|
|
34
35
|
|
|
35
36
|
]
|
|
36
37
|
|
|
37
|
-
def self.
|
|
38
|
-
|
|
39
|
-
['--login', '强制再次登录jps网站'],
|
|
40
|
-
['--list', '列出上传记录并选择,用法:pindo jps download --list'],
|
|
41
|
-
['--conf', '指定 JPSBuildConfig.json 配置文件路径,用法:pindo jps download --conf=./JPSBuildConfig.json'],
|
|
42
|
-
].concat(super)
|
|
38
|
+
def self.option_items
|
|
39
|
+
@option_items ||= Pindo::Options::JPSOptions.select(:login, :list, :conf, :index)
|
|
43
40
|
end
|
|
44
41
|
|
|
42
|
+
def self.options
|
|
43
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
44
|
+
end
|
|
45
45
|
|
|
46
46
|
def initialize(argv)
|
|
47
|
+
@options = initialize_options(argv)
|
|
47
48
|
|
|
48
|
-
@args_login_flag =
|
|
49
|
-
@args_list_flag =
|
|
50
|
-
@args_conf =
|
|
51
|
-
@app_version_index =
|
|
49
|
+
@args_login_flag = @options[:login] || false
|
|
50
|
+
@args_list_flag = @options[:list] || false
|
|
51
|
+
@args_conf = @options[:conf]
|
|
52
|
+
@app_version_index = @options[:index]
|
|
52
53
|
|
|
53
54
|
super(argv)
|
|
54
55
|
@additional_args = argv.remainder!
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'highline/import'
|
|
2
2
|
require 'fileutils'
|
|
3
3
|
require 'pindo/module/pgyer/pgyerhelper'
|
|
4
|
+
require 'pindo/options/options'
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
module Pindo
|
|
@@ -31,17 +32,17 @@ module Pindo
|
|
|
31
32
|
|
|
32
33
|
]
|
|
33
34
|
|
|
34
|
-
def self.
|
|
35
|
-
|
|
36
|
-
['--force', '强制重新登录jps'],
|
|
37
|
-
].concat(super)
|
|
35
|
+
def self.option_items
|
|
36
|
+
@option_items ||= Pindo::Options::CommonOptions.select(:force)
|
|
38
37
|
end
|
|
39
38
|
|
|
40
|
-
|
|
39
|
+
def self.options
|
|
40
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
41
|
+
end
|
|
41
42
|
|
|
42
43
|
def initialize(argv)
|
|
43
|
-
|
|
44
|
-
@args_login_flag =
|
|
44
|
+
@options = initialize_options(argv)
|
|
45
|
+
@args_login_flag = @options[:force] || false
|
|
45
46
|
|
|
46
47
|
super(argv)
|
|
47
48
|
@additional_args = argv.remainder!
|
|
@@ -67,24 +67,23 @@ module Pindo
|
|
|
67
67
|
def self.option_items
|
|
68
68
|
@option_items ||= Pindo::Options::OptionGroup.merge(
|
|
69
69
|
Pindo::Options::BuildOptions.select(:types),
|
|
70
|
-
Pindo::Options::JPSOptions.select(:conf, :send, :desc, :resign),
|
|
70
|
+
Pindo::Options::JPSOptions.select(:conf, :send, :desc, :resign, :login, :file, :attach),
|
|
71
71
|
Pindo::Options::GitOptions.all
|
|
72
72
|
)
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
def self.options
|
|
76
|
-
|
|
77
|
-
['--login', '强制再次登录jps网站'],
|
|
78
|
-
['--file', '指定要上传的文件路径(支持 ipa/apk/app/exe/html)'],
|
|
79
|
-
['--attach', '指定需要和安装包一起上传的附件'],
|
|
80
|
-
].concat(option_items.map(&:to_claide_option)).concat(super)
|
|
76
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
81
77
|
end
|
|
82
78
|
|
|
83
79
|
|
|
84
80
|
def initialize(argv)
|
|
85
81
|
@args_ipa_file = argv.shift_argument
|
|
86
|
-
file_option = argv.option('file') || argv.option('ipa')
|
|
87
82
|
|
|
83
|
+
# 使用 Options 系统解析参数
|
|
84
|
+
@options = initialize_options(argv)
|
|
85
|
+
|
|
86
|
+
file_option = @options[:file]
|
|
88
87
|
if !file_option.nil?
|
|
89
88
|
@args_ipa_file = file_option
|
|
90
89
|
end
|
|
@@ -92,12 +91,8 @@ module Pindo
|
|
|
92
91
|
@args_ipa_file = @args_ipa_file.strip.gsub(/\"/, '')
|
|
93
92
|
end
|
|
94
93
|
|
|
95
|
-
@args_login_flag =
|
|
96
|
-
@args_attach_name =
|
|
97
|
-
|
|
98
|
-
# 使用 Options 系统解析参数
|
|
99
|
-
@options = initialize_options(argv)
|
|
100
|
-
|
|
94
|
+
@args_login_flag = @options[:login] || false
|
|
95
|
+
@args_attach_name = @options[:attach]
|
|
101
96
|
@args_types = @options[:types]
|
|
102
97
|
|
|
103
98
|
# JPS 参数
|
data/lib/pindo/command/repo.rb
CHANGED
|
@@ -101,10 +101,10 @@ module Pindo
|
|
|
101
101
|
# 定义此命令使用的参数项
|
|
102
102
|
def self.option_items
|
|
103
103
|
@option_items ||= Pindo::Options::OptionGroup.merge(
|
|
104
|
-
Pindo::Options::BuildOptions.select(:bundleid, :bundle_name, :types),
|
|
104
|
+
Pindo::Options::BuildOptions.select(:bundleid, :bundle_name, :types, :release, :adhoc, :skipclean, :skipvalidate, :injectsigning),
|
|
105
105
|
Pindo::Options::JPSOptions.select(:conf, :upload, :send, :media, :bind),
|
|
106
106
|
Pindo::Options::UnityOptions.select(:skiplib, :skipyoo, :kill_unity),
|
|
107
|
-
Pindo::Options::UnityOptions.select_with_defaults(
|
|
107
|
+
Pindo::Options::UnityOptions.select_with_defaults(skipmacro: true),
|
|
108
108
|
Pindo::Options::TaskOptions.select(:multi),
|
|
109
109
|
Pindo::Options::GitOptions.all
|
|
110
110
|
)
|
|
@@ -112,11 +112,7 @@ module Pindo
|
|
|
112
112
|
|
|
113
113
|
# 命令选项
|
|
114
114
|
def self.options
|
|
115
|
-
|
|
116
|
-
['--adhoc', '使用AdHoc证书打包iOS(默认使用Dev证书)'],
|
|
117
|
-
['--deploy', '使用发布证书打包iOS'],
|
|
118
|
-
['--release', '使用Release模式构建Android(默认使用Debug)']
|
|
119
|
-
].concat(option_items.map(&:to_claide_option)).concat(super)
|
|
115
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
120
116
|
end
|
|
121
117
|
|
|
122
118
|
|
|
@@ -124,9 +120,8 @@ module Pindo
|
|
|
124
120
|
@options = initialize_options(argv)
|
|
125
121
|
|
|
126
122
|
@args_conf = @options[:conf]
|
|
127
|
-
@args_adhoc_flag =
|
|
128
|
-
@
|
|
129
|
-
@args_release_flag = argv.flag?('release', false)
|
|
123
|
+
@args_adhoc_flag = @options[:adhoc] || false
|
|
124
|
+
@args_release_flag = @options[:release] || false
|
|
130
125
|
@args_bundle_id = @options[:bundleid] # 从 @options 获取,确保能被缓存
|
|
131
126
|
@args_bundle_name = @options[:bundle_name] # 从 @options 获取,确保能被缓存
|
|
132
127
|
@args_types = @options[:types]
|
|
@@ -615,7 +610,7 @@ module Pindo
|
|
|
615
610
|
cached = Pindo::Options::GlobalOptionsState.instance[:bundleid]
|
|
616
611
|
if cached && !cached.empty?
|
|
617
612
|
platform_config["bundle_id"] = cached
|
|
618
|
-
elsif @
|
|
613
|
+
elsif @args_release_flag
|
|
619
614
|
platform_config["bundle_id"] = get_selected_deploy_bundleid()
|
|
620
615
|
else
|
|
621
616
|
platform_config["bundle_id"] = get_selected_dev_bundleid()
|
|
@@ -742,7 +737,7 @@ module Pindo
|
|
|
742
737
|
case platform
|
|
743
738
|
when 'ios'
|
|
744
739
|
# iOS 支持 dev/adhoc/release
|
|
745
|
-
return :release if @
|
|
740
|
+
return :release if @args_release_flag
|
|
746
741
|
return :adhoc if @args_adhoc_flag
|
|
747
742
|
return :dev
|
|
748
743
|
when 'android'
|
|
@@ -48,20 +48,26 @@ module Pindo
|
|
|
48
48
|
]
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
+
def self.option_items
|
|
52
|
+
@option_items ||= Pindo::Options::OptionGroup.merge(
|
|
53
|
+
Pindo::Options::UtilsOptions.select(:nupkg),
|
|
54
|
+
Pindo::Options::CommonOptions.select(:force)
|
|
55
|
+
)
|
|
56
|
+
end
|
|
57
|
+
|
|
51
58
|
def self.options
|
|
52
|
-
|
|
53
|
-
['--nupkg', '指定要上传的 .nupkg 文件路径'],
|
|
54
|
-
['--force', '跳过确认,直接上传(等同于设置 NUGET_UPLOAD_FORCE=1)'],
|
|
55
|
-
].concat(super)
|
|
59
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
56
60
|
end
|
|
57
61
|
|
|
58
62
|
def initialize(argv)
|
|
59
63
|
@args_nupkg_file = argv.shift_argument
|
|
60
|
-
@nupkg_file = argv.option('nupkg')
|
|
61
|
-
@force_flag = argv.flag?('force', false)
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
@options = initialize_options(argv)
|
|
66
|
+
@force_flag = @options[:force] || false
|
|
67
|
+
nupkg_option = @options[:nupkg]
|
|
68
|
+
|
|
69
|
+
if !nupkg_option.nil?
|
|
70
|
+
@args_nupkg_file = nupkg_option
|
|
65
71
|
end
|
|
66
72
|
if @args_nupkg_file && !@args_nupkg_file.empty?
|
|
67
73
|
@args_nupkg_file = @args_nupkg_file.strip.gsub(/\"/, '')
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require 'fileutils'
|
|
2
2
|
require 'pindo/module/cert/cert_helper'
|
|
3
|
+
require 'pindo/options/options'
|
|
3
4
|
|
|
4
5
|
module Pindo
|
|
5
6
|
class Command
|
|
@@ -50,24 +51,25 @@ module Pindo
|
|
|
50
51
|
|
|
51
52
|
]
|
|
52
53
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
['--fixedid', '重新更新bundle id的功能,检查bundle id的功能是否更新'],
|
|
59
|
-
['--renew', '重新生成证书']
|
|
60
|
-
].concat(super)
|
|
54
|
+
def self.option_items
|
|
55
|
+
@option_items ||= Pindo::Options::OptionGroup.merge(
|
|
56
|
+
Pindo::Options::UtilsOptions.select(:fast, :fixedid),
|
|
57
|
+
Pindo::Options::CertOptions.select(:upload, :renew)
|
|
58
|
+
)
|
|
61
59
|
end
|
|
62
60
|
|
|
61
|
+
def self.options
|
|
62
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
63
|
+
end
|
|
63
64
|
|
|
64
65
|
def initialize(argv)
|
|
66
|
+
@options = initialize_options(argv)
|
|
65
67
|
|
|
66
|
-
@fast_flag =
|
|
67
|
-
@fixedid_flag =
|
|
68
|
-
@upload_flag =
|
|
69
|
-
@renew_cert_flag =
|
|
70
|
-
super
|
|
68
|
+
@fast_flag = @options[:fast] || false
|
|
69
|
+
@fixedid_flag = @options[:fixedid] || false
|
|
70
|
+
@upload_flag = @options[:upload] || false
|
|
71
|
+
@renew_cert_flag = @options[:renew] || false
|
|
72
|
+
super
|
|
71
73
|
|
|
72
74
|
end
|
|
73
75
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require 'highline/import'
|
|
2
2
|
require 'fileutils'
|
|
3
|
+
require 'pindo/options/options'
|
|
3
4
|
|
|
4
5
|
module Pindo
|
|
5
6
|
class Command
|
|
@@ -27,19 +28,24 @@ module Pindo
|
|
|
27
28
|
# 命令的参数列表
|
|
28
29
|
self.arguments = []
|
|
29
30
|
|
|
31
|
+
def self.option_items
|
|
32
|
+
@option_items ||= Pindo::Options::UtilsOptions.select(:mode, :retag)
|
|
33
|
+
end
|
|
34
|
+
|
|
30
35
|
def self.options
|
|
31
|
-
|
|
32
|
-
].concat(super)
|
|
36
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
33
37
|
end
|
|
34
38
|
|
|
35
39
|
def initialize(argv)
|
|
36
|
-
@
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
@options = initialize_options(argv)
|
|
41
|
+
|
|
42
|
+
@mode = @options[:mode] || 'minor'
|
|
43
|
+
@force_retag = @options[:retag] || false
|
|
44
|
+
|
|
39
45
|
unless ['major', 'minor', 'patch'].include?(@mode)
|
|
40
46
|
raise Informative, "mode参数必须是 major, minor 或 patch"
|
|
41
47
|
end
|
|
42
|
-
|
|
48
|
+
|
|
43
49
|
super
|
|
44
50
|
@additional_args = argv.remainder!
|
|
45
51
|
end
|
data/lib/pindo/command/utils.rb
CHANGED
|
@@ -7,16 +7,16 @@ require 'pindo/command/utils/device'
|
|
|
7
7
|
# require 'pindo/command/utils/tgate'
|
|
8
8
|
# require 'pindo/command/utils/boss'
|
|
9
9
|
require 'pindo/command/utils/renewcert'
|
|
10
|
-
require 'pindo/command/utils/renewbundleid'
|
|
11
|
-
require 'pindo/command/utils/copyconfig'
|
|
12
|
-
require 'pindo/command/utils/allcopyconfig'
|
|
10
|
+
# require 'pindo/command/utils/renewbundleid'
|
|
11
|
+
# require 'pindo/command/utils/copyconfig'
|
|
12
|
+
# require 'pindo/command/utils/allcopyconfig'
|
|
13
13
|
require 'pindo/command/utils/repoinit'
|
|
14
|
-
require 'pindo/command/utils/tag'
|
|
14
|
+
# require 'pindo/command/utils/tag'
|
|
15
15
|
require 'pindo/command/utils/updateconfig'
|
|
16
16
|
require 'pindo/command/utils/fabric'
|
|
17
|
-
require 'pindo/command/utils/encrypt'
|
|
18
|
-
require 'pindo/command/utils/decrypt'
|
|
19
|
-
require 'pindo/command/utils/installskills'
|
|
17
|
+
# require 'pindo/command/utils/encrypt'
|
|
18
|
+
# require 'pindo/command/utils/decrypt'
|
|
19
|
+
# require 'pindo/command/utils/installskills'
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
module Pindo
|
|
@@ -92,30 +92,27 @@ module Pindo
|
|
|
92
92
|
# 定义此命令使用的参数项
|
|
93
93
|
def self.option_items
|
|
94
94
|
@option_items ||= Pindo::Options::OptionGroup.merge(
|
|
95
|
-
Pindo::Options::BuildOptions.select(:bundleid),
|
|
95
|
+
Pindo::Options::BuildOptions.select(:bundleid),
|
|
96
96
|
Pindo::Options::JPSOptions.select(:conf, :upload, :send, :media, :bind),
|
|
97
97
|
Pindo::Options::UnityOptions.select(:skiplib, :skipyoo),
|
|
98
|
-
Pindo::Options::UnityOptions.select_with_defaults(
|
|
98
|
+
Pindo::Options::UnityOptions.select_with_defaults(skipmacro: true),
|
|
99
99
|
Pindo::Options::TaskOptions.select(:multi),
|
|
100
|
+
Pindo::Options::UtilsOptions.select(:run),
|
|
100
101
|
Pindo::Options::GitOptions.all
|
|
101
102
|
)
|
|
102
103
|
end
|
|
103
104
|
|
|
104
105
|
# 命令的选项列表
|
|
105
106
|
def self.options
|
|
106
|
-
|
|
107
|
-
['--run', '编译完成后再本地打开webgl包']
|
|
108
|
-
].concat(option_items.map(&:to_claide_option)).concat(super)
|
|
107
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
109
108
|
end
|
|
110
109
|
|
|
111
110
|
def initialize(argv)
|
|
112
111
|
@options = initialize_options(argv)
|
|
113
112
|
|
|
114
|
-
@args_deploy_flag = argv.flag?('deploy', false)
|
|
115
|
-
@args_adhoc_flag = argv.flag?('adhoc', false)
|
|
116
113
|
@args_conf = @options[:conf]
|
|
117
|
-
@args_bundle_id = @options[:bundleid]
|
|
118
|
-
@args_run_flag =
|
|
114
|
+
@args_bundle_id = @options[:bundleid]
|
|
115
|
+
@args_run_flag = @options[:run] || false
|
|
119
116
|
|
|
120
117
|
# send、media 或 bind 都依赖 upload:如果指定了任一参数,自动启用 upload
|
|
121
118
|
@args_upload_flag = @options[:send] || @options[:bind] || @options[:media] || @options[:upload]
|
|
@@ -34,19 +34,20 @@ module Pindo
|
|
|
34
34
|
# 暂无参数
|
|
35
35
|
]
|
|
36
36
|
|
|
37
|
+
def self.option_items
|
|
38
|
+
@option_items ||= Pindo::Options::UtilsOptions.select(:port, :debug)
|
|
39
|
+
end
|
|
40
|
+
|
|
37
41
|
# 命令的选项列表
|
|
38
42
|
def self.options
|
|
39
|
-
|
|
40
|
-
# 添加HTTP服务器端口选项
|
|
41
|
-
['--port', '指定HTTP服务器的端口,默认为8000'],
|
|
42
|
-
# 添加调试选项
|
|
43
|
-
['--debug', '显示详细的调试信息']
|
|
44
|
-
].concat(super)
|
|
43
|
+
option_items.map(&:to_claide_option).concat(super)
|
|
45
44
|
end
|
|
46
45
|
|
|
47
46
|
def initialize(argv)
|
|
48
|
-
@
|
|
49
|
-
|
|
47
|
+
@options = initialize_options(argv)
|
|
48
|
+
|
|
49
|
+
@args_port = (@options[:port] || '8000').to_i
|
|
50
|
+
@args_debug = @options[:debug] || false
|
|
50
51
|
|
|
51
52
|
super
|
|
52
53
|
@additional_args = argv.remainder!
|
|
@@ -314,10 +314,10 @@ module Pindo
|
|
|
314
314
|
end
|
|
315
315
|
|
|
316
316
|
bundle_task = "#{prefix}#{task_name}"
|
|
317
|
-
skip_clean =
|
|
318
|
-
# 任意 bundle 变体(含 debug)均先 clean,避免 aabresguard
|
|
319
|
-
puts ' AAB 构建前先执行 Gradle clean
|
|
320
|
-
puts ' 已跳过 Gradle clean
|
|
317
|
+
skip_clean = Pindo::Options::GlobalOptionsState.instance[:skipclean]
|
|
318
|
+
# 任意 bundle 变体(含 debug)均先 clean,避免 aabresguard 等任务因残留输出报「文件已存在」;可通过 --skipclean 或 PINDO_SKIP_GRADLE_CLEAN=1 跳过
|
|
319
|
+
puts ' AAB 构建前先执行 Gradle clean(--skipclean 可跳过)' unless skip_clean
|
|
320
|
+
puts ' 已跳过 Gradle clean(--skipclean)' if skip_clean
|
|
321
321
|
|
|
322
322
|
gradle_clean_resilient!(project_path) unless skip_clean
|
|
323
323
|
|
|
@@ -440,8 +440,8 @@ module Pindo
|
|
|
440
440
|
def validate_unity_libs_state!(android_root, stage:)
|
|
441
441
|
# 某些项目会将 unityLibrary 作为缓存/中间产物纳入仓库,但 libs 下的 .aar -> .srcaar
|
|
442
442
|
# 符号链接目标是由 EDM4U/导出过程生成,初次拉取代码时可能为断链。
|
|
443
|
-
#
|
|
444
|
-
return if
|
|
443
|
+
# 默认仍严格失败;可通过 --skipvalidate 或 PINDO_SKIP_UNITY_LIBS_VALIDATE=1 跳过
|
|
444
|
+
return if Pindo::Options::GlobalOptionsState.instance[:skipvalidate]
|
|
445
445
|
|
|
446
446
|
libs_dir = File.join(android_root, "unityLibrary", "libs")
|
|
447
447
|
return unless File.directory?(libs_dir)
|
|
@@ -172,7 +172,7 @@ module Pindo
|
|
|
172
172
|
|
|
173
173
|
abs_keystore = File.expand_path(File.join(project_dir, rel_plain))
|
|
174
174
|
|
|
175
|
-
inject_gradle =
|
|
175
|
+
inject_gradle = Pindo::Options::GlobalOptionsState.instance[:injectsigning]
|
|
176
176
|
if inject_gradle
|
|
177
177
|
if gradle_file.end_with?(".kts")
|
|
178
178
|
ensure_keystore_config_kts(gradle_file, project_dir, build_type, sign_config, bundle_id: bundle_id)
|
|
@@ -199,7 +199,7 @@ module Pindo
|
|
|
199
199
|
|
|
200
200
|
def install_and_config_certs(build_type:, platform_type: 'ios', project_dir: Dir.pwd)
|
|
201
201
|
# 标准化构建类型
|
|
202
|
-
cert_type = Pindo::Options::
|
|
202
|
+
cert_type = Pindo::Options::BuildOptions.normalize_build_type(build_type)
|
|
203
203
|
|
|
204
204
|
# 使用 IosConfigParser 单例
|
|
205
205
|
require 'pindo/config/ios_config_parser'
|
|
@@ -114,7 +114,7 @@ module Pindo
|
|
|
114
114
|
# @param overrides [Hash] 要覆盖的属性
|
|
115
115
|
# @return [OptionItem] 新的 OptionItem 实例
|
|
116
116
|
# @example
|
|
117
|
-
# UnityOptions.select(:
|
|
117
|
+
# UnityOptions.select(:skipmacro).first.with(default_value: true)
|
|
118
118
|
def with(**overrides)
|
|
119
119
|
OptionItem.new(
|
|
120
120
|
key: overrides[:key] || @key,
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
require 'pindo/options/core/option_item'
|
|
2
|
+
require 'pindo/options/groups/option_group'
|
|
3
|
+
|
|
4
|
+
module Pindo
|
|
5
|
+
module Options
|
|
6
|
+
# App Store / Google Play 商店操作参数组
|
|
7
|
+
# 定义 ITC 信息管理、内购、截图、元数据等商店相关参数
|
|
8
|
+
module AppStoreOptions
|
|
9
|
+
extend OptionGroup
|
|
10
|
+
|
|
11
|
+
def self.all_options
|
|
12
|
+
@all_options ||= {
|
|
13
|
+
metadata: OptionItem.new(
|
|
14
|
+
key: :metadata,
|
|
15
|
+
name: '元数据',
|
|
16
|
+
description: '上传或下载应用元数据',
|
|
17
|
+
type: OptionItem::Boolean,
|
|
18
|
+
env_name: 'PINDO_APPSTORE_METADATA',
|
|
19
|
+
default_value: false,
|
|
20
|
+
optional: true,
|
|
21
|
+
example: 'pindo appstore itcinfo --metadata'
|
|
22
|
+
),
|
|
23
|
+
|
|
24
|
+
screenshots: OptionItem.new(
|
|
25
|
+
key: :screenshots,
|
|
26
|
+
name: '截图',
|
|
27
|
+
description: '上传或下载应用截图',
|
|
28
|
+
type: OptionItem::Boolean,
|
|
29
|
+
env_name: 'PINDO_APPSTORE_SCREENSHOTS',
|
|
30
|
+
default_value: false,
|
|
31
|
+
optional: true,
|
|
32
|
+
example: 'pindo appstore itcinfo --screenshots'
|
|
33
|
+
),
|
|
34
|
+
|
|
35
|
+
overwrite: OptionItem.new(
|
|
36
|
+
key: :overwrite,
|
|
37
|
+
name: '覆盖',
|
|
38
|
+
description: '覆盖已有的数据或文件',
|
|
39
|
+
type: OptionItem::Boolean,
|
|
40
|
+
env_name: 'PINDO_APPSTORE_OVERWRITE',
|
|
41
|
+
default_value: false,
|
|
42
|
+
optional: true,
|
|
43
|
+
example: 'pindo appstore itcinfo --overwrite'
|
|
44
|
+
),
|
|
45
|
+
|
|
46
|
+
sync: OptionItem.new(
|
|
47
|
+
key: :sync,
|
|
48
|
+
name: '同步模式',
|
|
49
|
+
description: '同步截图到 iTunes Connect',
|
|
50
|
+
type: OptionItem::Boolean,
|
|
51
|
+
env_name: 'PINDO_APPSTORE_SYNC',
|
|
52
|
+
default_value: false,
|
|
53
|
+
optional: true,
|
|
54
|
+
example: 'pindo appstore itcinfo --sync'
|
|
55
|
+
),
|
|
56
|
+
|
|
57
|
+
ipa: OptionItem.new(
|
|
58
|
+
key: :ipa,
|
|
59
|
+
name: '上传 IPA',
|
|
60
|
+
description: '上传 IPA 到 iTunes Connect',
|
|
61
|
+
type: OptionItem::Boolean,
|
|
62
|
+
env_name: 'PINDO_APPSTORE_IPA',
|
|
63
|
+
default_value: false,
|
|
64
|
+
optional: true,
|
|
65
|
+
example: 'pindo appstore itcinfo --ipa'
|
|
66
|
+
),
|
|
67
|
+
|
|
68
|
+
check: OptionItem.new(
|
|
69
|
+
key: :check,
|
|
70
|
+
name: '检查',
|
|
71
|
+
description: '检查内购配置信息',
|
|
72
|
+
type: OptionItem::Boolean,
|
|
73
|
+
env_name: 'PINDO_APPSTORE_CHECK',
|
|
74
|
+
default_value: false,
|
|
75
|
+
optional: true,
|
|
76
|
+
example: 'pindo appstore iap --check'
|
|
77
|
+
),
|
|
78
|
+
|
|
79
|
+
boss: OptionItem.new(
|
|
80
|
+
key: :boss,
|
|
81
|
+
name: 'Boss 模式',
|
|
82
|
+
description: '生成 Boss 平台的内购信息',
|
|
83
|
+
type: OptionItem::Boolean,
|
|
84
|
+
env_name: 'PINDO_APPSTORE_BOSS',
|
|
85
|
+
default_value: false,
|
|
86
|
+
optional: true,
|
|
87
|
+
example: 'pindo appstore iap --boss'
|
|
88
|
+
),
|
|
89
|
+
|
|
90
|
+
download: OptionItem.new(
|
|
91
|
+
key: :download,
|
|
92
|
+
name: '下载',
|
|
93
|
+
description: '从 App Store 下载应用的内购信息',
|
|
94
|
+
type: OptionItem::Boolean,
|
|
95
|
+
env_name: 'PINDO_APPSTORE_DOWNLOAD',
|
|
96
|
+
default_value: false,
|
|
97
|
+
optional: true,
|
|
98
|
+
example: 'pindo appstore iap --download'
|
|
99
|
+
),
|
|
100
|
+
|
|
101
|
+
delete: OptionItem.new(
|
|
102
|
+
key: :delete,
|
|
103
|
+
name: '删除 Tag',
|
|
104
|
+
description: '删除指定的 Git Tag(同时删除代码仓库和配置仓库)',
|
|
105
|
+
type: String,
|
|
106
|
+
env_name: 'PINDO_DELETE_TAG',
|
|
107
|
+
optional: true,
|
|
108
|
+
example: 'pindo appstore tag --delete=tag_name'
|
|
109
|
+
)
|
|
110
|
+
}
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|