fir-cli 1.7.2 → 1.7.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -5
- data/README.md +8 -1
- data/fir-cli.gemspec +2 -1
- data/lib/fir/cli.rb +5 -1
- data/lib/fir/util/publish.rb +38 -12
- data/lib/fir/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1f3a7635a80250efec2d4872867ac839b285fd92407b445e012a391a34aaaba
|
4
|
+
data.tar.gz: e87c109e31952cc513fce2090ad380e9bdfc3856894529bf7c79e08158904542
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c01a2a16617b05c2394b001fc992dad32ea0c65b533cc7e8eac75e70f443be1f540ade44c97a0c6218384fed6bf335cff3b07e1baa118c3261fe76f734fa9207
|
7
|
+
data.tar.gz: d365066ff94a38ebcce9750f4d1af4754c0ff4e5501daa31ffc85edbc46cda6bad1c859f2e931e56cd7ababffc0266b25a17774515700ded348351c1f3d21203
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -14,8 +14,11 @@ fir.im-cli 可以通过指令查看, 上传, iOS/Android 应用.
|
|
14
14
|
|
15
15
|
|
16
16
|
# 最近更新
|
17
|
+
- publish 支持 新参数 force_pin_history, 可以 将上传的版本, 固定在下载页面上(当大于最大固定版本数后, 会挤掉最老的固定版本)
|
18
|
+
- publish 支持 新参数 specify_icon_file_path, 可以直接指定 app 的 icon 图标文件
|
19
|
+
- publish 支持 新参数 skip_update_icon, 可以略过更新app图标
|
17
20
|
- 官方支持 钉钉推送, 使用方法为 在publish 中增加 --dingtalk_access_token=xxxxxxxxxxxxxxxxxxx (或者 -D=xxxxxxx) [2019年05月06日]
|
18
|
-
- 官方支持 上传完毕后, 返回精确的版本的下载地址, 使用方案为 在 publish 后增加 --need_release_id (特定版本支持近期30
|
21
|
+
- 官方支持 上传完毕后, 返回精确的版本的下载地址, 使用方案为 在 publish 后增加 --need_release_id (特定版本支持近期30个以内的任意版本. 如有更多历史版本需要回溯, 可向线上客服或者 微信 atpking 进行申请特殊处理某app, 我们会根据使用情况酌情增加) [2019年05月06日]
|
19
22
|
- 已过期 build_ipa 功能, 推荐用户使用 fastlane (fastlane gym)进行打包,生成好 ipa 文件后,再使用 `fir publish` 上传生成的ipa [2019年03月21日]
|
20
23
|
- 由于部分地区上传时遇到的证书问题, 新版本默认忽略证书校验. 如需打开, 请在命令前加入`UPLOAD_VERIFY_SSL=1`
|
21
24
|
- 现已添加 docker 版本, 具体请见 `Docker 运行 fir-cli ` 说明
|
@@ -61,3 +64,7 @@ fir help
|
|
61
64
|
|
62
65
|
- 使用 Github 的 [Issue](https://github.com/FIRHQ/fir-cli/issues)
|
63
66
|
|
67
|
+
## 特别感谢
|
68
|
+
|
69
|
+
- 感谢 sparkrico 提供修正的 https://github.com/sparkrico/ruby_apk 解决了 android 解析的问题
|
70
|
+
|
data/fir-cli.gemspec
CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
/_/ /___/_/ |_| \____/_____/___/
|
28
28
|
|
29
29
|
## 更新记录
|
30
|
+
- (1.7.3) 新增了 上传指定图标, 不上传图标 以及 将版本固定显示在下载页上
|
30
31
|
- (1.7.2) 修正了无论是否加参数都固定出现二维码图片的bug
|
31
32
|
- (1.7.1) 增加了 钉钉推送 , 增加了返回指定版本下载地址
|
32
33
|
- (1.7.0) 过期了ipa_build 功能, 增加了对 android manifest instant run 的兼容
|
@@ -44,7 +45,7 @@ Gem::Specification.new do |spec|
|
|
44
45
|
|
45
46
|
spec.add_dependency 'thor', '~> 0.19'
|
46
47
|
spec.add_dependency 'rest-client', '~> 2.0'
|
47
|
-
spec.add_dependency '
|
48
|
+
spec.add_dependency 'ruby_android_apk', '~> 0.7.7.1'
|
48
49
|
spec.add_dependency 'rqrcode', '~> 0.7'
|
49
50
|
spec.add_dependency 'CFPropertyList'
|
50
51
|
spec.add_dependency 'api_tools', '~> 0.1.0'
|
data/lib/fir/cli.rb
CHANGED
@@ -109,6 +109,10 @@ module FIR
|
|
109
109
|
method_option :qrcode, type: :boolean, aliases: '-Q', desc: 'Generate qrcode'
|
110
110
|
method_option :need_release_id, type: :boolean, aliases: '-R', desc: 'Add release id with fir url (WARNING: FIR ONLY SAVED 30 releases recently per app'
|
111
111
|
|
112
|
+
method_option :force_pin_history, type: :boolean, default: false, desc: 'pin this release to the download page by force'
|
113
|
+
method_option :skip_update_icon, type: :boolean, default: false, desc: 'skip update app icon'
|
114
|
+
method_option :specify_icon_file, type: :string, desc: 'specify icon file'
|
115
|
+
|
112
116
|
method_option :mappingfile, type: :string, aliases: '-m', desc: 'App mapping file'
|
113
117
|
method_option :dingtalk_access_token, type: :string, aliases: '-D', desc: 'Send msg to dingtalk, only need access_token, not whole url'
|
114
118
|
|
@@ -163,7 +167,7 @@ module FIR
|
|
163
167
|
logfile = '/dev/null' if options[:quiet]
|
164
168
|
|
165
169
|
FIR.logger = Logger.new(logfile)
|
166
|
-
FIR.logger.level = options[:verbose] ? Logger::
|
170
|
+
FIR.logger.level = options[:verbose] ? Logger::DEBUG : Logger::ERROR
|
167
171
|
super
|
168
172
|
end
|
169
173
|
end
|
data/lib/fir/util/publish.rb
CHANGED
@@ -3,22 +3,25 @@ module FIR
|
|
3
3
|
module Publish
|
4
4
|
def publish(*args, options)
|
5
5
|
initialize_publish_options(args, options)
|
6
|
+
@options = options
|
6
7
|
check_supported_file_and_token
|
7
8
|
|
8
9
|
logger_info_publishing_message
|
9
10
|
|
10
11
|
@app_info = send("#{@file_type}_info", @file_path, full_info: true)
|
11
|
-
@user_info
|
12
|
+
@user_info = fetch_user_info(@token)
|
12
13
|
@uploading_info = fetch_uploading_info
|
13
|
-
@app_id
|
14
|
+
@app_id = @uploading_info[:id]
|
14
15
|
|
16
|
+
logger.info "begin to upload ..."
|
15
17
|
upload_app
|
18
|
+
logger.info "end upload "
|
16
19
|
|
17
20
|
logger_info_dividing_line
|
18
|
-
logger_info_app_short_and_qrcode
|
21
|
+
logger_info_app_short_and_qrcode
|
19
22
|
|
20
|
-
dingtalk_notifier
|
21
|
-
upload_mapping_file_with_publish
|
23
|
+
dingtalk_notifier
|
24
|
+
upload_mapping_file_with_publish
|
22
25
|
logger_info_blank_line
|
23
26
|
clean_files
|
24
27
|
end
|
@@ -34,11 +37,20 @@ module FIR
|
|
34
37
|
end
|
35
38
|
|
36
39
|
def upload_app
|
40
|
+
|
37
41
|
@icon_cert = @uploading_info[:cert][:icon]
|
38
42
|
@binary_cert = @uploading_info[:cert][:binary]
|
39
|
-
|
40
|
-
upload_app_icon unless @
|
43
|
+
logger.debug "in upload app begin to upload icon"
|
44
|
+
upload_app_icon unless @skip_update_icon
|
45
|
+
logger.debug "in upload icon finished"
|
46
|
+
|
47
|
+
logger.debug "in upload app begin to upload binary"
|
41
48
|
@app_uploaded_callback_data = upload_app_binary
|
49
|
+
logger.debug "in upload binary"
|
50
|
+
@release_id = @app_uploaded_callback_data[:release_id]
|
51
|
+
|
52
|
+
force_pin_release if @force_pin_history
|
53
|
+
|
42
54
|
logger.info "App id is #{@app_id}"
|
43
55
|
logger.info "Release id is #{@app_uploaded_callback_data[:release_id]}"
|
44
56
|
upload_device_info
|
@@ -62,14 +74,14 @@ module FIR
|
|
62
74
|
uploaded_info = post(url, info.merge(manual_callback: true),
|
63
75
|
params_to_json: false,
|
64
76
|
header: nil)
|
65
|
-
rescue StandardError
|
77
|
+
rescue StandardError => e
|
66
78
|
logger.error "Uploading app #{postfix} failed"
|
67
79
|
exit 1
|
68
80
|
end
|
69
81
|
|
70
82
|
def uploading_icon_info
|
71
83
|
large_icon_path = @app_info[:icons].max_by { |f| File.size(f) }
|
72
|
-
@uncrushed_icon_path = convert_icon(large_icon_path)
|
84
|
+
@uncrushed_icon_path = @specify_icon_file_path || convert_icon(large_icon_path)
|
73
85
|
{
|
74
86
|
key: @icon_cert[:key],
|
75
87
|
token: @icon_cert[:token],
|
@@ -149,6 +161,7 @@ module FIR
|
|
149
161
|
|
150
162
|
post fir_api[:app_url], type: @app_info[:type],
|
151
163
|
bundle_id: @app_info[:identifier],
|
164
|
+
skip_icon_upload: @options[:skip_update_icon],
|
152
165
|
manual_callback: true,
|
153
166
|
api_token: @token
|
154
167
|
end
|
@@ -165,7 +178,7 @@ module FIR
|
|
165
178
|
@fir_app_info
|
166
179
|
end
|
167
180
|
|
168
|
-
def upload_mapping_file_with_publish
|
181
|
+
def upload_mapping_file_with_publish
|
169
182
|
return if !options[:mappingfile] || !options[:proj]
|
170
183
|
|
171
184
|
logger_info_blank_line
|
@@ -176,7 +189,7 @@ module FIR
|
|
176
189
|
token: @token
|
177
190
|
end
|
178
191
|
|
179
|
-
def logger_info_app_short_and_qrcode
|
192
|
+
def logger_info_app_short_and_qrcode
|
180
193
|
@download_url = "#{fir_api[:domain]}/#{@fir_app_info[:short]}"
|
181
194
|
@download_url += "?release_id=#{@app_uploaded_callback_data[:release_id]}" if !!options[:need_release_id]
|
182
195
|
|
@@ -190,11 +203,20 @@ module FIR
|
|
190
203
|
|
191
204
|
private
|
192
205
|
|
206
|
+
def options
|
207
|
+
@options
|
208
|
+
end
|
209
|
+
|
210
|
+
def force_pin_release
|
211
|
+
post "#{fir_api[:base_url]}/apps/#{@app_id}/releases/#{@release_id}/force_set_history",
|
212
|
+
api_token: @token
|
213
|
+
end
|
214
|
+
|
193
215
|
def clean_files
|
194
216
|
File.delete(@qrcode_path) unless @export_qrcode
|
195
217
|
end
|
196
218
|
|
197
|
-
def dingtalk_notifier
|
219
|
+
def dingtalk_notifier
|
198
220
|
if options[:dingtalk_access_token]
|
199
221
|
title = "#{@app_info[:name]}-#{@app_info[:version]}(Build #{@app_info[:build]})"
|
200
222
|
payload = {
|
@@ -220,6 +242,10 @@ module FIR
|
|
220
242
|
@passwd = options[:password].to_s
|
221
243
|
@is_opened = @passwd.blank? ? options[:open] : false
|
222
244
|
@export_qrcode = !!options[:qrcode]
|
245
|
+
|
246
|
+
@force_pin_history = options[:force_pin_history]
|
247
|
+
@skip_update_icon = options[:skip_update_icon]
|
248
|
+
@specify_icon_file_path = File.absolute_path(options[:specify_icon_file]) unless options[:specify_icon_file].blank?
|
223
249
|
end
|
224
250
|
|
225
251
|
def read_changelog(changelog)
|
data/lib/fir/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fir-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NaixSpirit
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-11-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -96,19 +96,19 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '2.0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: ruby_android_apk
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.7.7
|
104
|
+
version: 0.7.7.1
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0.7.7
|
111
|
+
version: 0.7.7.1
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: rqrcode
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,11 +234,11 @@ metadata: {}
|
|
234
234
|
post_install_message: "\n ______________ ________ ____\n /
|
235
235
|
____/ _/ __ \\ / ____/ / / _/\n / /_ / // /_/ /_____/ / / / /
|
236
236
|
/\n / __/ _/ // _, _/_____/ /___/ /____/ /\n /_/ /___/_/ |_| \\____/_____/___/\n\n
|
237
|
-
\ ## 更新记录\n - (1.7.
|
238
|
-
\ - (1.7.
|
239
|
-
|
240
|
-
|
241
|
-
request\n "
|
237
|
+
\ ## 更新记录\n - (1.7.3) 新增了 上传指定图标, 不上传图标 以及 将版本固定显示在下载页上\n - (1.7.2) 修正了无论是否加参数都固定出现二维码图片的bug\n
|
238
|
+
\ - (1.7.1) 增加了 钉钉推送 , 增加了返回指定版本下载地址\n - (1.7.0) 过期了ipa_build 功能, 增加了对 android
|
239
|
+
manifest instant run 的兼容\n - (1.6.13) 上传图标逻辑修改\n - (1.6.12) 修复了部分机器没有默认安装 byebug
|
240
|
+
的问题\n - (1.6.11) 变化了 ruby gem 仓库地址\n - [fir-cli](https://github.com/firhq/fir-cli)
|
241
|
+
已经开源\n - 欢迎 fork, issue 和 pull request\n "
|
242
242
|
rdoc_options: []
|
243
243
|
require_paths:
|
244
244
|
- lib
|
@@ -253,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
253
253
|
- !ruby/object:Gem::Version
|
254
254
|
version: '0'
|
255
255
|
requirements: []
|
256
|
-
rubygems_version: 3.0.
|
256
|
+
rubygems_version: 3.0.3
|
257
257
|
signing_key:
|
258
258
|
specification_version: 4
|
259
259
|
summary: fir.im command tool
|