fir-cli 1.7.2 → 1.7.3
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 +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
|