pindo 5.13.5 → 5.13.7
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/appstore/adhocbuild.rb +61 -30
- data/lib/pindo/command/appstore/autobuild.rb +18 -5
- data/lib/pindo/command/appstore/autoresign.rb +294 -163
- data/lib/pindo/command/ios/fixproj.rb +92 -0
- data/lib/pindo/command/ios.rb +1 -0
- data/lib/pindo/command/jps/upload.rb +1 -1
- data/lib/pindo/module/pgyer/pgyerhelper.rb +163 -1
- data/lib/pindo/module/task/model/ipa_local_resign_task.rb +189 -0
- data/lib/pindo/module/task/model/jps_upload_task.rb +65 -21
- data/lib/pindo/module/xcode/ipa_resign_helper.rb +1 -1
- data/lib/pindo/module/xcode/xcode_build_helper.rb +3 -3
- data/lib/pindo/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fbf53e39f861e030ec56923a9d913e95a6fabe16f25294ef2062c56d140347f1
|
|
4
|
+
data.tar.gz: 12005518e7084709a61b87f7be6345181224cd6f1e6f6766200be52982c4f319
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6ecb9148510a631ede407c1fb78a87eb6cd7c65c64f4ca5b0209da3a6f54f2ad7af067e6b5a7895cee1882fc3208446e635beecb2500fa8dbc1fd47533c91473
|
|
7
|
+
data.tar.gz: 852957fbaf4834176bf868e78ce613e9f9d147019de3b2fc6cbf24f1bd0a7c31f95bfb776cbcf7d7d730c4b679154ab68c75c83a3759a4ecf39d9f2d0cf766e3
|
|
@@ -48,9 +48,15 @@ module Pindo
|
|
|
48
48
|
|
|
49
49
|
* 支持自动增加版本号
|
|
50
50
|
|
|
51
|
+
* 支持位置参数(向后兼容)和选项参数两种格式
|
|
52
|
+
|
|
51
53
|
使用示例:
|
|
52
54
|
|
|
53
|
-
$ pindo appstore adhocbuild #
|
|
55
|
+
$ pindo appstore adhocbuild # 使用当前目录的 config.json
|
|
56
|
+
|
|
57
|
+
$ pindo appstore adhocbuild com.example.app # 位置参数指定 Bundle ID(向后兼容)
|
|
58
|
+
|
|
59
|
+
$ pindo appstore adhocbuild --bundleid=com.example.app # 选项参数指定 Bundle ID
|
|
54
60
|
|
|
55
61
|
$ pindo appstore adhocbuild --upload # 编译并上传到JPS
|
|
56
62
|
|
|
@@ -59,13 +65,11 @@ module Pindo
|
|
|
59
65
|
$ pindo appstore adhocbuild --increase # 自动增加版本号
|
|
60
66
|
|
|
61
67
|
$ pindo appstore adhocbuild --proj="My App" # 指定项目名称
|
|
62
|
-
|
|
63
|
-
$ pindo appstore adhocbuild --bundleid=com.example.app # 指定 Bundle ID
|
|
64
68
|
DESC
|
|
65
69
|
|
|
66
|
-
#
|
|
70
|
+
# 定义位置参数(向后兼容)
|
|
67
71
|
self.arguments = [
|
|
68
|
-
|
|
72
|
+
CLAide::Argument.new('bundleid', true)
|
|
69
73
|
]
|
|
70
74
|
|
|
71
75
|
# 定义此命令使用的参数项(类方法,避免重复定义)
|
|
@@ -96,11 +100,15 @@ module Pindo
|
|
|
96
100
|
end
|
|
97
101
|
|
|
98
102
|
def initialize(argv)
|
|
103
|
+
# 首先获取位置参数(向后兼容)
|
|
104
|
+
positional_bundleid = argv.shift_argument
|
|
105
|
+
|
|
99
106
|
# 一行代码完成参数初始化(自动推导命令名、自动启用缓存)
|
|
100
107
|
@options = initialize_options(argv)
|
|
101
108
|
|
|
102
109
|
# 保存参数到实例变量
|
|
103
|
-
|
|
110
|
+
# 优先使用选项参数,如果没有则使用位置参数
|
|
111
|
+
@args_bundle_id = @options[:bundleid] || positional_bundleid
|
|
104
112
|
@args_send_flag = @options[:send]
|
|
105
113
|
# send 依赖 upload:如果指定了 send,自动启用 upload
|
|
106
114
|
@args_upload_flag = @options[:send] || @options[:upload]
|
|
@@ -182,7 +190,9 @@ module Pindo
|
|
|
182
190
|
puts "\n使用当前目录配置文件: #{config_file}"
|
|
183
191
|
Pindo::IosConfigParser.instance.load_config(config_file: config_file)
|
|
184
192
|
else
|
|
185
|
-
raise Informative, "当前目录未找到 config.json
|
|
193
|
+
raise Informative, "当前目录未找到 config.json 文件,请使用以下方式指定 Bundle ID:\n" \
|
|
194
|
+
" 方式1: pindo appstore adhocbuild com.example.app\n" \
|
|
195
|
+
" 方式2: pindo appstore adhocbuild --bundleid=com.example.app"
|
|
186
196
|
end
|
|
187
197
|
end
|
|
188
198
|
end
|
|
@@ -236,9 +246,7 @@ module Pindo
|
|
|
236
246
|
project_path: ios_project_path,
|
|
237
247
|
proj_name: @args_proj_name,
|
|
238
248
|
upload: @args_upload_flag,
|
|
239
|
-
send: @args_send_flag
|
|
240
|
-
app_info_obj: config[:app_info_obj],
|
|
241
|
-
workflow_info: config[:workflow_info]
|
|
249
|
+
send: @args_send_flag
|
|
242
250
|
}
|
|
243
251
|
build_options[:bundle_id] = @args_bundle_id if @args_bundle_id
|
|
244
252
|
build_options[:unity_root_path] = config[:project_path] if is_unity
|
|
@@ -251,20 +259,23 @@ module Pindo
|
|
|
251
259
|
build_task.dependencies << tasks.last.id if tasks.any?
|
|
252
260
|
tasks << build_task
|
|
253
261
|
|
|
254
|
-
# 3.
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
262
|
+
# 3. 上传任务(仅在需要时添加)
|
|
263
|
+
if @args_upload_flag
|
|
264
|
+
upload_task = Pindo::TaskSystem::JPSUploadTask.new(
|
|
265
|
+
'ipa',
|
|
266
|
+
File.join(ios_project_path, 'build'),
|
|
267
|
+
nil,
|
|
268
|
+
app_info_obj: config[:app_info_obj],
|
|
269
|
+
workflow_info: config[:workflow_info],
|
|
270
|
+
project_name: @args_proj_name,
|
|
271
|
+
upload_desc: "AdHoc 包",
|
|
272
|
+
context: {
|
|
273
|
+
send_to_chat: @args_send_flag
|
|
274
|
+
},
|
|
275
|
+
dependencies: [build_task.id]
|
|
276
|
+
)
|
|
277
|
+
tasks << upload_task
|
|
278
|
+
end
|
|
268
279
|
|
|
269
280
|
tasks
|
|
270
281
|
else
|
|
@@ -274,12 +285,32 @@ module Pindo
|
|
|
274
285
|
|
|
275
286
|
# 准备 iOS 配置
|
|
276
287
|
def prepare_ios_config(pindo_project_dir)
|
|
277
|
-
#
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
288
|
+
# 从 IosConfigParser 获取项目名称
|
|
289
|
+
proj_name = nil
|
|
290
|
+
begin
|
|
291
|
+
require 'pindo/config/ios_config_parser'
|
|
292
|
+
config_parser = Pindo::IosConfigParser.instance
|
|
293
|
+
if config_parser.config_json
|
|
294
|
+
proj_name = config_parser.config_json.dig("project_info", "project_name")
|
|
295
|
+
end
|
|
296
|
+
rescue => e
|
|
297
|
+
# 忽略错误,proj_name 保持为 nil
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
# 如果有命令行参数的 proj_name,优先使用
|
|
301
|
+
proj_name = @args_proj_name if @args_proj_name && !@args_proj_name.empty?
|
|
302
|
+
|
|
303
|
+
# 只在需要上传时获取 JPS 配置
|
|
304
|
+
if @args_upload_flag
|
|
305
|
+
app_info_obj, workflow_info = PgyerHelper.share_instace.get_adhoc_upload_info(
|
|
306
|
+
working_directory: pindo_project_dir,
|
|
307
|
+
package_type: 'ipa',
|
|
308
|
+
proj_name: proj_name
|
|
309
|
+
)
|
|
310
|
+
else
|
|
311
|
+
app_info_obj = nil
|
|
312
|
+
workflow_info = nil
|
|
313
|
+
end
|
|
283
314
|
|
|
284
315
|
{
|
|
285
316
|
project_path: pindo_project_dir,
|
|
@@ -40,14 +40,21 @@ module Pindo
|
|
|
40
40
|
|
|
41
41
|
* 处理 Applovin(如果使用)
|
|
42
42
|
|
|
43
|
+
* 支持位置参数(向后兼容)和选项参数两种格式
|
|
44
|
+
|
|
43
45
|
使用示例:
|
|
44
46
|
|
|
45
|
-
$ pindo appstore autobuild #
|
|
47
|
+
$ pindo appstore autobuild # 使用当前目录的 config.json
|
|
48
|
+
|
|
49
|
+
$ pindo appstore autobuild com.example.app # 位置参数指定 Bundle ID(向后兼容)
|
|
46
50
|
|
|
47
|
-
$ pindo appstore autobuild --bundleid=com.example.app #
|
|
51
|
+
$ pindo appstore autobuild --bundleid=com.example.app # 选项参数指定 Bundle ID
|
|
48
52
|
DESC
|
|
49
53
|
|
|
50
|
-
|
|
54
|
+
# 定义位置参数(向后兼容)
|
|
55
|
+
self.arguments = [
|
|
56
|
+
CLAide::Argument.new('bundleid', true)
|
|
57
|
+
]
|
|
51
58
|
|
|
52
59
|
# 定义此命令使用的参数项
|
|
53
60
|
def self.option_items
|
|
@@ -61,11 +68,15 @@ module Pindo
|
|
|
61
68
|
end
|
|
62
69
|
|
|
63
70
|
def initialize(argv)
|
|
71
|
+
# 首先获取位置参数(向后兼容)
|
|
72
|
+
positional_bundleid = argv.shift_argument
|
|
73
|
+
|
|
64
74
|
# 使用 Options 模块初始化参数
|
|
65
75
|
@options = initialize_options(argv)
|
|
66
76
|
|
|
67
77
|
# 保存参数到实例变量
|
|
68
|
-
|
|
78
|
+
# 优先使用选项参数,如果没有则使用位置参数
|
|
79
|
+
@args_bundle_id = @options[:bundleid] || positional_bundleid
|
|
69
80
|
|
|
70
81
|
super(argv)
|
|
71
82
|
end
|
|
@@ -133,7 +144,9 @@ module Pindo
|
|
|
133
144
|
puts "\n使用当前目录配置文件: #{config_file}"
|
|
134
145
|
Pindo::IosConfigParser.instance.load_config(config_file: config_file)
|
|
135
146
|
else
|
|
136
|
-
raise Informative, "当前目录未找到 config.json
|
|
147
|
+
raise Informative, "当前目录未找到 config.json 文件,请使用以下方式指定 Bundle ID:\n" \
|
|
148
|
+
" 方式1: pindo appstore autobuild com.example.app\n" \
|
|
149
|
+
" 方式2: pindo appstore autobuild --bundleid=com.example.app"
|
|
137
150
|
end
|
|
138
151
|
end
|
|
139
152
|
end
|