fir-cli 0.2.1.a → 0.2.1.b
Sign up to get free protection for your applications and to get access to all the features.
- 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] )
|