fir-cli 0.2.1.a → 0.2.1.b
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/Gemfile.lock +1 -1
- data/README.md +106 -89
- data/lib/fir-cli/version.rb +1 -1
- data/lib/fir-cli-commands/01-config.rb +1 -0
- data/lib/fir-cli-commands/100-resign_codesign.rb +0 -7
- data/lib/fir-cli-commands/100-resign_tapbeta.rb +2 -0
- data/lib/fir-cli.opt.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ced444d1d4238db14de526c4101ed3d248ab0bb2
|
|
4
|
+
data.tar.gz: 5189c9c787bc6a0abc30c6b564951ded82e6c6d3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e9a2446a12c7ad73291f4b68a0ee0929649d1c4682b4d1af60b6729bd4b19f84e09f709965d5300679ccac698bacd9f1a3706e696e15ac58eca289420f510f21
|
|
7
|
+
data.tar.gz: bf7c3905187947a075c14203f8193591f20e2d580ee144f6810ef763d70b81447a5f3d52db24ce119f93327d0ed9cc16af6d84492fbf1ba6bf346455b46056b3
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -2,94 +2,49 @@ FIR.im CLI
|
|
|
2
2
|
---
|
|
3
3
|
> FIR.im CLI 可以通过指令查看、上传、编译应用,同时还集成了第三方网站 [resign.tapbeta.com](http://resign.tapbeta.com) 进行企业签名以方便 inhouse 测试。
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
> 正在打包 app: demo.app 到 path/to/output/demo.ipa
|
|
15
|
-
> 完成
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
### 复杂一点
|
|
19
|
-
```
|
|
20
|
-
$ fir build_ipa path/to/workspace -o path/to/output -w -C Release -s allTargets GCC_PREPROCESSOR_DEFINITIONS="FOO=bar"
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
该指令在指向的目录中,找到第一个 workspace 文件,对其进行编译。使用 `Release` 设置,编译策略为 `allTargets`,同时设置了预编译参数 `FOO`。
|
|
24
|
-
|
|
25
|
-
### 一步,从源代码到 FIR.im
|
|
26
|
-
> 只需要多输入一个 -p
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
$ fir build_ipa path/to/project -p
|
|
30
|
-
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
|
31
|
-
> 正在编译
|
|
32
|
-
> 正在打包 app: demo.app 到 /var/folders/z7/7_cp03nx0535g0cd6ynfmxt80000gn/T/d20141218-13295-1oe0zlm/demo.ipa
|
|
33
|
-
> 完成
|
|
34
|
-
> 正在发布 demo.ipa
|
|
35
|
-
> 正在解析 ipa 文件...
|
|
36
|
-
> 正在获取 im.fir.demo@FIR.im 的应用信息...
|
|
37
|
-
> 上传应用...
|
|
38
|
-
> 上传应用成功
|
|
39
|
-
> 正在更新 fir 的应用信息...
|
|
40
|
-
> 更新成功
|
|
41
|
-
> 正在更新 fir 的应用版本信息...
|
|
42
|
-
> 更新成功
|
|
43
|
-
> 正在获取 im.fir.demo@FIR.im 的应用信息...
|
|
44
|
-
> http://fir.im/xxxx
|
|
45
|
-
```
|
|
5
|
+
## Changelog
|
|
6
|
+
### FIR-cli 0.1.8
|
|
7
|
+
- 支持 ruby 1.9.x
|
|
8
|
+
- 规范输出参数选项,支持无颜色信息输出
|
|
9
|
+
-`--verbose=v|vv|vvv`:设置输出级别
|
|
10
|
+
-`--quiet` 与 `--no-quiet`:设置是否不输出辅助信息
|
|
11
|
+
-`--color` 与 `--no-color`:设置输出是否携带颜色信息
|
|
12
|
+
- 修复 ipa 应用图标不清晰问题
|
|
13
|
+
- 增加切换配置文件功能:使用此功能可以在多个用户中切换使用
|
|
46
14
|
|
|
47
|
-
##
|
|
15
|
+
## 使用说明
|
|
48
16
|
### 从安装入手
|
|
49
|
-
|
|
50
17
|
FIR.im CLI 使用 ruby 构建,只要安装相应 ruby gem 即可:
|
|
51
|
-
|
|
52
18
|
```shell
|
|
53
19
|
$ sudo gem install fir-cli
|
|
54
20
|
```
|
|
55
|
-
|
|
56
21
|
安装后,你可以在命令行执行指令
|
|
57
|
-
|
|
58
22
|
```shell
|
|
59
23
|
$ fir
|
|
60
24
|
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
|
61
25
|
Commands:
|
|
62
|
-
fir
|
|
63
|
-
fir
|
|
64
|
-
fir
|
|
65
|
-
fir
|
|
66
|
-
fir
|
|
67
|
-
fir
|
|
68
|
-
fir
|
|
69
|
-
fir resign IPA_FILE_PATH OUTPUT_PATH # 使用 resign.tapbeta.com 进行企业签名
|
|
70
|
-
fir upgrade # 更新 fir-cli 的所有组件
|
|
71
|
-
fir version # 当前版本
|
|
26
|
+
fir config # 配置全局设置
|
|
27
|
+
fir help [COMMAND] # Describe available commands or one specific command
|
|
28
|
+
fir info APP_FILE_PATH # 获取应用文件的信息(支持 ipa 文件和 apk 文件)
|
|
29
|
+
fir login # 登录
|
|
30
|
+
fir publish APP_FILE_PATH # 将应用文件发布至 FIR.im(支持 ipa 文件和 apk 文件)
|
|
31
|
+
fir resign IPA_FILE_PATH OUTPUT_PATH # 使用 resign.tapbeta.com 进行企业签名
|
|
32
|
+
fir upgrade # 更新 fir-cli 的所有组件
|
|
72
33
|
```
|
|
73
34
|
|
|
74
35
|
### 发布一个应用
|
|
75
|
-
|
|
76
36
|
输入下面的指令便可轻松发布应用
|
|
77
|
-
|
|
78
37
|
```shell
|
|
79
38
|
$ fir publish 应用路径
|
|
80
39
|
```
|
|
81
|
-
|
|
82
40
|
这时系统会提示输入用户 token
|
|
83
|
-
|
|
84
41
|
```shell
|
|
85
42
|
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
|
86
43
|
> 正在解析 ipa 文件...
|
|
87
44
|
> 正在获取 im.fir.juo@FIR.im 的应用信息...
|
|
88
45
|
请输入用户 token:
|
|
89
46
|
```
|
|
90
|
-
|
|
91
47
|
输入用户 token 后,系统会自动上传
|
|
92
|
-
|
|
93
48
|
```shell
|
|
94
49
|
请输入用户 token:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
95
50
|
> 上传应用...
|
|
@@ -104,15 +59,12 @@ $ fir publish 应用路径
|
|
|
104
59
|
用户 token 可在[这里](http://fir.im/user/info)查看
|
|
105
60
|
|
|
106
61
|
### 方便一点
|
|
107
|
-
|
|
108
62
|
如果觉得每次都输入用户 token 很不方便,那么可使用登录命令
|
|
109
63
|
|
|
110
64
|
```shell
|
|
111
65
|
$ fir login
|
|
112
66
|
```
|
|
113
|
-
|
|
114
67
|
这时系统会提示输入用户 token
|
|
115
|
-
|
|
116
68
|
```shell
|
|
117
69
|
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
|
118
70
|
输入你的用户 token:
|
|
@@ -126,15 +78,12 @@ $ fir login
|
|
|
126
78
|
|
|
127
79
|
|
|
128
80
|
### 需要企业签名?
|
|
129
|
-
|
|
130
81
|
很多开发者需要一个企业签名的应用,来让更多的用户参与到测试中,这种行为并不符合企业证书的使用规范。但是我们还是集成了第三方签名网站 [resign.tapbeta.com](http://resign.tapbeta.com) 来帮助我们的用户更方便的进行测试。
|
|
131
82
|
|
|
132
83
|
```shell
|
|
133
84
|
$ fir resign ipa文件路径 输出文件路径
|
|
134
85
|
```
|
|
135
|
-
|
|
136
86
|
这条指令会输出一段风险提示;如果没有设置邮件地址,这里会让你输入邮件地址。输入邮件地址后,便开始进行企业签名了
|
|
137
|
-
|
|
138
87
|
```
|
|
139
88
|
> 欢迎使用 FIR.im 命令行工具,如需帮助请输入: fir help
|
|
140
89
|
! resign.tapbeta.com 签名服务风险提示
|
|
@@ -154,42 +103,110 @@ $ fir resign ipa文件路径 输出文件路径
|
|
|
154
103
|
|
|
155
104
|
|
|
156
105
|
### 一步到位
|
|
157
|
-
|
|
158
106
|
企业签名后自动发布到 [FIR.im](http://fir.im)
|
|
159
|
-
|
|
160
107
|
```shell
|
|
161
108
|
$ fir publish ipa文件路径 -r
|
|
162
109
|
```
|
|
163
110
|
|
|
164
|
-
|
|
165
|
-
|
|
111
|
+
### 需要帮助?
|
|
166
112
|
输入以下指令获取全面功能介绍
|
|
167
|
-
|
|
168
113
|
```shell
|
|
169
114
|
$ fir help
|
|
170
115
|
```
|
|
171
|
-
|
|
172
116
|
如果还有疑问随时发邮件至[fir-cli](mailto:fir-cli@fir.im)
|
|
173
117
|
|
|
174
|
-
|
|
175
|
-
|
|
118
|
+
### 永远使用最新功能
|
|
176
119
|
下面的指令会自动更新 fir-cli 及所有扩展命令至最新状态
|
|
177
|
-
|
|
178
120
|
```shell
|
|
179
121
|
$ fir upgrade
|
|
180
122
|
```
|
|
181
|
-
|
|
182
123
|
随时更新以使用最新功能
|
|
183
124
|
|
|
184
|
-
##
|
|
185
|
-
###
|
|
186
|
-
|
|
125
|
+
## 指令文档
|
|
126
|
+
### 帮助
|
|
127
|
+
> 以下指令用于获取帮助
|
|
187
128
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
-
|
|
195
|
-
|
|
129
|
+
```shell
|
|
130
|
+
fir help
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
> 以下指令用于获取更具体的帮助
|
|
134
|
+
|
|
135
|
+
- `COMMAND`:具体的一个指令,如`publish`,`update`
|
|
136
|
+
```shell
|
|
137
|
+
fir help COMMAND
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 切换配置文件
|
|
141
|
+
> 以下指令用于切换配置文件,一个用户可以拥有多个配置文件。用户所有全局设置都跟随配置文件的切换而变化
|
|
142
|
+
|
|
143
|
+
- `-d` 删除指定配置文件
|
|
144
|
+
```shell
|
|
145
|
+
fir profile PROFILE [-d]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 登录
|
|
149
|
+
> 以下指令用于登录,登录后系统会从 FIR.im 自动获取你的邮件等信息。已登录用户在[这里](http://fir.im/user/info)可以找到自己的用户 token。
|
|
150
|
+
|
|
151
|
+
```shell
|
|
152
|
+
fir login
|
|
153
|
+
```
|
|
154
|
+
### 设置全局信息
|
|
155
|
+
> 以下指令用于全局设置。执行指令时如果不指明相应选项,会读取全局设置。
|
|
156
|
+
|
|
157
|
+
- `--token=TOKEN`:见`登录`
|
|
158
|
+
- `--resign`:见`第三方企业证书签名服务`
|
|
159
|
+
- `--email=EMAIL`:见`第三方企业证书签名服务`
|
|
160
|
+
- `--verbose=v|vv|vvv`:见`控制输出参数`
|
|
161
|
+
- `--quiet` 与 `--no-quiet`:见`控制输出参数`
|
|
162
|
+
- `--color` 与 `--no-color`:见`控制输出参数`
|
|
163
|
+
```shell
|
|
164
|
+
fir config [options]
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 获取应用文件的信息
|
|
168
|
+
> 以下指令用于显示应用信息,支持 ipa 和 apk 文件。
|
|
169
|
+
|
|
170
|
+
- `--all` 与 `--no-all`:可选,现实全部信息
|
|
171
|
+
- `--fir` 与 `--no-fir`:可选,显示托管在 [FIR.im](http://fir.im) 的信息
|
|
172
|
+
```shell
|
|
173
|
+
fir info APP_FILE_PATH [-a] [-f] [-v v|vv|vvv] [-q]
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
### 第三方企业证书签名服务
|
|
179
|
+
> 以下指令使用 [resign.tapbeta.com](http://resign.tapbeta.com) 进行企业证书签名
|
|
180
|
+
|
|
181
|
+
- `INPUT_IPA_PATH`:待签名的 ipa 文件路径
|
|
182
|
+
- `OUTPUT_IPA_PATH`:签名后的输出文件路径
|
|
183
|
+
- `--email=EMAIL`:可选,设置使用签名服务的邮件地址
|
|
184
|
+
```shell
|
|
185
|
+
fir resign INTPUT_IPA_FILE OUTPUT_IPA_FILE [--email=EMAIL]
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 发布应用至 [FIR.im](http://fir.im)
|
|
189
|
+
> 以下指令用于发布应用到 [FIR.im](http://fir.im),支持 ipa 和 apk 文件。
|
|
190
|
+
|
|
191
|
+
- `--resign` 与 `--no-resign`:可选,此开关控制是否使用第三方企业签名服务,仅支持 ipa 文件
|
|
192
|
+
- `--short=SHORT`:可选,指定发布应用的短地址
|
|
193
|
+
- `--token=USER_TOKEN`:可选,设定发布应用的帐号,未设置则使用全局设置
|
|
194
|
+
- `--changelog=CHANGE_LOG`:可选,设置更新日志
|
|
195
|
+
```shell
|
|
196
|
+
fir publish APP_FILE_PATH [-r] [-s SHORT] [-t USER_TOKEN] [-c CHANGE_LOG]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 更新全部指令
|
|
200
|
+
> 以下指令用于更新已安装的 fir-cli 指令集
|
|
201
|
+
|
|
202
|
+
```shell
|
|
203
|
+
fir upgrade
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 通用参数
|
|
207
|
+
#### 控制输出参数
|
|
208
|
+
> 几乎全部 FIR-cli 指令都支持下面的控制输出参数
|
|
209
|
+
|
|
210
|
+
- `--verbose=v|vv|vvv`:用于控制输出级别,`v`只输出以`!`开始的内容;`vv`输出以`!`或`>`开始的内容;`vvv`输出全部辅助信息。
|
|
211
|
+
- `--quiet` 与 `--no-quiet`:设置是否不输出全部辅助信息
|
|
212
|
+
- `--color` 与 `--no-color`:设置输出信息是否包含命令行颜色信息
|
data/lib/fir-cli/version.rb
CHANGED
|
@@ -5,6 +5,7 @@ module Fir
|
|
|
5
5
|
option :token, :aliases => '-t', :desc => '用户 token'
|
|
6
6
|
option :email, :aliases => '-e', :desc => '邮件地址'
|
|
7
7
|
option :resign, :aliases => '-r', :desc => '是否以企业签名发布 ios 应用', :type => :boolean
|
|
8
|
+
option :private_key, :desc => '私密通道'
|
|
8
9
|
option :publish, :aliases => '-p', :desc => '编译打包自动发布至 FIR.im', :type => :boolean
|
|
9
10
|
output_options
|
|
10
11
|
def config(*args)
|
|
@@ -37,13 +37,6 @@ module Fir
|
|
|
37
37
|
_exec "codesign -f -s \"#{sign_name}\""
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
|
-
# Dir["Payload/#{app}/*.nib"].each do |_nib|
|
|
41
|
-
# _exec "codesign -f -s \"#{sign_name}\"
|
|
42
|
-
# end
|
|
43
|
-
# cs_dir = "Payload/#{app}/_CodeSignature"
|
|
44
|
-
# cr_dir = "Payload/#{app}/CodeResources"
|
|
45
|
-
# Dir.rmdir cs_dir if File.directory? cs_dir
|
|
46
|
-
# Dir.rmdir cr_dir if File.directory? cr_dir
|
|
47
40
|
_puts "> 重签名 #{app}"
|
|
48
41
|
_exec "codesign -f -s \"#{sign_name}\" \"#{app}\" --deep"
|
|
49
42
|
end
|
|
@@ -3,6 +3,7 @@ module Fir
|
|
|
3
3
|
class Cli
|
|
4
4
|
def self.resign_tapbeta_options
|
|
5
5
|
option :email, :aliases => '-e', :desc => '邮件地址'
|
|
6
|
+
option :private_key, :desc => '私密通道'
|
|
6
7
|
end
|
|
7
8
|
desc 'resign_tapbeta IPA_FILE_PATH OUTPUT_PATH', '使用 resign.tapbeta.com 进行企业签名'
|
|
8
9
|
resign_tapbeta_options
|
|
@@ -34,6 +35,7 @@ module Fir
|
|
|
34
35
|
_puts '> 正在申请上传令牌...'
|
|
35
36
|
upload_res = RestClient.post 'http://api.resign.tapbeta.com/public/upload',
|
|
36
37
|
:email => @email,
|
|
38
|
+
:private_key => _opt_private_key,
|
|
37
39
|
:file => File.basename(ipath)
|
|
38
40
|
form = JSON.parse upload_res.body, :symbolize_names => true
|
|
39
41
|
tapbeta = {}
|
data/lib/fir-cli.opt.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
module Fir
|
|
3
3
|
class Cli
|
|
4
4
|
no_commands do
|
|
5
|
-
%w(token email verbose origin branch mobile_provision sign entitlements).each do |_m|
|
|
5
|
+
%w(token email verbose origin branch mobile_provision sign entitlements private_key).each do |_m|
|
|
6
6
|
define_method "_opt_#{_m}" do
|
|
7
7
|
unless instance_variable_get("@#{_m}")
|
|
8
8
|
instance_variable_set("@#{_m}", options[_m.to_sym] || @config[_m] )
|