pindo 4.6.9 → 4.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/aeshelper.rb +75 -0
  3. data/lib/pindo/base/funlog.rb +89 -0
  4. data/lib/pindo/base/githelper.rb +35 -18
  5. data/lib/pindo/base/plaininformative.rb +3 -0
  6. data/lib/pindo/base/standarderror.rb +1 -0
  7. data/lib/pindo/base/xcodeconst.rb +251 -0
  8. data/lib/pindo/client/applovinclient.rb +6 -3
  9. data/lib/pindo/client/aws3sclient.rb +33 -46
  10. data/lib/pindo/client/bossclient.rb +1 -1
  11. data/lib/pindo/client/bossconfigclient.rb +3 -3
  12. data/lib/pindo/client/pgyerclient.rb +159 -100
  13. data/lib/pindo/command/appstore/iap.rb +43 -0
  14. data/lib/pindo/command/appstore/itcapp.rb +41 -0
  15. data/lib/pindo/command/appstore/metadata.rb +43 -0
  16. data/lib/pindo/command/appstore/screenshots.rb +43 -0
  17. data/lib/pindo/command/appstore/upload.rb +40 -0
  18. data/lib/pindo/command/appstore.rb +17 -0
  19. data/lib/pindo/command/deploy/build.rb +109 -0
  20. data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
  21. data/lib/pindo/command/deploy/cert.rb +183 -0
  22. data/lib/pindo/command/deploy/configproj.rb +105 -0
  23. data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
  24. data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
  25. data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
  26. data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
  27. data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
  28. data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
  29. data/lib/pindo/command/deploy.rb +44 -0
  30. data/lib/pindo/{dev → command/dev}/autobuild.rb +28 -76
  31. data/lib/pindo/{dev → command/dev}/autoresign.rb +21 -64
  32. data/lib/pindo/command/dev/build.rb +94 -0
  33. data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
  34. data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
  35. data/lib/pindo/command/dev/pgyercert.rb +75 -0
  36. data/lib/pindo/command/dev.rb +26 -0
  37. data/lib/pindo/command/env.rb +17 -0
  38. data/lib/pindo/{ipa → command/ipa}/autoresign.rb +22 -70
  39. data/lib/pindo/{ipa → command/ipa}/import.rb +48 -103
  40. data/lib/pindo/{ipa → command/ipa}/output.rb +43 -135
  41. data/lib/pindo/command/ipa.rb +16 -0
  42. data/lib/pindo/{lib → command/lib}/update.rb +23 -14
  43. data/lib/pindo/command/lib.rb +16 -0
  44. data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
  45. data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
  46. data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
  47. data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
  48. data/lib/pindo/command/pgyer/resign.rb +111 -0
  49. data/lib/pindo/command/pgyer/upload.rb +123 -0
  50. data/lib/pindo/command/pgyer.rb +18 -0
  51. data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
  52. data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
  53. data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
  54. data/lib/pindo/command/utils/icon.rb +81 -0
  55. data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
  56. data/lib/pindo/command/utils.rb +26 -0
  57. data/lib/pindo/command.rb +23 -26
  58. data/lib/pindo/config/pindoconfig.rb +27 -0
  59. data/lib/pindo/module/appselect.rb +9 -8
  60. data/lib/pindo/module/build/swarkhelper.rb +95 -0
  61. data/lib/pindo/module/cert/certhelper.rb +187 -0
  62. data/lib/pindo/module/cert/keychainhelper.rb +150 -0
  63. data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
  64. data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
  65. data/lib/pindo/module/cert/xcodecerthelper.rb +326 -0
  66. data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -36
  67. data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
  68. data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
  69. data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
  70. data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
  71. data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
  72. data/lib/pindo/module/xcode/xcodereshelper.rb +119 -0
  73. data/lib/pindo/options/appconfigoptions.rb +1 -0
  74. data/lib/pindo/options/deployoptions.rb +38 -42
  75. data/lib/pindo/version.rb +1 -1
  76. metadata +110 -97
  77. data/lib/pindo/deploy/Fastfile +0 -233
  78. data/lib/pindo/deploy/build.rb +0 -167
  79. data/lib/pindo/deploy/cert.rb +0 -508
  80. data/lib/pindo/deploy/configproj.rb +0 -89
  81. data/lib/pindo/deploy.rb +0 -44
  82. data/lib/pindo/dev.rb +0 -23
  83. data/lib/pindo/env/flutter.rb +0 -59
  84. data/lib/pindo/env/flutter.sh +0 -116
  85. data/lib/pindo/env.rb +0 -17
  86. data/lib/pindo/ipa.rb +0 -22
  87. data/lib/pindo/lib.rb +0 -18
  88. data/lib/pindo/module/buildconfighelper.rb +0 -13
  89. data/lib/pindo/module/buildhelper.rb +0 -76
  90. data/lib/pindo/module/config_project.sh +0 -143
  91. data/lib/pindo/module/configprojhelper.rb +0 -631
  92. data/lib/pindo/module/icon_contents.json +0 -116
  93. data/lib/pindo/module/imessage_icon.json +0 -91
  94. data/lib/pindo/module/imgset_contents.json +0 -21
  95. data/lib/pindo/module/launchimg_contents.json +0 -21
  96. data/lib/pindo/module/xcodebuildpre.rb +0 -258
  97. data/lib/pindo/pgyer/upload.rb +0 -234
  98. data/lib/pindo/pgyer.rb +0 -17
  99. data/lib/pindo/utils/icon.rb +0 -91
  100. data/lib/pindo/utils/icon.sh +0 -133
  101. data/lib/pindo/utils/podindex.rb +0 -56
  102. data/lib/pindo/utils/podindex.sh +0 -30
  103. data/lib/pindo/utils.rb +0 -29
  104. /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
  105. /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
  106. /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
  107. /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
  108. /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
  109. /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
  110. /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
  111. /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
  112. /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
  113. /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
  114. /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
  115. /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
  116. /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
  117. /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
  118. /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
  119. /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
  120. /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
  121. /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
  122. /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
  123. /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
  124. /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
  125. /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
  126. /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
  127. /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
  128. /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
  129. /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
  130. /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
  131. /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
  132. /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
  133. /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
  134. /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
  135. /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
  136. /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
  137. /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
  138. /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
  139. /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
  140. /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
  141. /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
  142. /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
  143. /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
  144. /data/lib/pindo/module/{xcodehelper.rb → xcode/xcodehelper.rb} +0 -0
@@ -3,6 +3,8 @@ require 'xcodeproj'
3
3
  require 'find'
4
4
  require 'fileutils'
5
5
  require 'pindo/base/executable'
6
+ require 'pindo/module/xcode/xcodebuildhelper'
7
+ require 'pindo/module/xcode/xcodeappconfig'
6
8
 
7
9
  module Pindo
8
10
  class Command
@@ -10,9 +12,11 @@ module Pindo
10
12
  class Output < Ipa
11
13
 
12
14
  include Command::DeployOptions
13
- include Pindo::Configprojhelper
14
-
15
+
16
+ include XcodeBuildHelper
17
+ include XcodeAppConfig
15
18
  include Appselect
19
+
16
20
 
17
21
  self.summary = '测试时设置Xcode工程编译参数并自动编译及上传'
18
22
 
@@ -41,6 +45,11 @@ module Pindo
41
45
  @args_send_flag = argv.flag?('send', false)
42
46
  @args_increase_flag = argv.flag?('increase', false)
43
47
 
48
+
49
+ if @args_send_flag
50
+ @args_upload_flag = true
51
+ end
52
+
44
53
  super
45
54
  end
46
55
 
@@ -63,88 +72,42 @@ module Pindo
63
72
  end
64
73
 
65
74
  if @args_increase_flag
66
- auto_increase_buildnumber
75
+ auto_increase_buildnumber(File.join(Dir.pwd, "config.json"))
76
+ app_config_repo_dir = File.join(pindo_single_config.pindo_dir, @deploy_identifier)
77
+ auto_increase_buildnumber(File.join(app_config_repo_dir, "config.json"))
78
+ git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
67
79
  end
68
80
 
69
- # begin
70
-
71
- prepare_for_upload
72
- output_fun()
73
-
74
- # rescue => err
75
- # puts "#########---------Error-------!!!"
76
- # puts err
77
- # end
78
- end
79
-
80
- def prepare_for_upload
81
-
82
- if @args_upload_flag
83
-
84
- @pgyer_client = PgyerClient.new
85
- app_info_obj = nil
86
- login_success = @pgyer_client.do_login(force_login:@args_login_flag)
81
+ app_info_obj = nil
82
+ if @args_upload_flag || @args_send_flag
83
+ proj_name = @args_proj_name
84
+ app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
85
+ end
86
+
87
+
87
88
 
88
- if login_success
89
+ output_fun()
89
90
 
90
- PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
91
- if @args_proj_name.nil?
92
- @args_proj_name = @config_json["project_info"]["project_name"]
93
- end
94
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
95
-
96
-
97
- if app_info_obj.nil?
98
- xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
99
- proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
100
- if !proj_name.nil?
101
- puts
102
- answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
103
- if answer
104
- @args_proj_name = proj_name
105
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
106
- end
107
- end
108
- end
91
+ pindo_new_project_dir = Dir.pwd
92
+ build_path = File.join(pindo_new_project_dir, "build", "*.ipa")
93
+ ipa_file_upload = Dir.glob(build_path).max_by {|f| File.mtime(f)}
109
94
 
110
- if app_info_obj.nil?
111
- proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
112
- @args_proj_name = proj_name.strip
113
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
95
+ if !ipa_file_upload.nil? && !app_info_obj.nil?
96
+ result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:nil)
97
+ if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
98
+ msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
99
+ PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
100
+ if @args_send_flag
101
+ PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
114
102
  end
115
-
116
103
  end
117
-
118
- if app_info_obj.nil?
119
- raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
120
- end
121
-
122
104
  end
123
- end
124
105
 
125
- def start_upload(pgyer_proj_name:nil, ipa_file_upload:nil, description:nil, args_send_flag:true)
126
-
127
- if !pgyer_proj_name.nil? && !ipa_file_upload.nil?
128
-
129
-
130
- args_temp = []
131
- pgyer_proj_name = pgyer_proj_name.strip.gsub(/ /, '')
132
- args_temp << "--proj=#{pgyer_proj_name}"
133
- args_temp << "--ipa=\"#{ipa_file_upload}\""
134
-
135
- if args_send_flag
136
- args_temp << "--send"
137
- end
138
-
139
- if !description.nil?
140
- args_temp << "--desc=\"#{description}\""
141
- end
106
+ system "open #{pindo_new_project_dir}"
142
107
 
143
- puts args_temp
144
- Pindo::Command::Pgyer::Upload::run(args_temp)
145
- end
146
108
  end
147
109
 
110
+
148
111
  def output_fun
149
112
 
150
113
  currentDir = Dir.pwd
@@ -173,13 +136,13 @@ module Pindo
173
136
 
174
137
 
175
138
  Dir.chdir(pindo_new_project_dir)
176
- if File.exist?(File.join(pindo_new_project_dir, "Podfile.lock"))
139
+ begin
177
140
  FileUtils.rm_rf(File.join(pindo_new_project_dir, "Podfile.lock"))
178
- end
179
- if File.exist?(File.join(pindo_new_project_dir, "Pods"))
180
141
  FileUtils.rm_rf(File.join(pindo_new_project_dir, "Pods"))
142
+ rescue StandardError => e
181
143
  end
182
144
 
145
+
183
146
  Dir.chdir(pindo_new_project_dir)
184
147
  modify_release_config(project_dir:pindo_new_project_dir, config_json:@config_json)
185
148
  Pindo::Command::Deploy::Configproj::run(args_temp)
@@ -187,11 +150,11 @@ module Pindo
187
150
 
188
151
 
189
152
  if File.exist?(File.join(pindo_new_project_dir, "Podfile"))
190
- Pindo::Command::Utils::Podindex::run([])
153
+ Pindo::Command::Lib::Update::run([])
191
154
 
192
155
  begin
193
156
  remove_test_pod_modue(project_dir:pindo_new_project_dir)
194
- system 'pod install'
157
+ Pod::Command::Install::run([])
195
158
  rescue => error
196
159
  puts(error.to_s)
197
160
  raise Informative, "pod install失败!!先pod install 完成后成编译 !"
@@ -246,19 +209,6 @@ module Pindo
246
209
  end
247
210
  end
248
211
 
249
- if !ipa_file_upload.nil? && !@args_proj_name.nil?
250
-
251
- description = nil
252
- commit_id_info = git_latest_commit_id(local_repo_dir:pindo_new_project_dir)
253
- description = "commit " + commit_id_info
254
- start_upload(pgyer_proj_name:@args_proj_name, ipa_file_upload:ipa_file_upload, description:description, args_send_flag:@args_send_flag)
255
- end
256
-
257
- Dir.chdir(pindo_new_project_dir)
258
- puts "Buiid Done !!!"
259
- puts "#{pindo_new_project_dir}"
260
- system "open #{pindo_new_project_dir}"
261
-
262
212
  end
263
213
 
264
214
  def get_release_build_args
@@ -299,7 +249,7 @@ module Pindo
299
249
 
300
250
  pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
301
251
  google_info_config_dir = File.join(pindo_dir, @args_bundle_id)
302
- modify_google_plist(project_dir:project_dir, app_config_dir:google_info_config_dir)
252
+ install_google_plist(project_dir:project_dir, app_config_dir:google_info_config_dir)
303
253
 
304
254
  end
305
255
 
@@ -327,8 +277,8 @@ module Pindo
327
277
  @config_json["app_info"]["applovin_app_id"] = @output_config_json["app_info"]["applovin_app_id"]
328
278
  end
329
279
 
330
- puts " @config_json[ app_setting] ================12"
331
- puts @config_json["app_setting"]
280
+ # puts " @config_json[ app_setting] ================12"
281
+ # puts @config_json["app_setting"]
332
282
 
333
283
  @config_json["app_setting"].each do |k, v|
334
284
  if k.eql?("kGUKeyAppClientHost") || k.eql?("kGUKeyResBaseUrl") || k.eql?("app_web_host") || k.eql?("app_client_url") || k.eql?("app_client_url") then
@@ -347,48 +297,6 @@ module Pindo
347
297
 
348
298
  end
349
299
 
350
- def auto_increase_buildnumber
351
-
352
- currentDir = Dir.pwd
353
-
354
- pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
355
- config_repo_dir = File.join(pindo_dir, @deploy_identifier)
356
- app_build_version = @config_json['app_info']['app_build_version']
357
-
358
- puts "old version #{app_build_version}"
359
- build_version_array = app_build_version.split('.') || []
360
- while build_version_array.size < 3 do
361
- build_version_array << "0"
362
- end
363
-
364
- last_numer = build_version_array.pop.to_s
365
- new_last_numer = last_numer.to_i + 1
366
- build_version_array << new_last_numer.to_s
367
- app_build_version = build_version_array.join(".")
368
- puts "new version #{app_build_version}"
369
-
370
- @config_json['app_info']['app_build_version'] = app_build_version
371
-
372
- app_origin_config = File.join(config_repo_dir, "config.json")
373
- config_json = JSON.parse(File.read(app_origin_config))
374
- config_json['app_info']['app_build_version'] = app_build_version
375
- File.open(app_origin_config, "w") do |file|
376
- file.write(JSON.pretty_generate(config_json))
377
- file.close
378
- end
379
-
380
- config_json = JSON.parse(File.read(@args_appconfig_fullname))
381
- config_json['app_info']['app_build_version'] = app_build_version
382
- File.open(@args_appconfig_fullname, "w") do |file|
383
- file.write(JSON.pretty_generate(config_json))
384
- file.close
385
- end
386
-
387
-
388
- git_addpush_repo(path:config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
389
- end
390
-
391
-
392
300
 
393
301
  end
394
302
  end
@@ -0,0 +1,16 @@
1
+
2
+
3
+ require 'pindo/command/ipa/import'
4
+ require 'pindo/command/ipa/output'
5
+ require 'pindo/command/ipa/autoresign'
6
+
7
+ module Pindo
8
+ class Command
9
+
10
+ class Ipa < Command
11
+ self.abstract_command = true
12
+ self.summary = '发布阶段自动化相关命令'
13
+ end
14
+
15
+ end
16
+ end
@@ -19,13 +19,17 @@ module Pindo
19
19
 
20
20
  def self.options
21
21
  [
22
+ ['--install', '更新完lib之后执行pod install, pindo lib update --install'],
23
+ ['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
22
24
  ].concat(super)
23
25
  end
24
26
 
25
27
  def initialize(argv)
28
+ @args_install_flag = argv.flag?('install', false)
29
+ @project_dir = argv.option('p')
26
30
 
27
- super(argv)
28
31
  @additional_args = argv.remainder!
32
+ super(argv)
29
33
  end
30
34
 
31
35
  def validate!
@@ -45,27 +49,32 @@ module Pindo
45
49
  raise Informative, '私有Pod索引地址未知!!'
46
50
  end
47
51
  sources = Pod::Config.instance.sources_manager.all
52
+ repos_path = File.expand_path("~/.cocoapods/repos")
48
53
 
49
54
  private_source = sources.select { |s| s.git? && s.url.to_s.eql?(pod_index_url)}.first
50
55
  if !private_source.nil?
51
- puts "开始更新私有库索引地址..."
52
- puts "地址:#{private_source.url}"
53
- puts "目录:#{private_source.repo}"
54
- git!(%W(-C #{private_source.repo} pull))
56
+
57
+ puts "私有Pod地址:#{pod_index_url}"
58
+ puts "私有Pod目录:~/.cocoapods"
59
+ getcode_to_dir(reponame:File.basename(private_source.repo), remote_url: pod_index_url, path:repos_path)
55
60
  else
56
- puts "下载私有库索引地址..."
57
- puts "地址:#{pod_index_url}"
58
- puts "目录:~/.cocoapods"
59
- repos_path = File.expand_path("~/.cocoapods/repos")
60
- getcode_to_dir(reponame:"goodpodsindex", remote_url: pod_index_url, path:repos_path)
61
+ puts "私有Pod地址:#{pod_index_url}"
62
+ puts "私有Pod目录:~/.cocoapods"
63
+ repository_name = pod_index_url.split("/").last.chomp(".git")
64
+ getcode_to_dir(reponame:repository_name, remote_url: pod_index_url, path:repos_path)
61
65
  end
62
-
63
66
 
64
67
 
65
- if File.exist?("#{working_dir}/Podfile")
66
- system "pod install"
68
+ if @args_install_flag
69
+ begin
70
+ if File.exist?("#{working_dir}/Podfile")
71
+ Pod::Command::Install::run(['--clean-install'])
72
+ end
73
+ rescue => e
74
+ puts e.message
75
+ end
67
76
  end
68
-
77
+
69
78
  end
70
79
 
71
80
 
@@ -0,0 +1,16 @@
1
+
2
+ require 'pindo/command/lib/lint'
3
+ require 'pindo/command/lib/push'
4
+ require 'pindo/command/lib/forcepush'
5
+ require 'pindo/command/lib/update'
6
+
7
+ module Pindo
8
+ class Command
9
+
10
+ class Lib < Command
11
+ self.abstract_command = true
12
+ self.summary = 'pod库的相关命令'
13
+ end
14
+
15
+ end
16
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'highline/import'
4
4
  require 'fileutils'
5
- require 'pindo/module/pgyerhelper.rb'
5
+ require 'pindo/module/pgyer/pgyerhelper'
6
6
 
7
7
  module Pindo
8
8
  class Command
@@ -42,52 +42,30 @@ module Pindo
42
42
  end
43
43
 
44
44
  def validate!
45
- if @args_proj_name.nil?
46
- xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
47
- proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
48
- if !proj_name.nil?
49
- puts
50
- answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
51
- if answer
52
- @args_proj_name = proj_name
53
- end
54
- end
55
- end
45
+
56
46
  super
57
47
  end
58
48
 
59
49
  def run
60
50
 
61
- @pgyer_client = PgyerClient.new
62
- app_info_obj = nil
63
- login_success = @pgyer_client.do_login(force_login:@args_login_flag)
64
- if login_success
65
- PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
66
- if !@args_proj_name.nil?
67
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
68
- end
69
-
70
- if app_info_obj.nil?
71
- proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
72
- @args_proj_name = proj_name.strip
73
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
74
- end
75
- end
51
+ PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
52
+ app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
76
53
 
77
54
  if app_info_obj.nil?
78
55
  raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
79
56
  end
80
57
 
58
+
81
59
  if !app_info_obj.nil?
82
60
 
83
- version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(client:@pgyer_client, app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
61
+ version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
84
62
 
85
63
  if version_item_obj.nil?
86
64
  raise Informative, "没有找到上传记录"
87
65
  end
88
66
 
67
+ msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:version_item_obj)
89
68
 
90
- msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:version_item_obj, msg_from: @pgyer_client.token["username"])
91
69
  PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
92
70
  if @args_send_flag
93
71
  PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'highline/import'
4
4
  require 'fileutils'
5
- require 'pindo/module/pgyerhelper.rb'
5
+ require 'pindo/module/pgyer/pgyerhelper'
6
6
 
7
7
 
8
8
  module Pindo
@@ -42,50 +42,27 @@ module Pindo
42
42
  end
43
43
 
44
44
  def validate!
45
- if @args_proj_name.nil?
46
- xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
47
- proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
48
- if !proj_name.nil?
49
- puts
50
- answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
51
- if answer
52
- @args_proj_name = proj_name
53
- end
54
- end
55
- end
45
+
56
46
  super
57
47
  end
58
48
 
59
49
  def run
60
50
 
61
- @pgyer_client = PgyerClient.new
62
- app_info_obj = nil
63
- login_success = @pgyer_client.do_login(force_login:@args_login_flag)
64
- if login_success
65
- PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
66
- if !@args_proj_name.nil?
67
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
68
- end
69
-
70
- if app_info_obj.nil?
71
- proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
72
- @args_proj_name = proj_name.strip
73
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
74
- end
75
- end
51
+ PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
52
+ app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
76
53
 
77
54
  if app_info_obj.nil?
78
55
  raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
79
56
  end
80
-
81
57
 
82
- version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(client:@pgyer_client, app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
58
+
59
+ version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
83
60
 
84
61
  if version_item_obj.nil?
85
62
  raise Informative, "没有找到上传记录"
86
63
  end
87
64
 
88
- PgyerHelper.share_instace.modify_coment(client:@pgyer_client, app_info_obj:app_info_obj, version_item_obj:version_item_obj)
65
+ PgyerHelper.share_instace.modify_coment(app_info_obj:app_info_obj, version_item_obj:version_item_obj)
89
66
 
90
67
  end
91
68
 
@@ -2,7 +2,8 @@
2
2
 
3
3
  require 'highline/import'
4
4
  require 'fileutils'
5
- require 'pindo/module/pgyerhelper.rb'
5
+ require 'pindo/module/pgyer/pgyerhelper'
6
+ require 'open-uri'
6
7
 
7
8
 
8
9
  module Pindo
@@ -42,43 +43,20 @@ module Pindo
42
43
  end
43
44
 
44
45
  def validate!
45
- if @args_proj_name.nil?
46
- xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
47
- proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
48
- if !proj_name.nil?
49
- puts
50
- answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
51
- if answer
52
- @args_proj_name = proj_name
53
- end
54
- end
55
- end
46
+
56
47
  super
57
48
  end
58
49
 
59
50
  def run
60
51
 
61
- @pgyer_client = PgyerClient.new
62
- app_info_obj = nil
63
- login_success = @pgyer_client.do_login(force_login:@args_login_flag)
64
- if login_success
65
- PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
66
- if !@args_proj_name.nil?
67
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
68
- end
69
-
70
- if app_info_obj.nil?
71
- proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
72
- @args_proj_name = proj_name.strip
73
- app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
74
- end
75
- end
52
+ PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
53
+ app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
76
54
 
77
55
  if app_info_obj.nil?
78
56
  raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
79
57
  end
80
58
 
81
- version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(client:@pgyer_client, app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
59
+ version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
82
60
 
83
61
  if version_item_obj.nil?
84
62
  raise Informative, "没有找到上传记录"
@@ -93,9 +71,36 @@ module Pindo
93
71
  file_name = File.join(Dir.pwd, base_name)
94
72
  puts "文件名: #{file_name}"
95
73
  puts "下载中..."
96
- File.binwrite(file_name, FastlaneCore::Helper.open_uri(download_url).read)
97
- puts "下载完成!"
74
+ # File.binwrite(file_name, FastlaneCore::Helper.open_uri(download_url).read)
75
+
76
+
77
+
78
+ # 使用选项参数
79
+
80
+ Funlog.instance.fancyinfo_start("开始下载...")
81
+ total_num = 0
82
+ total_size = ''
83
+ char_in = '>'
84
+ char_out = '_'
85
+ download_message = ''
86
+
87
+ URI.open(download_url, :content_length_proc => lambda { |total|
88
+ total_num = total
89
+ total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
90
+ }, :progress_proc => lambda { |index_num|
91
+
92
+ progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
93
+ total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
94
+ index = 100.0 * index_num / total_num
95
+ download_message = "已下载:#{progress_str}\%【" + (char_in * (index/1).floor).ljust(100, char_out) + "】Total: #{total_size} M"
96
+ Funlog.instance.fancyinfo_update(download_message)
97
+
98
+ }) do |file|
99
+ File.binwrite(file_name, file.read)
100
+ end
98
101
 
102
+ Funlog.instance.fancyinfo_success(download_message)
103
+ Funlog.instance.fancyinfo_success("#{file_name} 下载完成!")
99
104
 
100
105
  end
101
106
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'highline/import'
4
4
  require 'fileutils'
5
- require 'pindo/module/pgyerhelper.rb'
5
+ require 'pindo/module/pgyer/pgyerhelper'
6
6
 
7
7
 
8
8
  module Pindo
@@ -44,15 +44,14 @@ module Pindo
44
44
  def run
45
45
 
46
46
  app_info_obj = nil
47
- @pgyer_client = PgyerClient.new
48
47
 
49
- login_success = @pgyer_client.do_login(force_login:@args_login_flag)
48
+ PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
49
+ login_success = PgyerHelper.share_instace.login
50
50
 
51
51
  if !login_success
52
52
  raise Informative, "登录失败!!!"
53
53
  end
54
54
 
55
-
56
55
  end
57
56
 
58
57
  end