pindo 5.4.0 → 5.5.0

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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/pindocontext.rb +42 -31
  3. data/lib/pindo/client/aws3sclient.rb +2 -2
  4. data/lib/pindo/client/httpclient.rb +1 -2
  5. data/lib/pindo/command/android/autobuild.rb +40 -18
  6. data/lib/pindo/command/android/build.rb +37 -16
  7. data/lib/pindo/command/android/debug.rb +34 -20
  8. data/lib/pindo/command/appstore/iap.rb +15 -1
  9. data/lib/pindo/command/appstore/itcapp.rb +15 -1
  10. data/lib/pindo/command/appstore/metadata.rb +15 -1
  11. data/lib/pindo/command/appstore/screenshots.rb +15 -1
  12. data/lib/pindo/command/appstore/upload.rb +15 -1
  13. data/lib/pindo/command/deploy/build.rb +35 -20
  14. data/lib/pindo/command/deploy/bundleid.rb +15 -1
  15. data/lib/pindo/command/deploy/cert.rb +19 -2
  16. data/lib/pindo/command/deploy/check.rb +15 -1
  17. data/lib/pindo/command/deploy/configproj.rb +15 -1
  18. data/lib/pindo/command/deploy/confusecode.rb +15 -1
  19. data/lib/pindo/command/deploy/confuseproj.rb +11 -1
  20. data/lib/pindo/command/deploy/fabric.rb +10 -1
  21. data/lib/pindo/command/deploy/getitcinfo.rb +11 -1
  22. data/lib/pindo/command/deploy/iap.rb +12 -1
  23. data/lib/pindo/command/deploy/initconfig.rb +11 -1
  24. data/lib/pindo/command/deploy/itcinfo.rb +12 -1
  25. data/lib/pindo/command/deploy/pullconfig.rb +11 -1
  26. data/lib/pindo/command/deploy/pushconfig.rb +11 -1
  27. data/lib/pindo/command/deploy/quswark.rb +12 -1
  28. data/lib/pindo/command/deploy/quswauth.rb +10 -1
  29. data/lib/pindo/command/deploy/reportbug.rb +11 -1
  30. data/lib/pindo/command/deploy/resign.rb +12 -1
  31. data/lib/pindo/command/deploy/updateconfig.rb +11 -1
  32. data/lib/pindo/command/deploy/uploadipa.rb +11 -1
  33. data/lib/pindo/command/env/dreamstudio.rb +13 -1
  34. data/lib/pindo/command/env/quarkenv.rb +13 -1
  35. data/lib/pindo/command/env/swarkenv.rb +13 -1
  36. data/lib/pindo/command/env/workhard.rb +13 -1
  37. data/lib/pindo/command/gplay/iap.rb +21 -5
  38. data/lib/pindo/command/gplay/itcapp.rb +19 -5
  39. data/lib/pindo/command/gplay/metadata.rb +23 -5
  40. data/lib/pindo/command/gplay/screenshots.rb +23 -5
  41. data/lib/pindo/command/gplay/upload.rb +21 -5
  42. data/lib/pindo/command/gplay.rb +8 -8
  43. data/lib/pindo/command/ios/adhoc.rb +18 -3
  44. data/lib/pindo/command/ios/autobuild.rb +22 -7
  45. data/lib/pindo/command/ios/autoresign.rb +18 -3
  46. data/lib/pindo/command/ios/build.rb +18 -4
  47. data/lib/pindo/command/ipa/autoresign.rb +35 -4
  48. data/lib/pindo/command/ipa/import.rb +19 -1
  49. data/lib/pindo/command/ipa/output.rb +39 -4
  50. data/lib/pindo/command/{pgyer → jps}/apptest.rb +35 -24
  51. data/lib/pindo/command/jps/bind.rb +191 -0
  52. data/lib/pindo/command/{pgyer → jps}/comment.rb +19 -19
  53. data/lib/pindo/command/{pgyer → jps}/download.rb +20 -20
  54. data/lib/pindo/command/{pgyer → jps}/login.rb +9 -9
  55. data/lib/pindo/command/{pgyer → jps}/resign.rb +40 -25
  56. data/lib/pindo/command/{pgyer → jps}/upload.rb +60 -43
  57. data/lib/pindo/command/jps.rb +18 -0
  58. data/lib/pindo/command/lib/forcepush.rb +15 -1
  59. data/lib/pindo/command/lib/push.rb +15 -1
  60. data/lib/pindo/command/lib/update.rb +15 -1
  61. data/lib/pindo/command/repo/clone.rb +11 -1
  62. data/lib/pindo/command/repo/create.rb +13 -1
  63. data/lib/pindo/command/repo/login.rb +14 -3
  64. data/lib/pindo/command/repo/search.rb +14 -2
  65. data/lib/pindo/command/unity/apk.rb +14 -28
  66. data/lib/pindo/command/unity/autobuild.rb +13 -13
  67. data/lib/pindo/command/unity/ipa.rb +15 -29
  68. data/lib/pindo/command/unity/web.rb +15 -15
  69. data/lib/pindo/command/utils/boss.rb +19 -2
  70. data/lib/pindo/command/utils/clearcert.rb +18 -2
  71. data/lib/pindo/command/utils/device.rb +19 -2
  72. data/lib/pindo/command/utils/icon.rb +20 -2
  73. data/lib/pindo/command/utils/renewcert.rb +28 -3
  74. data/lib/pindo/command/utils/renewproj.rb +25 -2
  75. data/lib/pindo/command/utils/tgate.rb +28 -3
  76. data/lib/pindo/command/utils/xcassets.rb +20 -2
  77. data/lib/pindo/command/web/autobuild.rb +18 -3
  78. data/lib/pindo/command.rb +8 -2
  79. data/lib/pindo/module/pgyer/pgyerhelper.rb +185 -85
  80. data/lib/pindo/version.rb +1 -1
  81. metadata +30 -12
  82. data/lib/pindo/client/pgyer_feishu_oauth_cli.rb +0 -669
  83. data/lib/pindo/client/pgyerclient.rb +0 -466
  84. data/lib/pindo/client/pgyeruploadclient.rb +0 -517
  85. data/lib/pindo/command/pgyer.rb +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56fcfdba92a710c2c7ab85226d30f305cbb1fca5d3fccb57d5c62e6593c8afbb
4
- data.tar.gz: a2d7a5c80ca642869ce4f79ef9dca35383b7426c5cf15077937137db899b4eab
3
+ metadata.gz: 9d82f581545a6d50b91407f6108f8e15685e8936b4895c3a8fec46976fed550b
4
+ data.tar.gz: 70c45cb83b96f356cd2fd19b0de9f7802642785ef80ee93cc41bd4e6bd6bddb5
5
5
  SHA512:
6
- metadata.gz: 54cef915058ddb2d765e136181c13b1e1e6e1376316e8b443a19e54bf03da4afb7763564348c7fe04099cb87476e3547664016dd479936423243360036a9fbe4
7
- data.tar.gz: 86a5729f1929db20b938254ae541c1310fce8dba85d7d0088966f197aad668723c11270775bbdcd8651ca86609d357e69fac7dfd8e6d1459133d58fe9357bccd
6
+ metadata.gz: '089690f061917d3c9ebc07e19643c166c407900359e958474fa698bda6c02ea70d05b615efd4165f9f883d712a4c488870322a4aefb9607da1d46f4990e350c6'
7
+ data.tar.gz: bcadc0aa51c54a38d2297befe0e358e384a7789603b4a072c350ff4e3968cad1ea7db16b6b2c54c4665bc7adc95d2f36fa548dcf5af0cb1e2ce9e020f90ff614
@@ -16,14 +16,20 @@ module Pindo
16
16
  @file_cache_loaded = false # 标记文件缓存是否已加载
17
17
  @cache_enabled = false # 默认禁用缓存
18
18
  @command_group = nil # 命令组名称
19
+ @verbose = false # 是否输出详细日志
19
20
  ensure_cache_dir
20
21
  end
21
22
 
23
+ # 判断是否处于 verbose 模式
24
+ def verbose?
25
+ @verbose || ENV['PINDO_VERBOSE'] == '1' || ENV['PINDO_DEBUG'] == '1'
26
+ end
27
+
22
28
  # 设置当前上下文
23
29
  def set_context(command, directory = nil, options = {})
24
30
  # 如果已有命令在执行,这是嵌套调用,不需要做任何事
25
31
  unless @current_command.nil?
26
- puts "[PindoContext] 嵌套调用 #{command},使用已有上下文 (根命令: #{@current_command},命令组: #{@command_group})"
32
+ puts "[PindoContext] 嵌套调用 #{command},使用已有上下文 (根命令: #{@current_command},命令组: #{@command_group})" if verbose?
27
33
  return
28
34
  end
29
35
 
@@ -33,29 +39,34 @@ module Pindo
33
39
 
34
40
  # 从选项中获取缓存配置
35
41
  @cache_enabled = options[:cache_enabled] || false
42
+ @verbose = options[:verbose] || false
36
43
  # 使用 get_command_group 来确定缓存组
37
44
  @command_group = get_command_group(command)
38
45
 
39
- puts "\n[PindoContext] ========== 设置顶层命令上下文 =========="
40
- puts "[PindoContext] 命令: #{command}"
41
- puts "[PindoContext] 目录: #{@current_directory}"
42
- puts "[PindoContext] 缓存启用: #{@cache_enabled}"
43
- puts "[PindoContext] 命令组: #{@command_group}"
44
- puts "[PindoContext] options: #{options.inspect}"
46
+ if verbose?
47
+ puts "\n[PindoContext] ========== 设置顶层命令上下文 =========="
48
+ puts "[PindoContext] 命令: #{command}"
49
+ puts "[PindoContext] 目录: #{@current_directory}"
50
+ puts "[PindoContext] 缓存启用: #{@cache_enabled}"
51
+ puts "[PindoContext] 命令组: #{@command_group}"
52
+ puts "[PindoContext] options: #{options.inspect}"
53
+ end
45
54
 
46
55
  # 仅在启用缓存时加载文件缓存
47
56
  if @cache_enabled && !@file_cache_loaded
48
- puts "[PindoContext] 准备加载文件缓存..."
57
+ puts "[PindoContext] 准备加载文件缓存..." if verbose?
49
58
  load_file_cache_with_confirmation
50
59
  @file_cache_loaded = true
51
60
  else
52
- if !@cache_enabled
53
- puts "[PindoContext] 缓存未启用,跳过文件缓存加载"
54
- elsif @file_cache_loaded
55
- puts "[PindoContext] 文件缓存已加载,跳过重复加载"
61
+ if verbose?
62
+ if !@cache_enabled
63
+ puts "[PindoContext] 缓存未启用,跳过文件缓存加载"
64
+ elsif @file_cache_loaded
65
+ puts "[PindoContext] 文件缓存已加载,跳过重复加载"
66
+ end
56
67
  end
57
68
  end
58
- puts "[PindoContext] ======================================\n"
69
+ puts "[PindoContext] ======================================\n" if verbose?
59
70
  end
60
71
 
61
72
  # 重置上下文(顶层命令结束时调用)
@@ -91,14 +102,14 @@ module Pindo
91
102
  # 更新该命令组的最后修改时间
92
103
  @memory_selections[project_path][root_command]['__last_modified__'] = Time.now.to_i
93
104
 
94
- puts "[PindoContext] 保存到内存: [#{project_path}][#{root_command}][#{key}] = #{value.inspect}"
105
+ puts "[PindoContext] 保存到内存: [#{project_path}][#{root_command}][#{key}] = #{value.inspect}" if verbose?
95
106
 
96
107
  # 仅在启用缓存时保存到文件
97
108
  if @cache_enabled
98
109
  save_file_cache
99
- puts "[PindoContext] 已保存到文件缓存"
110
+ puts "[PindoContext] 已保存到文件缓存" if verbose?
100
111
  else
101
- puts "[PindoContext] 缓存未启用,仅保存到内存"
112
+ puts "[PindoContext] 缓存未启用,仅保存到内存" if verbose?
102
113
  end
103
114
  end
104
115
 
@@ -114,9 +125,9 @@ module Pindo
114
125
  value = @memory_selections.dig(project_path, root_command, key)
115
126
 
116
127
  if value
117
- puts "[PindoContext] 从内存获取: [#{project_path}][#{root_command}][#{key}] = #{value.inspect}"
128
+ puts "[PindoContext] 从内存获取: [#{project_path}][#{root_command}][#{key}] = #{value.inspect}" if verbose?
118
129
  else
119
- puts "[PindoContext] 内存中未找到: [#{project_path}][#{root_command}][#{key}]" if ENV['PINDO_DEBUG']
130
+ puts "[PindoContext] 内存中未找到: [#{project_path}][#{root_command}][#{key}]" if verbose?
120
131
  end
121
132
 
122
133
  value
@@ -192,7 +203,7 @@ module Pindo
192
203
  @memory_selections[proj_path].delete(cmd)
193
204
  @memory_selections.delete(proj_path) if @memory_selections[proj_path].empty?
194
205
  save_file_cache
195
- puts "[PindoContext] 清除缓存: [#{proj_path}][#{cmd}]" if ENV['PINDO_DEBUG']
206
+ puts "[PindoContext] 清除缓存: [#{proj_path}][#{cmd}]" if verbose?
196
207
  end
197
208
  end
198
209
 
@@ -222,10 +233,10 @@ module Pindo
222
233
  def load_file_cache_with_confirmation
223
234
  file_path = cache_file_path
224
235
 
225
- puts "[PindoContext] 检查文件缓存: #{file_path}"
236
+ puts "[PindoContext] 检查文件缓存: #{file_path}" if verbose?
226
237
 
227
238
  unless File.exist?(file_path)
228
- puts "[PindoContext] 文件缓存不存在,跳过加载"
239
+ puts "[PindoContext] 文件缓存不存在,跳过加载" if verbose?
229
240
  return
230
241
  end
231
242
 
@@ -240,7 +251,7 @@ module Pindo
240
251
  project_path = get_project_path
241
252
  root_command = @command_group || @current_command
242
253
 
243
- puts "[PindoContext] 查找缓存: [#{project_path}][#{root_command}]"
254
+ puts "[PindoContext] 查找缓存: [#{project_path}][#{root_command}]" if verbose?
244
255
 
245
256
  # 检查三级结构中是否有当前上下文的缓存
246
257
  cached_selections = file_cache.dig(project_path, root_command)
@@ -327,9 +338,9 @@ module Pindo
327
338
  end
328
339
  end
329
340
 
330
- puts "[PindoContext] 处理文件缓存: #{file_path}" if ENV['PINDO_DEBUG']
341
+ puts "[PindoContext] 处理文件缓存: #{file_path}" if verbose?
331
342
  rescue => e
332
- puts "[PindoContext] 加载缓存失败: #{e.message}" if ENV['PINDO_DEBUG']
343
+ puts "[PindoContext] 加载缓存失败: #{e.message}" if verbose?
333
344
  end
334
345
  end
335
346
 
@@ -355,9 +366,9 @@ module Pindo
355
366
  # 写入文件
356
367
  File.write(file_path, JSON.pretty_generate(file_cache))
357
368
 
358
- puts "[PindoContext] 保存文件缓存: #{file_path}" if ENV['PINDO_DEBUG']
369
+ puts "[PindoContext] 保存文件缓存: #{file_path}" if verbose?
359
370
  rescue => e
360
- puts "[PindoContext] 保存缓存失败: #{e.message}" if ENV['PINDO_DEBUG']
371
+ puts "[PindoContext] 保存缓存失败: #{e.message}" if verbose?
361
372
  end
362
373
  end
363
374
 
@@ -403,7 +414,7 @@ module Pindo
403
414
  # 如果没有时间戳,视为过期
404
415
  if last_modified.nil?
405
416
  expired_commands << "[#{project_path}][#{command}] (无时间戳)"
406
- puts "[PindoContext] 清理无时间戳缓存: [#{project_path}][#{command}]" if ENV['PINDO_DEBUG']
417
+ puts "[PindoContext] 清理无时间戳缓存: [#{project_path}][#{command}]" if verbose?
407
418
  next
408
419
  end
409
420
 
@@ -411,7 +422,7 @@ module Pindo
411
422
  if (current_time - last_modified.to_i) > seven_days_in_seconds
412
423
  days_old = (current_time - last_modified.to_i) / (24 * 60 * 60)
413
424
  expired_commands << "[#{project_path}][#{command}] (#{days_old}天前)"
414
- puts "[PindoContext] 清理过期缓存 (#{days_old}天前): [#{project_path}][#{command}]" if ENV['PINDO_DEBUG']
425
+ puts "[PindoContext] 清理过期缓存 (#{days_old}天前): [#{project_path}][#{command}]" if verbose?
415
426
  next
416
427
  end
417
428
 
@@ -425,7 +436,7 @@ module Pindo
425
436
  else
426
437
  # 整个项目路径下的所有命令都过期了,删除整个项目路径
427
438
  expired_projects << project_path
428
- puts "[PindoContext] 删除空项目路径: #{project_path}" if ENV['PINDO_DEBUG']
439
+ puts "[PindoContext] 删除空项目路径: #{project_path}" if verbose?
429
440
  end
430
441
  end
431
442
 
@@ -434,11 +445,11 @@ module Pindo
434
445
  puts "[PindoContext] 缓存清理完成:"
435
446
  if expired_commands.any?
436
447
  puts " - 清理了 #{expired_commands.size} 个过期命令缓存"
437
- expired_commands.each { |cmd| puts " • #{cmd}" } if ENV['PINDO_DEBUG']
448
+ expired_commands.each { |cmd| puts " • #{cmd}" } if verbose?
438
449
  end
439
450
  if expired_projects.any?
440
451
  puts " - 删除了 #{expired_projects.size} 个空项目路径"
441
- expired_projects.each { |proj| puts " • #{proj}" } if ENV['PINDO_DEBUG']
452
+ expired_projects.each { |proj| puts " • #{proj}" } if verbose?
442
453
  end
443
454
 
444
455
  # 立即保存清理后的缓存到文件
@@ -29,7 +29,7 @@ module Pindo
29
29
 
30
30
  begin
31
31
 
32
- config_file = File.join(File::expand_path(Pindoconfig.instance.pindo_common_configdir), "pgyer_client_config.json")
32
+ config_file = File.join(File::expand_path(Pindoconfig.instance.pindo_common_configdir), "jps_client_config.json")
33
33
  config_json = JSON.parse(File.read(config_file))
34
34
 
35
35
  @region = config_json["region"]
@@ -40,7 +40,7 @@ module Pindo
40
40
  @attach_url = config_json["attach_url"]
41
41
 
42
42
  rescue => error
43
- raise Informative, "加载pgyer配置文件失败, 需要执行 pindo setup 或者pindo env dreamstudio"
43
+ raise Informative, "加载jps配置文件失败, 需要执行 pindo setup 或者pindo env dreamstudio"
44
44
  end
45
45
 
46
46
 
@@ -8,10 +8,9 @@ require 'faraday/retry'
8
8
  module Pindo
9
9
 
10
10
 
11
- class HttpClient
11
+ class HttpClient
12
12
 
13
13
 
14
- attr_accessor :use_local_wechat_url
15
14
  attr_accessor :token
16
15
  attr_accessor :baseurl
17
16
  attr_accessor :request_config
@@ -21,28 +21,35 @@ module Pindo
21
21
  end
22
22
 
23
23
  self.description = <<-DESC
24
- 编译Android包并支持上传到测试平台。
24
+ 编译Android包并支持上传到测试平台。
25
25
 
26
- 支持功能:
27
- * 编译Debug/Release包
28
- * 上传到测试平台
29
- * 发送测试通知
26
+ 支持功能:
30
27
 
31
- 使用示例:
32
- $ pindo android autobuild # 编译Debug包
33
- $ pindo android autobuild --release # 编译Release包
34
- $ pindo android autobuild --upload # 编译并上传
35
- $ pindo android autobuild --send # 编译上传并发送通知
36
- $ pindo android autobuild --proj=myapp # 指定项目名称
28
+ * 编译Debug/Release包
37
29
 
30
+ * 上传到测试平台
31
+
32
+ * 发送测试通知
33
+
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 # 指定项目名称
38
45
  DESC
39
46
 
40
47
  def self.options
41
48
  [
42
49
  ['--release', '使用release模式构建'],
43
50
  ['--proj', '指定上传到测试平台的项目名称'],
44
- ['--upload', '上传编译后的apk到测试平台'],
45
- ['--send', '上传成功后发送测试通知']
51
+ ['--upload', '上传编译后的apk到测试平台(上传成功后会自动发送消息给自己)'],
52
+ ['--send', '发送消息到项目群(注意:不带此参数也会发送给自己)']
46
53
  ].concat(super)
47
54
  end
48
55
 
@@ -104,8 +111,8 @@ module Pindo
104
111
  end
105
112
 
106
113
  scheme_name = @args_proj_name if @args_proj_name
107
- if !app_info_obj.nil? && !app_info_obj["appName"].nil? && !app_info_obj["appName"].empty?
108
- scheme_name = app_info_obj["appName"]
114
+ if !app_info_obj.nil? && !app_info_obj["projectName"].nil? && !app_info_obj["projectName"].empty?
115
+ scheme_name = app_info_obj["projectName"]
109
116
  end
110
117
  if scheme_name.nil? || scheme_name.empty? && is_git_directory?(local_repo_dir:pindo_project_dir)
111
118
  current_git_root_path = git_root_directory(local_repo_dir: pindo_project_dir)
@@ -154,10 +161,25 @@ module Pindo
154
161
  description = nil
155
162
  result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
156
163
  if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
157
- msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
158
- PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
164
+ PgyerHelper.share_instace.print_app_version_info(
165
+ app_info_obj: app_info_obj,
166
+ app_version_info_obj: result_data["data"]
167
+ )
168
+ # 始终发送给自己
169
+ PgyerHelper.share_instace.send_apptest_msg(
170
+ app_info_obj: app_info_obj,
171
+ app_version_info_obj: result_data["data"],
172
+ receiveType: "self"
173
+ )
174
+
175
+ # 如果有 --send 参数,额外发送到测试群
159
176
  if @args_send_flag
160
- PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
177
+ PgyerHelper.share_instace.send_apptest_msg(
178
+ app_info_obj: app_info_obj,
179
+ app_version_info_obj: result_data["data"],
180
+ chatEnv: "DevTest",
181
+ receiveType: "chat"
182
+ )
161
183
  end
162
184
  end
163
185
  end
@@ -11,18 +11,25 @@ module Pindo
11
11
 
12
12
  self.summary = '编译Android工程并支持上传apk'
13
13
  self.description = <<-DESC
14
- 编译Android工程并生成apk文件。
15
-
16
- 支持功能:
17
- * 编译工程
18
- * 生成APK文件
19
- * 支持上传分发
20
-
21
- 使用示例:
22
- $ pindo android build # 仅编译
23
- $ pindo android build --upload # 编译并上传
24
- $ pindo android build --send # 编译并发送通知
25
- $ pindo android build --proj=myapp # 指定项目名称
14
+ 编译Android工程并生成apk文件。
15
+
16
+ 支持功能:
17
+
18
+ * 编译工程
19
+
20
+ * 生成APK文件
21
+
22
+ * 支持上传分发
23
+
24
+ 使用示例:
25
+
26
+ $ pindo android build # 仅编译
27
+
28
+ $ pindo android build --upload # 编译并上传
29
+
30
+ $ pindo android build --send # 编译并发送通知
31
+
32
+ $ pindo android build --proj=myapp # 指定项目名称
26
33
  DESC
27
34
 
28
35
  def self.options
@@ -97,11 +104,25 @@ module Pindo
97
104
  description = nil
98
105
  result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
99
106
  if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
100
- msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
101
-
102
- PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
107
+ PgyerHelper.share_instace.print_app_version_info(
108
+ app_info_obj: app_info_obj,
109
+ app_version_info_obj: result_data["data"]
110
+ )
103
111
  if @args_send_flag
104
- PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
112
+ # 始终发送给自己
113
+ PgyerHelper.share_instace.send_apptest_msg(
114
+ app_info_obj: app_info_obj,
115
+ app_version_info_obj: result_data["data"],
116
+ receiveType: "self"
117
+ )
118
+
119
+ # 额外发送到测试群
120
+ PgyerHelper.share_instace.send_apptest_msg(
121
+ app_info_obj: app_info_obj,
122
+ app_version_info_obj: result_data["data"],
123
+ chatEnv: "DevTest",
124
+ receiveType: "chat"
125
+ )
105
126
  end
106
127
  end
107
128
  end
@@ -10,32 +10,31 @@ module Pindo
10
10
 
11
11
  # 详细说明
12
12
  self.description = <<-DESC
13
- 编译Android Debug包并支持上传到测试平台。
13
+ 编译Android Debug包并支持上传到测试平台。
14
14
 
15
- 支持功能:
15
+ 支持功能:
16
16
 
17
- * 编译Debug包
17
+ * 编译Debug包
18
18
 
19
- * 上传到测试平台
19
+ * 上传到测试平台
20
20
 
21
- * 发送测试通知
21
+ * 发送测试通知
22
22
 
23
- 使用示例:
23
+ 使用示例:
24
24
 
25
- $ pindo android debug # 编译Debug包
25
+ $ pindo android debug # 编译Debug包
26
26
 
27
- $ pindo android debug --upload # 编译并上传
27
+ $ pindo android debug --upload # 编译并上传
28
28
 
29
- $ pindo android debug --send # 编译上传并发送通知
29
+ $ pindo android debug --send # 编译上传并发送通知
30
30
 
31
- $ pindo android debug --proj=myapp # 指定项目名称
31
+ $ pindo android debug --proj=myapp # 指定项目名称
32
32
 
33
- $ pindo android debug --release # 编译Release包
33
+ $ pindo android debug --release # 编译Release包
34
34
 
35
- $ pindo android debug --dsign # 测试获取签名文件
36
-
37
- $ pindo android debug --direct # 直接打包而不编译 unity 子 Lib
35
+ $ pindo android debug --dsign # 测试获取签名文件
38
36
 
37
+ $ pindo android debug --direct # 直接打包而不编译 unity 子 Lib
39
38
  DESC
40
39
 
41
40
  # 命令参数
@@ -80,8 +79,8 @@ module Pindo
80
79
 
81
80
 
82
81
  app_info_obj = nil
83
- if @args_upload_flag
84
- proj_name = @args_proj_name
82
+ if @upload_flag
83
+ proj_name = @proj_name
85
84
  app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
86
85
  end
87
86
 
@@ -93,10 +92,25 @@ module Pindo
93
92
  description = nil
94
93
  result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
95
94
  if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
96
- msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
97
- PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
98
- if @args_send_flag
99
- PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
95
+ PgyerHelper.share_instace.print_app_version_info(
96
+ app_info_obj: app_info_obj,
97
+ app_version_info_obj: result_data["data"]
98
+ )
99
+ if @send_flag
100
+ # 始终发送给自己
101
+ PgyerHelper.share_instace.send_apptest_msg(
102
+ app_info_obj: app_info_obj,
103
+ app_version_info_obj: result_data["data"],
104
+ receiveType: "self"
105
+ )
106
+
107
+ # 额外发送到测试群
108
+ PgyerHelper.share_instace.send_apptest_msg(
109
+ app_info_obj: app_info_obj,
110
+ app_version_info_obj: result_data["data"],
111
+ chatEnv: "DevTest",
112
+ receiveType: "chat"
113
+ )
100
114
  end
101
115
  end
102
116
  end
@@ -12,7 +12,21 @@ module Pindo
12
12
  self.summary = 'Appstore中iap相关操作'
13
13
 
14
14
  self.description = <<-DESC
15
- Appstore中iap相关操作,配置目录下执行:pindo appstore iap, 默认创建iap购买项
15
+ Appstore中iap相关操作。
16
+
17
+ 支持功能:
18
+
19
+ * 创建IAP购买项
20
+
21
+ * 更新IAP配置
22
+
23
+ * 管理订阅项目
24
+
25
+ 使用示例:
26
+
27
+ $ pindo appstore iap # 默认创建iap购买项
28
+
29
+ $ pindo appstore iap config.json # 使用指定配置文件
16
30
  DESC
17
31
 
18
32
  self.arguments = [
@@ -12,7 +12,21 @@ module Pindo
12
12
  self.summary = 'Appstore中创建app'
13
13
 
14
14
  self.description = <<-DESC
15
- Appstore中创建app,配置目录下执行:pindo appstore itcapp
15
+ Appstore中创建app
16
+
17
+ 支持功能:
18
+
19
+ * 在App Store Connect创建新应用
20
+
21
+ * 配置应用基本信息
22
+
23
+ * 设置应用权限
24
+
25
+ 使用示例:
26
+
27
+ $ pindo appstore itcapp # 使用默认配置创建app
28
+
29
+ $ pindo appstore itcapp config.json # 使用指定配置文件创建app
16
30
  DESC
17
31
 
18
32
  self.arguments = [
@@ -12,7 +12,21 @@ module Pindo
12
12
  self.summary = 'Appstore中metadata相关操作'
13
13
 
14
14
  self.description = <<-DESC
15
- Appstore中metadata相关操作, 用法:pindo appstre metadata
15
+ Appstore中metadata相关操作。
16
+
17
+ 支持功能:
18
+
19
+ * 更新应用描述信息
20
+
21
+ * 管理多语言内容
22
+
23
+ * 配置关键词和分类
24
+
25
+ 使用示例:
26
+
27
+ $ pindo appstore metadata # 使用默认配置更新metadata
28
+
29
+ $ pindo appstore metadata config.json # 使用指定配置文件更新metadata
16
30
  DESC
17
31
 
18
32
  self.arguments = [
@@ -12,7 +12,21 @@ module Pindo
12
12
  self.summary = 'Appstore中screenshots相关操作'
13
13
 
14
14
  self.description = <<-DESC
15
- Appstore中screenshots相关操作, 用法:pindo appstre screenshots
15
+ Appstore中screenshots相关操作。
16
+
17
+ 支持功能:
18
+
19
+ * 上传应用截图
20
+
21
+ * 管理不同设备的截图
22
+
23
+ * 批量处理截图文件
24
+
25
+ 使用示例:
26
+
27
+ $ pindo appstore screenshots # 使用默认配置上传截图
28
+
29
+ $ pindo appstore screenshots config.json # 使用指定配置文件上传截图
16
30
  DESC
17
31
 
18
32
  self.arguments = [
@@ -11,7 +11,21 @@ module Pindo
11
11
  self.summary = '上传ipa到appstore'
12
12
 
13
13
  self.description = <<-DESC
14
- 上传ipa到appstore:pindo appstore upload
14
+ 上传ipa到App Store。
15
+
16
+ 支持功能:
17
+
18
+ * 验证IPA文件
19
+
20
+ * 上传到App Store Connect
21
+
22
+ * 提交审核准备
23
+
24
+ 使用示例:
25
+
26
+ $ pindo appstore upload # 使用默认配置上传
27
+
28
+ $ pindo appstore upload config.json # 使用指定配置文件上传
15
29
  DESC
16
30
 
17
31
  self.arguments = [