fastlane-plugin-rustore 0.2.0 → 0.3.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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd8b75fbb201a3400db901e3d014e10697c12308b5c250fbc669d867181c1311
|
4
|
+
data.tar.gz: 2f5bbe7b9a5f5ab02531c81d47cbf7051eddbae7a338d747bc7befd204a0139a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e2a1c5340c7c3a46aec090debc74b102123edc74cdb3b3222953cf82c29fa63e2dccf3f39571ec6d9186ad98dc220e34d2b9b0660eb2a6d8a8dc40b7788edf0
|
7
|
+
data.tar.gz: 10c5a5490ea0affce79e930e96c9e2de43fa5112c2768fe608a05140ee59054e3d584bba9b89a8f52ac3630647d33905c12fd1717bfea6ef21c8cdb6214d3ae5
|
data/README.md
CHANGED
@@ -7,6 +7,8 @@
|
|
7
7
|
|
8
8
|
Пока что реализован базовый функционал с заливкой апк. Скриншоты, описание и прочие материалы наследуются от предыдущего релиза. Обработки ошибок нет. Если у вас уже есть черновик релиза, то скорей всего ничего не заработает. Черновик, созданный через апи, в админке отображаться не будет. Если случилась ошибка где-то на этапе заливки, то останется черновик, который будет мешать следующему запуску скрипта, удалить его лучше с помощью [питонскрипта](https://github.com/stfbee/python-rustore-api), а экшен удаления тут будет чуть позже.
|
9
9
|
|
10
|
+
Также есть признаки того, что заливать апк из вне РФ больше нельзя (смотри [#2](https://github.com/stfbee/fastlane-plugin-rustore/issues/2)), так что выбирайте раннер, где будет запускаться скрипт.
|
11
|
+
|
10
12
|
## Поехали
|
11
13
|
|
12
14
|
Для начала добавь плагин в ваш fastlane проект:
|
@@ -20,7 +22,7 @@ fastlane add_plugin rustore
|
|
20
22
|
hms_apk: "../../app-release-hms.apk",
|
21
23
|
package_name: "com.example.example",
|
22
24
|
publish_type: "MANUAL"
|
23
|
-
|
25
|
+
key_id: "123123",
|
24
26
|
private_key: "MIIE....."
|
25
27
|
)
|
26
28
|
```
|
@@ -29,7 +31,7 @@ fastlane add_plugin rustore
|
|
29
31
|
* `hms_apk` - путь до .apk с Huawei-сервисами (опционально). У Рустора пока все плохо с документацией об этом, но залить его можно, что получится - пока хз.
|
30
32
|
* `package_name` - название пакета
|
31
33
|
* `publish_type` - тип публикации (MANUAL - ручная, DELAYED - отложенная, INSTANTLY - автоматическая после модерации). По умолчанию - INSTANTLY.
|
32
|
-
* `
|
34
|
+
* `key_id` и `private_key` надо взять в админке рустора, доступ к ним имеет только оунер.
|
33
35
|
|
34
36
|
## Ссылочки
|
35
37
|
* [_fastlane_](https://github.com/fastlane/fastlane)
|
@@ -14,14 +14,14 @@ module Fastlane
|
|
14
14
|
|
15
15
|
def self.run(params)
|
16
16
|
package_name = params[:package_name]
|
17
|
-
|
17
|
+
key_id = params[:key_id]
|
18
18
|
private_key = params[:private_key]
|
19
19
|
publish_type = params[:publish_type]
|
20
20
|
gms_apk = params[:gms_apk]
|
21
21
|
hms_apk = params[:hms_apk]
|
22
22
|
|
23
23
|
# Получение токена
|
24
|
-
token = Helper::RustoreHelper.get_token(
|
24
|
+
token = Helper::RustoreHelper.get_token(key_id: key_id, private_key: private_key)
|
25
25
|
# Создание черновика
|
26
26
|
draft_id = Helper::RustoreHelper.create_draft(token, package_name, publish_type)
|
27
27
|
# Загрузка апк
|
@@ -41,9 +41,9 @@ module Fastlane
|
|
41
41
|
env_name: "RUSTORE_PACKAGE_NAME",
|
42
42
|
description: "пакет приложения, например `com.example.example`",
|
43
43
|
optional: false),
|
44
|
-
FastlaneCore::ConfigItem.new(key: :
|
45
|
-
env_name: "
|
46
|
-
description: "
|
44
|
+
FastlaneCore::ConfigItem.new(key: :key_id,
|
45
|
+
env_name: "RUSTORE_KEY_ID",
|
46
|
+
description: "идентификатор приватного ключа в русторе",
|
47
47
|
optional: false),
|
48
48
|
FastlaneCore::ConfigItem.new(key: :private_key,
|
49
49
|
env_name: "RUSTORE_PRIVATE_KEY",
|
@@ -29,18 +29,18 @@ module Fastlane
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
def self.rsa_sign(timestamp,
|
32
|
+
def self.rsa_sign(timestamp, key_id, private_key)
|
33
33
|
key = OpenSSL::PKey::RSA.new("-----BEGIN RSA PRIVATE KEY-----\n#{private_key}\n-----END RSA PRIVATE KEY-----")
|
34
|
-
signature = key.sign(OpenSSL::Digest.new('SHA512'),
|
34
|
+
signature = key.sign(OpenSSL::Digest.new('SHA512'), key_id + timestamp)
|
35
35
|
Base64.encode64(signature)
|
36
36
|
end
|
37
37
|
|
38
|
-
def self.get_token(
|
38
|
+
def self.get_token(key_id:, private_key:)
|
39
39
|
timestamp = DateTime.now.iso8601(3)
|
40
|
-
signature = rsa_sign(timestamp,
|
40
|
+
signature = rsa_sign(timestamp, key_id, private_key)
|
41
41
|
url = "/public/auth/"
|
42
42
|
response = connection.post(url) do |req|
|
43
|
-
req.body = {
|
43
|
+
req.body = { keyId: key_id, timestamp: timestamp, signature: signature }
|
44
44
|
end
|
45
45
|
|
46
46
|
UI.message("Debug: response #{response.body}") if ENV['DEBUG']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-rustore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladislav Onishchenko
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,7 +150,7 @@ dependencies:
|
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
-
description:
|
153
|
+
description:
|
154
154
|
email: pinkey.950@gmail.com
|
155
155
|
executables: []
|
156
156
|
extensions: []
|
@@ -166,7 +166,7 @@ homepage: https://github.com/stfbee/fastlane-plugin-rustore
|
|
166
166
|
licenses:
|
167
167
|
- MIT
|
168
168
|
metadata: {}
|
169
|
-
post_install_message:
|
169
|
+
post_install_message:
|
170
170
|
rdoc_options: []
|
171
171
|
require_paths:
|
172
172
|
- lib
|
@@ -181,8 +181,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '0'
|
183
183
|
requirements: []
|
184
|
-
rubygems_version: 3.
|
185
|
-
signing_key:
|
184
|
+
rubygems_version: 3.5.16
|
185
|
+
signing_key:
|
186
186
|
specification_version: 4
|
187
187
|
summary: Rustore fastlane integration plugin
|
188
188
|
test_files: []
|