fastlane-plugin-huawei_appgallery_connect 1.0.13 → 1.0.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02d57156fc8d0f2a570e0ebe61f2b051e88b074ef38d423ee9f3163a4096f8b2
4
- data.tar.gz: 7f4d0f4d95586a6451771de0ba7ed0345096416f1974ac6fdfe3dcec9a172244
3
+ metadata.gz: 4cbcf000ecf19c315a575d2c5084aae0880a68e7d86f7a2560252269fe5e1857
4
+ data.tar.gz: 3d30472124721a580b6ef1747437a306ae2e6b2810073caa9122f172296abd31
5
5
  SHA512:
6
- metadata.gz: c6f10f39d639c5990e418bfc63a9cf923386c53fef41b6a8846172acc30951e91c820ff13a2a072f3cfa21fda41c7dcfa101b96681a5cd496aa35d68e9acc7fa
7
- data.tar.gz: df0b4f5db1d91ce34d3aa063ff42bf56206e43527d36c7f0bdb0b753692108bfb24fd0ae03447c089c5107d9ba7210a2019e3a2e046ab91902ca07b87402e284
6
+ metadata.gz: cf05150273e858905a0bad16d652d3f93a63e655e0b498cf40908569981372e7076246691ac1b4ceb798d7f44ec68a6dde4e42315586d204946af943e4b3378b
7
+ data.tar.gz: f11f69b3f0eed7b80e5af2def0c4e2783f13a5fedc431adc43aa1544e159bd53f0f93b71d578433630710d87fc0ffc1d1661c7f10f614dfd2878e63d0c687ca9
data/README.md CHANGED
@@ -27,6 +27,9 @@ huawei_appgallery_connect(
27
27
 
28
28
  # Optional, Parameter beyond this are optional
29
29
 
30
+ # if you're uploading aab instead of apk, specify is_aab to true and specify path to aab file on apk_path
31
+ is_aab: true
32
+
30
33
  submit_for_review: false,
31
34
 
32
35
  privacy_policy_url: "https://example.com",
@@ -16,12 +16,29 @@ module Fastlane
16
16
  end
17
17
 
18
18
  upload_app = Helper::HuaweiAppgalleryConnectHelper.upload_app(token, params[:client_id], params[:app_id], params[:apk_path], params[:is_aab])
19
+ UI.message("Waiting 10 seconds for upload to get processed...")
20
+ sleep(10)
21
+ self.submit_for_review(token, upload_app, params)
19
22
 
20
- if upload_app && params[:submit_for_review] != false
23
+ end
24
+ # Helper::HuaweiAppgalleryConnectHelper.getAppInfo(token, params[:client_id], params[:app_id])
25
+ end
26
+
27
+ def self.submit_for_review(token, upload_app, params)
28
+ if params[:is_aab] && upload_app["success"] == true && params[:submit_for_review] != false
29
+ compilationStatus = Helper::HuaweiAppgalleryConnectHelper.query_aab_compilation_status(token, params, upload_app["pkgVersion"])
30
+ if compilationStatus == 1
31
+ UI.important("aab file is currently processing, waiting for 2 minutes...")
32
+ sleep(10)
33
+ self.submit_for_review(token, upload_app, params)
34
+ elsif compilationStatus == 2
21
35
  Helper::HuaweiAppgalleryConnectHelper.submit_app_for_review(token, params)
36
+ else
37
+ UI.user_error!("Compilation of aab failed")
22
38
  end
39
+ elsif upload_app["success"] == true && params[:submit_for_review] != false
40
+ Helper::HuaweiAppgalleryConnectHelper.submit_app_for_review(token, params)
23
41
  end
24
- # Helper::HuaweiAppgalleryConnectHelper.getAppInfo(token, params[:client_id], params[:app_id])
25
42
  end
26
43
 
27
44
  def self.description
@@ -57,6 +57,7 @@ module Fastlane
57
57
  request = Net::HTTP::Put.new(uri.request_uri)
58
58
  request["client_id"] = client_id
59
59
  request["Authorization"] = "Bearer #{token}"
60
+ request["Content-Type"] = "application/json"
60
61
 
61
62
  request.body = {privacyPolicy: privacy_policy_url}.to_json
62
63
 
@@ -79,6 +80,10 @@ module Fastlane
79
80
  def self.upload_app(token, client_id, app_id, apk_path, is_aab)
80
81
  UI.message("Fetching upload URL")
81
82
 
83
+ responseData = JSON.parse("{}")
84
+ responseData["success"] = false
85
+ responseData["code"] = 0
86
+
82
87
  if(is_aab)
83
88
  uri = URI.parse("https://connect-api.cloud.huawei.com/api/publish/v2/upload-url?appId=#{app_id}&suffix=aab")
84
89
  upload_filename = "release.aab"
@@ -92,19 +97,22 @@ module Fastlane
92
97
  request = Net::HTTP::Get.new(uri.request_uri)
93
98
  request["client_id"] = client_id
94
99
  request["Authorization"] = "Bearer #{token}"
100
+ request["Content-Type"] = "application/json"
95
101
 
96
102
  response = http.request(request)
97
103
 
98
104
  if !response.kind_of? Net::HTTPSuccess
99
105
  UI.user_error!("Cannot obtain upload url, please check API Token / Permissions (status code: #{response.code})")
100
- return false
106
+ responseData["success"] = false
107
+ return responseData
101
108
  end
102
109
 
103
110
  result_json = JSON.parse(response.body)
104
111
 
105
112
  if result_json['uploadUrl'].nil?
106
113
  UI.user_error!('Cannot obtain upload url')
107
- return false
114
+ responseData["success"] = false
115
+ return responseData
108
116
  else
109
117
  UI.important('Uploading app')
110
118
  # Upload App
@@ -121,7 +129,8 @@ module Fastlane
121
129
  result = http.request(request)
122
130
  if !result.kind_of? Net::HTTPSuccess
123
131
  UI.user_error!("Cannot upload app, please check API Token / Permissions (status code: #{result.code})")
124
- return false
132
+ responseData["success"] = false
133
+ return responseData
125
134
  end
126
135
  result_json = JSON.parse(result.body)
127
136
 
@@ -136,7 +145,7 @@ module Fastlane
136
145
  request = Net::HTTP::Put.new(uri.request_uri)
137
146
  request["client_id"] = client_id
138
147
  request["Authorization"] = "Bearer #{token}"
139
- request['Content-Type'] = "application/json"
148
+ request["Content-Type"] = "application/json"
140
149
 
141
150
  data = {fileType: 5, files: [{
142
151
 
@@ -150,24 +159,57 @@ module Fastlane
150
159
  response = http.request(request)
151
160
  if !response.kind_of? Net::HTTPSuccess
152
161
  UI.user_error!("Cannot save app info, please check API Token / Permissions (status code: #{response.code})")
153
- return false
162
+ responseData["success"] = false
163
+ return responseData
154
164
  end
155
165
  result_json = JSON.parse(response.body)
156
166
 
157
167
  if result_json['ret']['code'] == 0
158
168
  UI.success("App information saved.")
159
- return true
169
+ responseData["success"] = true
170
+ responseData["pkgVersion"] = result_json["pkgVersion"][0]
171
+ return responseData
160
172
  else
161
173
  UI.user_error!(result_json)
162
174
  UI.user_error!("Failed to save app information")
163
- return false
175
+ responseData["success"] = false
176
+ return responseData
164
177
  end
165
178
  else
166
- return false
179
+ responseData["success"] = false
180
+ return responseData
167
181
  end
168
182
  end
169
183
  end
170
184
 
185
+ def self.query_aab_compilation_status(token,params, pkgVersion)
186
+ UI.important("Checking aab compilation status")
187
+
188
+ uri = URI.parse("https://connect-api.cloud.huawei.com/api/publish/v2/aab/complile/status?appId=#{params[:app_id]}&pkgVersion=#{pkgVersion}")
189
+
190
+ http = Net::HTTP.new(uri.host, uri.port)
191
+ http.use_ssl = true
192
+ request = Net::HTTP::Get.new(uri.request_uri)
193
+ request["client_id"] = params[:client_id]
194
+ request["Authorization"] = "Bearer #{token}"
195
+
196
+ response = http.request(request)
197
+
198
+ if !response.kind_of? Net::HTTPSuccess
199
+ UI.user_error!("Cannot query compilation status (status code: #{response.code}, body: #{response.body})")
200
+ return false
201
+ end
202
+
203
+ result_json = JSON.parse(response.body)
204
+
205
+ if result_json['ret']['code'] == 0
206
+ return result_json['aabCompileStatus']
207
+ else
208
+ UI.user_error!(result_json)
209
+ return -999
210
+ end
211
+ end
212
+
171
213
  def self.submit_app_for_review(token, params)
172
214
  UI.important("Submitting app for review")
173
215
 
@@ -211,6 +253,7 @@ module Fastlane
211
253
  request = Net::HTTP::Post.new(uri.request_uri)
212
254
  request["client_id"] = params[:client_id]
213
255
  request["Authorization"] = "Bearer #{token}"
256
+ request["Content-Type"] = "application/json"
214
257
 
215
258
  if params[:phase_wise_release] != nil && params[:phase_wise_release]
216
259
  request.body = {
@@ -221,7 +264,6 @@ module Fastlane
221
264
  }.to_json
222
265
  end
223
266
 
224
-
225
267
  response = http.request(request)
226
268
 
227
269
  if !response.kind_of? Net::HTTPSuccess
@@ -233,6 +275,11 @@ module Fastlane
233
275
 
234
276
  if result_json['ret']['code'] == 0
235
277
  UI.success("Successfully submitted app for review")
278
+ elsif result_json['ret']['code'] == 204144660 && result_json['ret']['msg'].include?("It may take 2-5 minutes")
279
+ UI.important(result_json)
280
+ UI.important("Build is currently processing, waiting for 2 minutes before submitting again...")
281
+ sleep(120)
282
+ self.submit_app_for_review(token, params)
236
283
  else
237
284
  UI.user_error!(result_json)
238
285
  UI.user_error!("Failed to submit app for review.")
@@ -242,4 +289,3 @@ module Fastlane
242
289
  end
243
290
  end
244
291
  end
245
-
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module HuaweiAppgalleryConnect
3
- VERSION = "1.0.13"
3
+ VERSION = "1.0.17"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-huawei_appgallery_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 1.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shreejan Shrestha
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-13 00:00:00.000000000 Z
11
+ date: 2021-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -136,7 +136,7 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: 2.137.0
139
- description:
139
+ description:
140
140
  email: shr3jn@gmail.com
141
141
  executables: []
142
142
  extensions: []
@@ -154,7 +154,7 @@ homepage: https://github.com/shr3jn/fastlane-plugin-huawei_appgallery_connect
154
154
  licenses:
155
155
  - MIT
156
156
  metadata: {}
157
- post_install_message:
157
+ post_install_message:
158
158
  rdoc_options: []
159
159
  require_paths:
160
160
  - lib
@@ -169,8 +169,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  requirements: []
172
- rubygems_version: 3.0.3
173
- signing_key:
172
+ rubygems_version: 3.2.33
173
+ signing_key:
174
174
  specification_version: 4
175
175
  summary: Huawei AppGallery Connect Plugin
176
176
  test_files: []