pindo 4.7.4 → 4.7.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df037923380f2b620207356880503d0999f322ff1567b91f851cab7e16a5c3d5
4
- data.tar.gz: cfe5b3f9a2968750ed4e78bf0d3127a74bbd20c53a703ae74606394fc0433ab2
3
+ metadata.gz: d67d718e2507fa330a19b44df9b7abefb0ae417dac58a4c5d431cf3c9f63dc13
4
+ data.tar.gz: 3377d33ac73c5c5024beb48de2fa30d0b1813f0637eae2d990a30eb0ae37f9f7
5
5
  SHA512:
6
- metadata.gz: 4f05b640b14b6f4d7de61e8b359b0350a15b5b48dd63f39ef71e6f8287d62f8350eaac767b5935241af9b8df8d9b2482329b33f31cca4b9911c96114b9f27528
7
- data.tar.gz: d2fe50e1eb3cd860248c05e746d307e9a8ca554225f9134788fa7ab3aed3b4f2470a7610bf3048c5f82ff5e2a4930d046cb6ca4888f1b34fcccaf5fcd8b3c0f6
6
+ metadata.gz: '01038d7dfe0a9b0705056798db4cdbd6897baadb944c9d9808910526a7dead73d5f5573efa73bd0ef9d7dad5dd0e14c28628046b5dbb658571f5865afff2cf86'
7
+ data.tar.gz: c23e4788703dc11aa106d94c12c8c28ade2d5e0c72241b77bd75263b1e36115abb0a4ff1b633d37ccd9a784f51252f45e1ea8899ce676a91e832b775d386b760
@@ -1,7 +1,9 @@
1
+
1
2
  require 'openssl'
3
+ require 'match'
2
4
 
3
5
  module Pindo
4
-
6
+
5
7
 
6
8
  module AESHelper
7
9
 
@@ -17,7 +19,7 @@ module Pindo
17
19
 
18
20
  unless password
19
21
  password = FastlaneCore::Helper.ask_password(message: "请输入证书仓库的加密密码: ", confirm: true)
20
- Security::InternetPassword.add(server_name, "", password)
22
+ Security::InternetPassword.add(server_name, "", password)
21
23
  end
22
24
  return password
23
25
  end
@@ -54,17 +56,9 @@ module Pindo
54
56
  def self.encrypt_specific_file(src_file: nil, password: nil, output_dir: nil)
55
57
  UI.user_error!("No password supplied") if password.to_s.strip.length == 0
56
58
 
57
- data_to_encrypt = File.binread(path)
58
- salt = SecureRandom.random_bytes(8)
59
-
60
- # The :: is important, as there is a name clash
61
- cipher = ::OpenSSL::Cipher.new('AES-256-CBC')
62
- cipher.encrypt
63
- cipher.pkcs5_keyivgen(password, salt, 1, "MD5")
64
- encrypted_data = "Salted__" + salt + cipher.update(data_to_encrypt) + cipher.final
65
-
66
59
  destfile = File.join(output_dir, File.basename(src_file))
67
- File.write(destfile, Base64.encode64(encrypted_data))
60
+ e = Match::Encryption::MatchFileEncryption.new
61
+ e.encrypt(file_path: src_file, password: password, output_path:destfile)
68
62
  return destfile
69
63
  rescue error
70
64
  puts path
@@ -74,32 +68,20 @@ module Pindo
74
68
  # The encryption parameters in this implementations reflect the old behavior which depended on the users' local OpenSSL version
75
69
  # 1.0.x OpenSSL and earlier versions use MD5, 1.1.0c and newer uses SHA256, we try both before giving an error
76
70
  def self.decrypt_specific_file(src_file: nil, password: nil, output_dir: nil, hash_algorithm: "MD5")
77
-
78
- begin
79
- stored_data = Base64.decode64(File.read(src_file))
80
- salt = stored_data[8..15]
81
- data_to_decrypt = stored_data[16..-1]
82
-
83
- decipher = ::OpenSSL::Cipher.new('AES-256-CBC')
84
- decipher.decrypt
85
- decipher.pkcs5_keyivgen(password, salt, 1, hash_algorithm)
86
71
 
87
- decrypted_data = decipher.update(data_to_decrypt) + decipher.final
72
+ begin
88
73
  destfile = File.join(output_dir, File.basename(src_file))
89
- File.binwrite(destfile, decrypted_data)
74
+ e = Match::Encryption::MatchFileEncryption.new
75
+ e.decrypt(file_path: src_file, password: password, output_path:destfile)
90
76
  return destfile
91
77
  rescue => error
92
- fallback_hash_algorithm = "SHA256"
93
- if hash_algorithm != fallback_hash_algorithm
94
- decrypt_specific_file(src_file: src_file, password: password, hash_algorithm: fallback_hash_algorithm)
95
- else
96
78
  Funlog.instance.fancyinfo_error("解析文件失败: #{src_file}")
79
+ raise Informative, error
97
80
  return nil
98
- end
99
81
  end
100
82
  end
101
83
 
102
- end
103
84
 
104
85
 
86
+ end
105
87
  end
@@ -113,7 +113,6 @@ module Pindo
113
113
  end
114
114
 
115
115
  object_key = upload_path + file_uuid + extension
116
-
117
116
  puts "上传路径: #{object_key}"
118
117
  puts
119
118
 
@@ -3,6 +3,7 @@ require 'uri'
3
3
  require 'json'
4
4
  require 'faraday'
5
5
  require 'pindo/base/aeshelper'
6
+ require 'faraday/retry'
6
7
 
7
8
  module Pindo
8
9
 
@@ -24,8 +25,18 @@ module Pindo
24
25
  password: ENV['HTTP_PROXY_PASSWORD']
25
26
  }
26
27
 
27
- con = Faraday.new
28
- con.proxy = proxy_options.compact if proxy_options[:uri]
28
+ retry_options = {
29
+ max: 3, # Retry a failed request up to 5 times
30
+ interval: 0.5, # First retry after 0.5s
31
+ backoff_factor: 2, # Double the delay for each subsequent retry
32
+ interval_randomness: 0.5, # Specify "jitter" of up to 50% of interval
33
+ }
34
+
35
+ con = Faraday.new do |config|
36
+ config.request :retry, retry_options
37
+ config.proxy = proxy_options.compact if proxy_options[:uri]
38
+ end
39
+
29
40
  con
30
41
  end
31
42
 
@@ -0,0 +1,291 @@
1
+
2
+ require 'uri'
3
+ require 'json'
4
+ require 'faraday'
5
+ require 'securerandom'
6
+ require 'pindo/base/aeshelper'
7
+ require 'typhoeus'
8
+
9
+ module Pindo
10
+
11
+
12
+ class PgyerUploadClient
13
+
14
+
15
+ attr_accessor :token
16
+
17
+ attr_accessor :region
18
+ attr_accessor :bucket_name
19
+
20
+ attr_accessor :default_url
21
+ attr_accessor :attach_url
22
+
23
+
24
+ def initialize()
25
+
26
+ begin
27
+
28
+ @pgyer_token_file = File.join(File::expand_path(Pindoconfig.instance.pindo_dir), ".pgyer_token")
29
+ config_file = File.join(File::expand_path(Pindoconfig.instance.pindo_common_configdir), "pgyer_client_config.json")
30
+ config_json = JSON.parse(File.read(config_file))
31
+
32
+ @region = config_json["region"]
33
+ @bucket_name = config_json["bucket_name"]
34
+ @default_url = config_json["default_url"]
35
+ @attach_url = config_json["attach_url"]
36
+
37
+ @use_local_wechat_url = config_json["use_local_wechat_url"]
38
+ @baseurl = config_json["pgyerapps_base_url"]
39
+ @request_config = config_json["pgyerapps_req_config"]
40
+ @pgyer_aes_key = config_json["pgyerapps_aes_key"]
41
+
42
+ @token = load_token
43
+
44
+ rescue => error
45
+ raise Informative, "PgyerUploadClient 初始化失败!"
46
+ end
47
+
48
+ end
49
+
50
+ def load_token()
51
+ token = nil
52
+ if File.exist?(@pgyer_token_file)
53
+ begin
54
+ data = File.read(@pgyer_token_file)
55
+
56
+ data_string = AESHelper::aes_128_ecb_decrypt(@pgyer_aes_key, data)
57
+ temp_token = data_string
58
+ temp_token = JSON.parse(data_string)
59
+ if !temp_token.nil? && !temp_token["token"].nil? && !temp_token["username"].nil?
60
+ token = temp_token
61
+ end
62
+ rescue => error
63
+ raise Informative, "PgyerUploadClient 加载pgyer token 失败!!!"
64
+ end
65
+ end
66
+ return token
67
+ end
68
+
69
+ def upload_file(binary_file:nil, isAttach:false)
70
+
71
+ extension = File.extname(binary_file)
72
+ filename = File.basename(binary_file)
73
+ filesize = File.size(binary_file)
74
+ size_level = 1024 * 1024
75
+ file_bytes = File.binread(binary_file)
76
+ checksum = Digest::MD5.hexdigest(file_bytes)
77
+ file_uuid = SecureRandom.uuid
78
+ total_m = sprintf("%.2f", 1.00 * filesize / 1024 /1024 )
79
+
80
+
81
+
82
+ upload_path = @default_url
83
+ content_disposition = nil
84
+ if isAttach
85
+ upload_path = @default_url + @attach_url
86
+ content_disposition = "attachment; filename=#{filename}"
87
+ end
88
+
89
+ object_key = upload_path + file_uuid + extension
90
+
91
+ puts "文件路径: #{binary_file}"
92
+ puts "文件大小: #{total_m}M"
93
+ puts "上传路径: #{object_key}"
94
+ puts
95
+
96
+
97
+ @upload_total_size = filesize
98
+
99
+
100
+ upload_result = nil
101
+
102
+ file_size_param = 1.00 * filesize / 1024 /1024
103
+ result_data = post_upload_url_req(upload_key:object_key, file_size:file_size_param.ceil)
104
+
105
+ upload_id= result_data["data"]["uploadId"]
106
+ upload_params_list = result_data["data"]["uploadParamsList"]
107
+
108
+
109
+
110
+ Funlog.instance.fancyinfo_start("开始上传...")
111
+
112
+ eTags = []
113
+ eTags = single_task_upload_data_req(binary_file:binary_file, upload_params_list:upload_params_list)
114
+
115
+ result_data = post_upload_finish_req(upload_key:object_key, upload_id:upload_id, eTags:eTags)
116
+
117
+ if result_data["code"] == 200
118
+ upload_result = object_key
119
+ # set_progress(filesize, filesize)
120
+ Funlog.instance.fancyinfo_success("文件#{binary_file} 上传成功! 😎😎😎")
121
+ else
122
+ upload_result = nil
123
+ Funlog.instance.fancyinfo_error("文件#{binary_file} 上传失败! 😭😭😭")
124
+ end
125
+
126
+ return upload_result
127
+
128
+ end
129
+
130
+ def single_task_upload_data_req(binary_file:nil, upload_params_list:nil)
131
+ filesize = File.size(binary_file)
132
+ eTags = []
133
+ if !upload_params_list.nil? && upload_params_list.length > 0
134
+ for i in 0..upload_params_list.length-1 do
135
+ part_result = single_task_upload_part_data_req(filesize:filesize, binary_file:binary_file, upload_url:upload_params_list[i]["signedUrl"], part_no:upload_params_list[i]["partNo"])
136
+ eTag_item = { partNumber: upload_params_list[i]["partNo"], tag: part_result}
137
+ eTags << eTag_item
138
+ end
139
+ end
140
+
141
+ return eTags
142
+ end
143
+
144
+ def single_task_upload_part_data_req(filesize:nil, binary_file:nil, upload_url:nil, part_no:nil)
145
+
146
+ # puts "start upload part #{part_no} -----"
147
+
148
+ file_size_ele = 1024 * 1024 * 5 #5M
149
+ start_position = file_size_ele * (part_no -1)
150
+ if part_no * file_size_ele > filesize
151
+ read_length = filesize - start_position
152
+ else
153
+ read_length = file_size_ele
154
+ end
155
+
156
+ file = File.open(binary_file, "rb")
157
+ file.seek(start_position)
158
+ put_data = file.read(read_length)
159
+
160
+
161
+ request = nil
162
+
163
+ proxy_options = {
164
+ proxy: ENV['http_proxy'] || ENV['https_proxy'],
165
+ proxyuserpwd: "#{ENV['HTTP_PROXY_USER']}:#{ENV['HTTP_PROXY_PASSWORD']}"
166
+ }
167
+
168
+ if proxy_options[:proxy]
169
+ request = Typhoeus::Request.new(
170
+ upload_url,
171
+ method: :put,
172
+ proxy: proxy_options[:proxy],
173
+ proxyuserpwd: proxy_options[:proxyuserpwd],
174
+ :body => put_data,
175
+ :headers => {
176
+ 'Content-Type' => 'application/octet-stream',
177
+ 'token' => @token['token'],
178
+ 'Content-Length' => read_length.to_s
179
+ }
180
+ )
181
+ else
182
+ request = Typhoeus::Request.new(
183
+ upload_url,
184
+ method: :put,
185
+ :body => put_data,
186
+ :headers => {
187
+ 'Content-Type' => 'application/octet-stream',
188
+ 'token' => @token['token'],
189
+ 'Content-Length' => read_length.to_s
190
+ }
191
+ )
192
+ end
193
+
194
+
195
+ @upload_num = start_position
196
+ request.on_progress do |dltotal, dlnow, ultotal, ulnow|
197
+ # puts "dltotal (#{dltotal}), dlnow (#{dlnow}), ultotal (#{ultotal}), ulnow (#{ulnow})"
198
+ if ulnow
199
+ @upload_num = start_position + ulnow
200
+ set_progress(@upload_num, filesize)
201
+ end
202
+ end
203
+
204
+ return_data = nil
205
+ request.on_complete do |response|
206
+ if response.success?
207
+ # puts "on_complete success"
208
+ return_data = response.headers["ETag"]
209
+ else
210
+ # puts "on_complete fail"
211
+ end
212
+ end
213
+
214
+ request.run
215
+
216
+ return return_data
217
+
218
+ end
219
+
220
+ def post_upload_finish_req(upload_key:nil, upload_id:nil, eTags:nil)
221
+
222
+ boss_url = @baseurl + @request_config["multi_signed_url_upload"]
223
+
224
+ body_params = {
225
+ functionName:"finish",
226
+ fileKey:upload_key,
227
+ uploadId:upload_id,
228
+ tags:eTags
229
+ }
230
+
231
+ con = HttpClient.create_instance_with_proxy
232
+ res = con.post do |req|
233
+ req.url boss_url
234
+ req.headers['Content-Type'] = 'application/json'
235
+ req.headers['token'] = @token["token"]
236
+ req.body = body_params.to_json
237
+ end
238
+
239
+
240
+ result_data = nil
241
+ if !res.body.nil?
242
+ result_data = JSON.parse(res.body)
243
+ end
244
+
245
+ return result_data
246
+
247
+ end
248
+
249
+
250
+ def post_upload_url_req(upload_key:nil, file_size:nil)
251
+
252
+ # puts "post_upload_url_req start ..."
253
+ # puts "file_size: #{file_size} MB"
254
+ boss_url = @baseurl + @request_config["multi_signed_url_upload"]
255
+
256
+ body_params = {
257
+ functionName:"start",
258
+ fileKey:upload_key,
259
+ fileSize:file_size
260
+ }
261
+
262
+ con = HttpClient.create_instance_with_proxy
263
+ res = con.post do |req|
264
+ req.url boss_url
265
+ req.headers['Content-Type'] = 'application/json'
266
+ req.headers['token'] = @token["token"]
267
+ req.body = body_params.to_json
268
+ end
269
+
270
+
271
+ result_data = nil
272
+ if !res.body.nil?
273
+ result_data = JSON.parse(res.body)
274
+ end
275
+
276
+ # puts JSON.pretty_generate(result_data)
277
+
278
+ return result_data
279
+
280
+ end
281
+
282
+ def set_progress(index_num, total_num, char ='>' )
283
+ progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
284
+ total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
285
+ index = 40.0 * index_num / total_num
286
+ upload_message = "已上传:#{progress_str}\%【" + (char * (index/1).floor).ljust(40.0, '_') + "】Total: #{total_size} M"
287
+ Funlog.instance.fancyinfo_update(upload_message)
288
+ end
289
+
290
+ end
291
+ end
@@ -1,7 +1,7 @@
1
1
  require 'highline/import'
2
2
  require 'fileutils'
3
3
  require 'json'
4
- require "fastlane"
4
+ # require "fastlane"
5
5
  require "spaceship"
6
6
 
7
7
  module Pindo
@@ -1,5 +1,4 @@
1
1
  require 'fileutils'
2
- require 'match'
3
2
  require 'pindo/module/build/swarkhelper'
4
3
  require 'pindo/module/cert/xcodecerthelper'
5
4
  require 'pindo/module/cert/certhelper'
@@ -2,7 +2,6 @@ require 'highline/import'
2
2
  require 'fileutils'
3
3
  require 'json'
4
4
  require 'xcodeproj'
5
- require 'match'
6
5
  require 'yaml'
7
6
 
8
7
  module Pindo
@@ -1,5 +1,4 @@
1
1
  require 'fileutils'
2
- require 'match'
3
2
  require 'pindo/client/giteeclient'
4
3
 
5
4
  module Pindo
@@ -58,91 +58,93 @@ module Pindo
58
58
 
59
59
 
60
60
  def login
61
- Spaceship::Portal.login(pindo_single_config.demo_apple_id)
62
- Spaceship::Portal.select_team
61
+ # Spaceship::Portal.login(pindo_single_config.demo_apple_id)
62
+ # Spaceship::Portal.select_team
63
63
  end
64
64
 
65
65
  def fetch_device
66
66
 
67
67
 
68
- devices = Spaceship::Portal.device.all(include_disabled: true).select do |device|
69
- device.enabled?
70
- end
71
- mac_disabled_devices = Spaceship::Portal.device.all(mac: true, include_disabled: true).select do |device|
72
- device.enabled?
73
- end
68
+ # devices = Spaceship::Portal.device.all(include_disabled: true).select do |device|
69
+ # device.enabled?
70
+ # end
71
+ # mac_disabled_devices = Spaceship::Portal.device.all(mac: true, include_disabled: true).select do |device|
72
+ # device.enabled?
73
+ # end
74
74
 
75
- my_total_devices = {}
75
+ # my_total_devices = {}
76
76
 
77
- devices.each do |item|
78
- device_item = DeviceItem.new
79
- device_item.name = item.name
80
- device_item.name = device_item.name.downcase
81
- device_item.udid = item.udid
82
- device_item.platform = item.platform
83
- device_item.device_model = item.model
84
- device_item.device_type = item.device_type
77
+ # devices.each do |item|
78
+ # device_item = DeviceItem.new
79
+ # device_item.name = item.name
80
+ # device_item.name = device_item.name.downcase
81
+ # device_item.udid = item.udid
82
+ # device_item.platform = item.platform
83
+ # device_item.device_model = item.model
84
+ # device_item.device_type = item.device_type
85
85
 
86
- device_item.device_description = ""
87
- my_total_devices[item.udid] = device_item
88
- end
86
+ # device_item.device_description = ""
87
+ # my_total_devices[item.udid] = device_item
88
+ # end
89
89
 
90
- mac_disabled_devices.each do |item|
91
- # puts item
92
- device_item = DeviceItem.new
93
- device_item.name = item.name
94
- device_item.name = device_item.name.downcase
95
- device_item.udid = item.udid
96
- device_item.platform = item.platform
97
- device_item.device_model = item.model
98
- device_item.device_type = item.device_type
99
- device_item.device_description = ""
100
- my_total_devices[item.udid] = device_item
101
- end
90
+ # mac_disabled_devices.each do |item|
91
+ # # puts item
92
+ # device_item = DeviceItem.new
93
+ # device_item.name = item.name
94
+ # device_item.name = device_item.name.downcase
95
+ # device_item.udid = item.udid
96
+ # device_item.platform = item.platform
97
+ # device_item.device_model = item.model
98
+ # device_item.device_type = item.device_type
99
+ # device_item.device_description = ""
100
+ # my_total_devices[item.udid] = device_item
101
+ # end
102
102
 
103
103
 
104
104
 
105
- use_devices = read_user_csv()
105
+ # use_devices = read_user_csv()
106
106
 
107
- use_devices.each do |key, item|
108
- if !my_total_devices[key].nil?
107
+ # use_devices.each do |key, item|
108
+ # if !my_total_devices[key].nil?
109
109
 
110
- if !item.device_description.nil?
111
- my_total_devices[key].device_description = item.device_description
112
- end
113
- if my_total_devices[key].device_description.nil? || my_total_devices[key].device_description.eql?("")
114
- my_total_devices[key].device_description = item.name.to_s.downcase
115
- end
110
+ # if !item.device_description.nil?
111
+ # my_total_devices[key].device_description = item.device_description
112
+ # end
113
+ # if my_total_devices[key].device_description.nil? || my_total_devices[key].device_description.eql?("")
114
+ # my_total_devices[key].device_description = item.name.to_s.downcase
115
+ # end
116
116
 
117
- if my_total_devices[key].device_model.nil? || my_total_devices[key].device_model.eql?("")
118
- my_total_devices[key].device_model = item.device_model
117
+ # if my_total_devices[key].device_model.nil? || my_total_devices[key].device_model.eql?("")
118
+ # my_total_devices[key].device_model = item.device_model
119
119
 
120
- end
121
- if my_total_devices[key].device_model.nil? || my_total_devices[key].device_model.eql?("")
122
- my_total_devices[key].device_model = item.name.to_s.downcase
123
- end
124
- end
125
- end
120
+ # end
121
+ # if my_total_devices[key].device_model.nil? || my_total_devices[key].device_model.eql?("")
122
+ # my_total_devices[key].device_model = item.name.to_s.downcase
123
+ # end
124
+ # end
125
+ # end
126
126
 
127
127
 
128
128
 
129
129
 
130
- pgyer_devices = read_apppgyer_csv()
131
- pgyer_devices.each do |key, item|
132
- if !my_total_devices[key].nil?
130
+ # pgyer_devices = read_apppgyer_csv()
131
+ # pgyer_devices.each do |key, item|
132
+ # if !my_total_devices[key].nil?
133
+
134
+ # if !item.device_description.nil?
135
+ # my_total_devices[key].device_description = item.device_description
136
+ # end
137
+ # end
138
+ # end
133
139
 
134
- if !item.device_description.nil?
135
- my_total_devices[key].device_description = item.device_description
136
- end
137
- end
138
- end
139
140
 
141
+ my_total_devices = read_user_csv()
140
142
 
141
- # my_total_devices = read_user_csv()
143
+ JSON.pretty_generate(my_total_devices)
142
144
 
143
145
 
144
146
  write_appstore_text(devices:my_total_devices)
145
- # write_user_csv(devices:my_total_devices)
147
+ write_user_csv(devices:my_total_devices)
146
148
  write_apppgyer_csv(devices:my_total_devices)
147
149
 
148
150
  end
@@ -155,11 +157,13 @@ module Pindo
155
157
  str_text = "DEVICE ID\tDEVICE NAME\tDEVICE PLATFORM\n"
156
158
  devices.each do |key, device|
157
159
  if device.platform.nil? || !(device.platform.to_s.eql?("ios") || device.platform.to_s.eql?("mac"))
158
- if device.device_type.to_s.downcase!.eql?("mac")
160
+
161
+ if device.device_type.to_s.strip.downcase.eql?("mac")
159
162
  device.platform = "mac"
160
163
  else
161
164
  device.platform = "ios"
162
165
  end
166
+
163
167
  end
164
168
  str = String.new
165
169
  str = str + device.udid
@@ -268,7 +272,7 @@ module Pindo
268
272
  line_num += 1
269
273
  end
270
274
  end
271
- # puts devices
275
+ puts devices
272
276
  return devices
273
277
 
274
278
  end
@@ -1,5 +1,5 @@
1
1
 
2
- require 'match'
2
+
3
3
  require 'openssl'
4
4
  require 'pindo/base/aeshelper'
5
5
  require 'pindo/module/cert/keychainhelper'
@@ -5,7 +5,8 @@ require 'json'
5
5
  require 'faraday'
6
6
  require "rqrcode"
7
7
  require 'pindo/client/pgyerclient'
8
- require 'pindo/client/aws3sclient'
8
+ # require 'pindo/client/aws3sclient'
9
+ require 'pindo/client/pgyeruploadclient'
9
10
 
10
11
 
11
12
  module Pindo
@@ -171,7 +172,8 @@ module Pindo
171
172
  puts description
172
173
 
173
174
 
174
- aws_client = AWSS3Client.new
175
+ # aws_client = AWSS3Client.new
176
+ aws_client = PgyerUploadClient.new
175
177
  upload_res = aws_client.upload_file(binary_file:ipa_file_upload)
176
178
 
177
179
  attach_key_url = nil
@@ -202,6 +204,8 @@ module Pindo
202
204
  })
203
205
 
204
206
  return result_data
207
+ else
208
+ raise Informative, "上传失败!"
205
209
  end
206
210
 
207
211
 
data/lib/pindo/version.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  module Pindo
2
2
 
3
- VERSION = "4.7.4"
3
+ VERSION = "4.7.6"
4
4
 
5
5
  class VersionCheck
6
6
 
7
7
  def self.check_pindo_new_version
8
8
 
9
- puts
10
- puts "pindo #{Pindo::VERSION}"
9
+ # puts
10
+ # puts "pindo #{Pindo::VERSION}"
11
11
 
12
12
  begin
13
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pindo
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.4
4
+ version: 4.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - wade
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-04 00:00:00.000000000 Z
11
+ date: 2024-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: claide
@@ -36,60 +36,40 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.11'
39
+ version: '1.15'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 1.11.3
42
+ version: 1.15.2
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '1.11'
49
+ version: '1.15'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 1.11.3
53
- - !ruby/object:Gem::Dependency
54
- name: xcodeproj
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 1.14.0
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: '2.0'
63
- type: :runtime
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: 1.14.0
70
- - - "<"
71
- - !ruby/object:Gem::Version
72
- version: '2.0'
52
+ version: 1.15.2
73
53
  - !ruby/object:Gem::Dependency
74
54
  name: fastlane
75
55
  requirement: !ruby/object:Gem::Requirement
76
56
  requirements:
77
57
  - - "~>"
78
58
  - !ruby/object:Gem::Version
79
- version: '2.211'
59
+ version: '2.220'
80
60
  - - ">="
81
61
  - !ruby/object:Gem::Version
82
- version: 2.11.0
62
+ version: 2.220.0
83
63
  type: :runtime
84
64
  prerelease: false
85
65
  version_requirements: !ruby/object:Gem::Requirement
86
66
  requirements:
87
67
  - - "~>"
88
68
  - !ruby/object:Gem::Version
89
- version: '2.211'
69
+ version: '2.220'
90
70
  - - ">="
91
71
  - !ruby/object:Gem::Version
92
- version: 2.11.0
72
+ version: 2.220.0
93
73
  - !ruby/object:Gem::Dependency
94
74
  name: fastimage
95
75
  requirement: !ruby/object:Gem::Requirement
@@ -151,25 +131,45 @@ dependencies:
151
131
  - !ruby/object:Gem::Version
152
132
  version: 2.2.0
153
133
  - !ruby/object:Gem::Dependency
154
- name: aws-sdk-s3
134
+ name: faraday-retry
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 2.2.0
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 2.2.0
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: 2.2.0
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 2.2.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: typhoeus
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 1.123.0
159
+ version: 1.4.0
160
160
  - - ">="
161
161
  - !ruby/object:Gem::Version
162
- version: 1.123.0
162
+ version: 1.4.1
163
163
  type: :runtime
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
167
  - - "~>"
168
168
  - !ruby/object:Gem::Version
169
- version: 1.123.0
169
+ version: 1.4.0
170
170
  - - ">="
171
171
  - !ruby/object:Gem::Version
172
- version: 1.123.0
172
+ version: 1.4.1
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: bundler
175
175
  requirement: !ruby/object:Gem::Requirement
@@ -245,6 +245,7 @@ files:
245
245
  - lib/pindo/client/giteeclient.rb
246
246
  - lib/pindo/client/httpclient.rb
247
247
  - lib/pindo/client/pgyerclient.rb
248
+ - lib/pindo/client/pgyeruploadclient.rb
248
249
  - lib/pindo/client/tgateclient.rb
249
250
  - lib/pindo/command.rb
250
251
  - lib/pindo/command/appstore.rb