fir-cli 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +3 -0
- data/README.md +45 -29
- data/fir-cli.gemspec +2 -2
- data/lib/fir/cli.rb +3 -1
- data/lib/fir/util/mapping.rb +12 -6
- data/lib/fir/util/parser.rb +1 -1
- data/lib/fir/version.rb +1 -1
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9aee1888db369ab39529842d3d3ddb39f6e6ad20
|
4
|
+
data.tar.gz: 7c171e7eb00066008f1742154a0ba39ef66fe4cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1373d866a5fb18374e29ae3f0ae8e9e94a73b08d750d310a38c74fd26f961a9e0c8dda7ab491c1f3b1e9ad8bcde4024bf48d12eecc4257ddb4ae8faadabf5d1f
|
7
|
+
data.tar.gz: 46095a637cf33ceab9df0d03452a39fb04efa342e3072a8bed2808f2f745866b9043b2bc30758b500ee05233223df9e15302632c452b09b2f0c30a147e0a4b03
|
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
FIR.im CLI
|
2
2
|
---
|
3
3
|
|
4
|
+
|
4
5
|
![Build Status Images](https://travis-ci.org/FIRHQ/fir-cli.svg)
|
5
6
|
[![Code Climate](https://codeclimate.com/github/FIRHQ/fir-cli/badges/gpa.svg)](https://codeclimate.com/github/FIRHQ/fir-cli)
|
6
7
|
[![Test Coverage](https://codeclimate.com/github/FIRHQ/fir-cli/badges/coverage.svg)](https://codeclimate.com/github/FIRHQ/fir-cli/coverage)
|
7
8
|
[![Gem Version](https://badge.fury.io/rb/fir-cli.svg)](http://badge.fury.io/rb/fir-cli)
|
9
|
+
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/FIRHQ/fir-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
8
10
|
|
9
11
|
> FIR.im CLI 可以通过指令查看, 上传, 编译应用
|
10
12
|
|
@@ -37,18 +39,19 @@ sudo gem install fir-cli
|
|
37
39
|
```shell
|
38
40
|
$ fir
|
39
41
|
Commands:
|
40
|
-
fir
|
42
|
+
fir build_apk BUILD_DIR # Build Android app (alias: 'ba').
|
43
|
+
fir build_ipa BUILD_DIR [options] [settings] # Build iOS app (alias: 'bi').
|
41
44
|
fir help # Describe available commands or one specific command.
|
42
45
|
fir info APP_FILE_PATH # Show iOS/Android app's info, support ipa/apk file (aliases: 'i').
|
43
46
|
fir login # Login FIR.im (aliases: 'l').
|
44
47
|
fir mapping MAPPING_FILE_PATH # Upload app's mapping file to BugHD.com (aliases: 'm').
|
45
|
-
fir me # Show current user info if user is logined
|
48
|
+
fir me # Show current user info if user is logined.
|
46
49
|
fir publish APP_FILE_PATH # Publish iOS/Android app to FIR.im, support ipa/apk file (aliases: 'p').
|
47
50
|
fir upgrade # Upgrade FIR-CLI and quit (aliases: u).
|
48
51
|
fir version # Show FIR-CLI version number and quit (aliases: v)
|
49
52
|
|
50
53
|
Options:
|
51
|
-
-T, [--token=TOKEN] # User's
|
54
|
+
-T, [--token=TOKEN] # User's API Token at FIR.im
|
52
55
|
-L, [--logfile=LOGFILE] # Path to writable logfile
|
53
56
|
-V, [--verbose], [--no-verbose] # Show verbose
|
54
57
|
# Default: true
|
@@ -76,14 +79,15 @@ $ fir p path/to/application -T YOUR_FIR_TOKEN
|
|
76
79
|
如果在此之前, 已经使用 `fir login` 命令登录过, 则可省略 `-T` 参数
|
77
80
|
|
78
81
|
```shell
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
82
|
+
I, [2015-08-26T10:08:35.447209 #6774] INFO -- : Publishing app.......
|
83
|
+
I, [2015-08-26T10:08:35.447334 #6774] INFO -- : ✈ -------------------------------------------- ✈
|
84
|
+
I, [2015-08-26T10:08:35.514378 #6774] INFO -- : Fetching xxxx@FIR.im uploading info......
|
85
|
+
I, [2015-08-26T10:08:35.692616 #6774] INFO -- : Uploading app......
|
86
|
+
I, [2015-08-26T10:08:36.920226 #6774] INFO -- : Updating devices info......
|
87
|
+
I, [2015-08-26T10:08:37.075149 #6774] INFO -- : ✈ -------------------------------------------- ✈
|
88
|
+
I, [2015-08-26T10:08:37.075238 #6774] INFO -- : Fetch app info from FIR.im
|
89
|
+
I, [2015-08-26T10:08:37.235071 #6774] INFO -- : Published succeed: http://fir.im/xxxx
|
90
|
+
I, [2015-08-26T10:08:37.235155 #6774] INFO -- :
|
87
91
|
```
|
88
92
|
|
89
93
|
### 方便一点
|
@@ -97,9 +101,10 @@ $ fir l
|
|
97
101
|
这时系统会提示输入用户 token, 用户 token 可在 **[这里](http://fir.im/user/info)** 查看
|
98
102
|
|
99
103
|
```shell
|
100
|
-
|
101
|
-
|
102
|
-
|
104
|
+
Please enter your FIR.im API Token:
|
105
|
+
I, [2015-08-26T10:10:28.235295 #6833] INFO -- : Login succeed, previous user's email: xxx@xxx.com
|
106
|
+
I, [2015-08-26T10:10:28.245083 #6833] INFO -- : Login succeed, current user's email: xxx@xxx.com
|
107
|
+
I, [2015-08-26T10:10:28.245152 #6833] INFO -- :
|
103
108
|
```
|
104
109
|
|
105
110
|
### 编译并获得 ipa
|
@@ -107,11 +112,14 @@ $ fir l
|
|
107
112
|
|
108
113
|
```
|
109
114
|
$ fir build_ipa path/to/project -o path/to/output
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
+
I, [2015-08-26T10:11:12.105103 #7167] INFO -- : Building......
|
116
|
+
I, [2015-08-26T10:11:12.105175 #7167] INFO -- : ✈ -------------------------------------------- ✈
|
117
|
+
I, [2015-08-26T10:11:18.500887 #7167] INFO -- : Build settings from command line:
|
118
|
+
|
119
|
+
..........
|
120
|
+
|
121
|
+
I, [2015-08-26T10:11:18.535498 #7167] INFO -- : Build Success
|
122
|
+
I, [2015-08-26T10:11:18.535704 #7167] INFO -- :
|
115
123
|
```
|
116
124
|
|
117
125
|
### 复杂一点
|
@@ -139,16 +147,24 @@ $ fir ba path/to/project
|
|
139
147
|
|
140
148
|
```shell
|
141
149
|
$ fir build_ipa path/to/project -o path/to/output -p -T YOUR_FIR_TOKEN
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
150
|
+
I, [2015-08-26T10:11:59.687221 #7273] INFO -- : Building......
|
151
|
+
I, [2015-08-26T10:11:59.687301 #7273] INFO -- : ✈ -------------------------------------------- ✈
|
152
|
+
I, [2015-08-26T10:12:00.868774 #7273] INFO -- : Build settings from command line:
|
153
|
+
|
154
|
+
..........
|
155
|
+
|
156
|
+
I, [2015-08-26T10:12:00.893819 #7273] INFO -- : Build Success
|
157
|
+
I, [2015-08-26T10:12:00.894051 #7273] INFO -- :
|
158
|
+
I, [2015-08-26T10:12:01.026832 #7273] INFO -- : Publishing app.......
|
159
|
+
I, [2015-08-26T10:12:01.026905 #7273] INFO -- : ✈ -------------------------------------------- ✈
|
160
|
+
I, [2015-08-26T10:12:01.098759 #7273] INFO -- : Fetching im.fir.OnlyiPad@FIR.im uploading info......
|
161
|
+
I, [2015-08-26T10:12:01.249832 #7273] INFO -- : Uploading app......
|
162
|
+
I, [2015-08-26T10:12:01.859718 #7273] INFO -- : Updating devices info......
|
163
|
+
I, [2015-08-26T10:12:02.015517 #7273] INFO -- : ✈ -------------------------------------------- ✈
|
164
|
+
I, [2015-08-26T10:12:02.015588 #7273] INFO -- : Fetch app info from FIR.im
|
165
|
+
I, [2015-08-26T10:12:02.210391 #7273] INFO -- : Published succeed: http://fir.im/xxxx
|
166
|
+
I, [2015-08-26T10:12:02.210459 #7273] INFO -- :
|
167
|
+
I, [2015-08-26T10:12:02.210520 #7273] INFO -- :
|
152
168
|
```
|
153
169
|
|
154
170
|
### 上传符号表
|
data/fir-cli.gemspec
CHANGED
@@ -28,12 +28,12 @@ Gem::Specification.new do |spec|
|
|
28
28
|
/_/ /___/_/ |_| \____/_____/___/
|
29
29
|
|
30
30
|
## 更新记录
|
31
|
-
### FIR-CLI 1.2.
|
31
|
+
### FIR-CLI 1.2.1
|
32
32
|
- 完全兼容新版 API ✔
|
33
33
|
- 请使用新版 API Token
|
34
34
|
- 新版 API Token 查看地址: `http://fir.im/user/info`
|
35
35
|
- 增加符号表上传指令, `fir mapping(alias m)`
|
36
|
-
- 有以下三种方式上传符号表(目前已经支持 dSYM
|
36
|
+
- 有以下三种方式上传符号表(目前已经支持 dSYM 和 txt 两种格式的符号表文件上传, 并自动处理大文件压缩)
|
37
37
|
- 1. 指定 version 和 build 上传: `fir m <mapping file path> -P <bughd project id> -v <app version> -b <app build> -T <your api token>`
|
38
38
|
- 2. 在 publish 的时候自动上传: `fir p <app file path> -m <mapping file path> -P <bughd project id> -T <your api token>`
|
39
39
|
- 3. 在 build_ipa 的时候自动上传: `fir b <project dir> -P <bughd project id> -M -p -T <your api token>`
|
data/lib/fir/cli.rb
CHANGED
@@ -27,7 +27,7 @@ module FIR
|
|
27
27
|
method_option :scheme, type: :string, aliases: "-S", desc: "Set the scheme NAME if build workspace"
|
28
28
|
method_option :configuration, type: :string, aliases: "-C", desc: "Use the build configuration NAME for building each target"
|
29
29
|
method_option :target, type: :string, aliases: "-t", desc: "Build the target specified by targetname"
|
30
|
-
method_option :output, type: :string, aliases: "-o", desc: "IPA output path, the default is: BUILD_DIR/
|
30
|
+
method_option :output, type: :string, aliases: "-o", desc: "IPA output path, the default is: BUILD_DIR/fir_build_ipa"
|
31
31
|
method_option :name, type: :string, aliases: "-n", desc: "IPA name, the default is: YOUR PROJECT NAME"
|
32
32
|
method_option :publish, type: :boolean, aliases: "-p", desc: "true/false if publish to FIR.im"
|
33
33
|
method_option :short, type: :string, aliases: "-s", desc: "Set custom short link if publish to FIR.im"
|
@@ -129,6 +129,7 @@ module FIR
|
|
129
129
|
map "u" => :upgrade
|
130
130
|
def upgrade
|
131
131
|
prepare :upgrade
|
132
|
+
|
132
133
|
say "✈ Upgrade FIR-CLI (use `gem install fir-cli --no-ri --no-rdoc`)"
|
133
134
|
say `gem install fir-cli --no-ri --no-rdoc`
|
134
135
|
end
|
@@ -149,6 +150,7 @@ module FIR
|
|
149
150
|
def invoke_command command, *args
|
150
151
|
logfile = options[:logfile].blank? ? STDOUT : options[:logfile]
|
151
152
|
logfile = '/dev/null' if options[:quiet]
|
153
|
+
|
152
154
|
FIR.logger = Logger.new(logfile)
|
153
155
|
FIR.logger.level = options[:verbose] ? Logger::INFO : Logger::ERROR
|
154
156
|
super
|
data/lib/fir/util/mapping.rb
CHANGED
@@ -34,7 +34,7 @@ module FIR
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def upload_mapping_file
|
37
|
-
tmp_file_path =
|
37
|
+
tmp_file_path = generate_temp_mapping_file
|
38
38
|
|
39
39
|
url = bughd_api[:full_version_url] + "/#{@full_version[:id]}"
|
40
40
|
patch url, file: File.new(tmp_file_path, 'rb'), project_id: @proj, uuid: uuid
|
@@ -53,24 +53,30 @@ module FIR
|
|
53
53
|
@uuid ||= fetch_user_uuid(@token)
|
54
54
|
end
|
55
55
|
|
56
|
-
def
|
56
|
+
def generate_temp_mapping_file
|
57
57
|
tmp_file_path = "#{Dir.tmpdir}/#{File.basename(@file_path)}-fircli"
|
58
58
|
FileUtils.cp(@file_path, tmp_file_path)
|
59
59
|
|
60
|
-
|
60
|
+
tmp_file_path = zip_mapping_file(tmp_file_path)
|
61
|
+
tmp_file_path = dsym_or_txt_file(tmp_file_path)
|
61
62
|
|
62
|
-
|
63
|
+
tmp_file_path
|
64
|
+
end
|
63
65
|
|
64
|
-
|
66
|
+
def zip_mapping_file tmp_file_path
|
67
|
+
if File.size?(tmp_file_path) > 50*1000*1000
|
65
68
|
logger.info "Zipping mapping file......."
|
66
69
|
|
67
70
|
system("zip -qr #{tmp_file_path}.zip #{tmp_file_path}")
|
68
|
-
|
69
71
|
tmp_file_path = tmp_file_path + '.zip'
|
70
72
|
|
71
73
|
logger.info "Zipped Mapping file size - #{File.size?(tmp_file_path)}"
|
72
74
|
end
|
73
75
|
|
76
|
+
tmp_file_path
|
77
|
+
end
|
78
|
+
|
79
|
+
def dsym_or_txt_file tmp_file_path
|
74
80
|
if File.is_dsym?(@file_path)
|
75
81
|
FileUtils.mv(tmp_file_path, tmp_file_path + '.dSYM')
|
76
82
|
tmp_file_path = tmp_file_path + '.dSYM'
|
data/lib/fir/util/parser.rb
CHANGED
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.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- FIR.im
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-08-
|
12
|
+
date: 2015-08-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -181,15 +181,15 @@ metadata: {}
|
|
181
181
|
post_install_message: "\n ______________ ________ ____\n /
|
182
182
|
____/ _/ __ \\ / ____/ / / _/\n / /_ / // /_/ /_____/ / / / /
|
183
183
|
/\n / __/ _/ // _, _/_____/ /___/ /____/ /\n /_/ /___/_/ |_| \\____/_____/___/\n\n
|
184
|
-
\ ## 更新记录\n ### FIR-CLI 1.2.
|
184
|
+
\ ## 更新记录\n ### FIR-CLI 1.2.1\n - 完全兼容新版 API ✔\n - 请使用新版 API Token\n - 新版 API
|
185
185
|
Token 查看地址: `http://fir.im/user/info`\n - 增加符号表上传指令, `fir mapping(alias m)`\n -
|
186
|
-
有以下三种方式上传符号表(目前已经支持 dSYM
|
187
|
-
`fir m <mapping file path> -P <bughd project id> -v <app version> -b <app
|
188
|
-
-T <your api token>`\n - 2. 在 publish 的时候自动上传: `fir p <app file path>
|
189
|
-
file path> -P <bughd project id> -T <your api token>`\n - 3. 在 build_ipa
|
190
|
-
`fir b <project dir> -P <bughd project id> -M -p -T <your api token>`\n
|
191
|
-
打包 apk 文件并自动上传至 fir.im, `fir build_apk(alias ba)`\n - `fir ba <project
|
192
|
-
<apk output dir> -c <changelog> -p -T <your api token>]`\n - [fir-cli](https://github.com/FIRHQ/fir-cli)
|
186
|
+
有以下三种方式上传符号表(目前已经支持 dSYM 和 txt 两种格式的符号表文件上传, 并自动处理大文件压缩)\n - 1. 指定 version 和
|
187
|
+
build 上传: `fir m <mapping file path> -P <bughd project id> -v <app version> -b <app
|
188
|
+
build> -T <your api token>`\n - 2. 在 publish 的时候自动上传: `fir p <app file path>
|
189
|
+
-m <mapping file path> -P <bughd project id> -T <your api token>`\n - 3. 在 build_ipa
|
190
|
+
的时候自动上传: `fir b <project dir> -P <bughd project id> -M -p -T <your api token>`\n
|
191
|
+
\ - 支持 gradle 打包 apk 文件并自动上传至 fir.im, `fir build_apk(alias ba)`\n - `fir ba <project
|
192
|
+
dir> [-o <apk output dir> -c <changelog> -p -T <your api token>]`\n - [fir-cli](https://github.com/FIRHQ/fir-cli)
|
193
193
|
已经开源, 欢迎 fork, issue 和 pull request\n "
|
194
194
|
rdoc_options: []
|
195
195
|
require_paths:
|