fir-cli 1.6.3 → 1.6.4.beta1
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/.flow-plugin.yml +14 -0
- data/.gitignore +2 -0
- data/Dockerfile +12 -0
- data/Gemfile +2 -2
- data/README.md +17 -9
- data/doc/publish.md +0 -2
- data/fir-cli.gemspec +5 -6
- data/fir.sh +46 -0
- data/install.sh +210 -0
- data/lib/fir/patches/default_headers.rb +1 -1
- data/lib/fir/util/http.rb +13 -23
- data/lib/fir/util/publish.rb +18 -10
- data/lib/fir/version.rb +1 -1
- metadata +29 -14
- data/doc/build_apk.md +0 -42
- data/doc/build_ipa.md +0 -66
- data/doc/mapping.md +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f266a2ae75696a7e7f5dfe01ca87f63b138491d6
|
4
|
+
data.tar.gz: 562698c806b22265e4a2cbca22477c4189c3e8d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 334840d09c38a1fd9cf71986d21941ed709e7a22e0ad026a507e0b2be16f674ca1afcb3ca0183cb500d6c9a8a5acae430a1bf761ec25b040c07bd1f77fd9691f
|
7
|
+
data.tar.gz: 4e0b386315799ee1264b8c3dc20183793cad65b778b5b2ae66e20a276b6fd2f165862dd3b4201a0a4bd09bee6ecd8f0e7d667de6acf888494a9d1369f15fb7e9
|
data/.flow-plugin.yml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
name: fir-cli
|
2
|
+
properties:
|
3
|
+
- name: PLUGIN_FIR_TOKEN
|
4
|
+
type: string
|
5
|
+
required: true
|
6
|
+
|
7
|
+
- name: PLUGIN_FIR_APP_PATH
|
8
|
+
type: string
|
9
|
+
required: false
|
10
|
+
|
11
|
+
run: |
|
12
|
+
gem build fir-cli.gemspec
|
13
|
+
gem install *.gem
|
14
|
+
fir publish ${PLUGIN_FIR_APP_PATH} --token=$PLUGIN_FIR_TOKEN
|
data/.gitignore
CHANGED
data/Dockerfile
ADDED
data/Gemfile
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
if ENV['USE_OFFICIAL_GEM_SOURCE']
|
3
3
|
source 'https://rubygems.org'
|
4
4
|
else
|
5
|
-
source '
|
5
|
+
source 'http://gems.ruby-china.org'
|
6
6
|
end
|
7
7
|
|
8
8
|
# Specify your gem's dependencies in fir.gemspec
|
9
9
|
gemspec
|
10
10
|
|
11
|
-
gem 'codeclimate-test-reporter', group: :test, require: nil
|
11
|
+
gem 'codeclimate-test-reporter', group: :test, require: nil
|
data/README.md
CHANGED
@@ -8,9 +8,12 @@
|
|
8
8
|
[](https://gitter.im/FIRHQ/fir-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
9
9
|
[](https://raw.githubusercontent.com/FIRHQ/fir-cli/master/LICENSE.txt)
|
10
10
|
|
11
|
-
fir.im-cli 可以通过指令查看, 上传,
|
11
|
+
fir.im-cli 可以通过指令查看, 上传, iOS/Android 应用.
|
12
12
|
|
13
13
|

|
14
|
+
## 重要提示
|
15
|
+
- 由于部分地区上传时遇到的证书问题, 新版本默认忽略证书校验. 如需打开, 请在命令前加入`UPLOAD_VERIFY_SSL=1`
|
16
|
+
- 介于在ios 等编译越来越复杂化, fir-cli 自带的编译功能较为简单, 不能很好的满足用户需求, 推荐用户使用 fastlane (fastlane gym)进行打包,生成好 ipa 文件后,再使用 fir publish 上传生成的ipa 包
|
14
17
|
|
15
18
|
## 文档
|
16
19
|
|
@@ -19,17 +22,22 @@ fir.im-cli 可以通过指令查看, 上传, 编译 iOS/Android 应用.
|
|
19
22
|
- [fir info 查看 ipa/apk 信息](https://github.com/FIRHQ/fir-cli/blob/master/doc/info.md)
|
20
23
|
- [fir login & fir me 登录相关](https://github.com/FIRHQ/fir-cli/blob/master/doc/login.md)
|
21
24
|
- [fir publish 发布应用到 fir.im](https://github.com/FIRHQ/fir-cli/blob/master/doc/publish.md)
|
22
|
-
- [fir build_ipa 编译打包 ipa 文件](https://github.com/FIRHQ/fir-cli/blob/master/doc/build_ipa.md)
|
23
|
-
- [fir build_apk 编译打包 apk 文件](https://github.com/FIRHQ/fir-cli/blob/master/doc/build_apk.md)
|
24
|
-
- [fir mapping 上传符号表至 BugHD.com](https://github.com/FIRHQ/fir-cli/blob/master/doc/mapping.md)
|
25
25
|
- [fir upgrade 升级相关](https://github.com/FIRHQ/fir-cli/blob/master/doc/upgrade.md)
|
26
26
|
|
27
|
-
##
|
27
|
+
## Docker 使用 fir-cli
|
28
|
+
```
|
29
|
+
# 方便之处是: 不需要安装 Ruby 环境只需要安装Docker环境就行把镜像 flowci/fir-cli 拉下来就能跑
|
30
|
+
# 不方便之处是: 不能使用 xcode 或者 gradle 编译代码,只能 publish 编译好的文件
|
31
|
+
|
32
|
+
curl https://raw.githubusercontent.com/FIRHQ/fir-cli/master/fir.sh -o /usr/local/bin/fir
|
33
|
+
chmod +x /usr/local/bin/fir
|
28
34
|
|
29
|
-
|
35
|
+
fir login token
|
36
|
+
fir help
|
37
|
+
```
|
38
|
+
## 提交反馈
|
30
39
|
|
31
|
-
|
40
|
+
- 联系微信 `atpking`
|
32
41
|
|
33
|
-
|
42
|
+
- 使用 Github 的 [Issue](https://github.com/FIRHQ/fir-cli/issues)
|
34
43
|
|
35
|
-

|
data/doc/publish.md
CHANGED
@@ -11,8 +11,6 @@ Options:
|
|
11
11
|
-s, [--short=SHORT] # Set custom short link
|
12
12
|
-c, [--changelog=CHANGELOG] # Set changelog
|
13
13
|
-Q, [--qrcode], [--no-qrcode] # Generate qrcode
|
14
|
-
-m, [--mappingfile=MAPPINGFILE] # App mapping file
|
15
|
-
-P, [--proj=PROJ] # Project id in BugHD.com if upload app mapping file
|
16
14
|
[--open], [--no-open] # true/false if open for everyone
|
17
15
|
[--password=PASSWORD] # Set password for app
|
18
16
|
-T, [--token=TOKEN] # User's API Token at fir.im
|
data/fir-cli.gemspec
CHANGED
@@ -7,8 +7,8 @@ require 'fir/version'
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'fir-cli'
|
9
9
|
spec.version = FIR::VERSION
|
10
|
-
spec.authors = ['NaixSpirit']
|
11
|
-
spec.email = ['
|
10
|
+
spec.authors = ['NaixSpirit', 'atpking']
|
11
|
+
spec.email = ['atpking@gmail.com']
|
12
12
|
spec.date = Time.now.strftime('%Y-%m-%d')
|
13
13
|
spec.summary = 'fir.im command tool'
|
14
14
|
spec.description = 'fir.im command tool, support iOS and Android'
|
@@ -27,9 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
/_/ /___/_/ |_| \____/_____/___/
|
28
28
|
|
29
29
|
## 更新记录
|
30
|
-
|
31
|
-
- 修复了在 ruby 2.4.0 中登录出错的bug
|
32
|
-
- 详细更新记录, 请查看: https://github.com/FIRHQ/fir-cli/blob/master/CHANGELOG
|
30
|
+
- 忽略了证书错误
|
33
31
|
- [fir-cli](https://github.com/FIRHQ/fir-cli) 已经开源
|
34
32
|
- 欢迎 fork, issue 和 pull request
|
35
33
|
)
|
@@ -44,5 +42,6 @@ Gem::Specification.new do |spec|
|
|
44
42
|
spec.add_dependency 'rest-client', '~> 2.0'
|
45
43
|
spec.add_dependency 'ruby_android', '~> 0.7.7'
|
46
44
|
spec.add_dependency 'rqrcode', '~> 0.7'
|
47
|
-
spec.add_dependency 'xcodeproj', '~> 1.
|
45
|
+
spec.add_dependency 'xcodeproj', '~> 1.5'
|
46
|
+
spec.add_dependency 'api_tools'
|
48
47
|
end
|
data/fir.sh
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
# because fir-cli dependent ruby enviroment, this shell is dependent ruby docker
|
3
|
+
# so xcode and gradle not use
|
4
|
+
# this shell only use to publish apk or ipa , build is not run
|
5
|
+
# fir publish **.apk
|
6
|
+
# echo $(curl https://raw.githubusercontent.com/FIRHQ/fir-cli/master/fir.sh) > /usr/local/bin/fir
|
7
|
+
|
8
|
+
mountFolder=$HOME/fir-cli/data
|
9
|
+
destFolder=/fir-cli
|
10
|
+
|
11
|
+
mkdir -p $mountFolder
|
12
|
+
|
13
|
+
# find path file name
|
14
|
+
function findFileName() {
|
15
|
+
echo ${1##*/}
|
16
|
+
}
|
17
|
+
|
18
|
+
# move file to mount folder
|
19
|
+
tmpFiles=()
|
20
|
+
cmds=()
|
21
|
+
for i in $@; do
|
22
|
+
if [ -d $i ];then
|
23
|
+
cp -r $i $mountFolder
|
24
|
+
elif [ -f $i ];then
|
25
|
+
cp $i $mountFolder
|
26
|
+
else
|
27
|
+
cmds+=($i)
|
28
|
+
continue
|
29
|
+
fi
|
30
|
+
destFile=$destFolder/$(findFileName $i)
|
31
|
+
cmds+=($destFile)
|
32
|
+
tmpFiles+=($mountFolder/$(findFileName $i))
|
33
|
+
done
|
34
|
+
|
35
|
+
# start docker to run fir cmd
|
36
|
+
docker run -v $HOME/fir-cli/data:/fir-cli flowci/fir-cli fir ${cmds[@]}
|
37
|
+
|
38
|
+
# clean folder
|
39
|
+
for i in ${tmpFiles}; do
|
40
|
+
if [ -d $i ];then
|
41
|
+
rm -rf $i
|
42
|
+
elif [ -f $i ];then
|
43
|
+
rm $i
|
44
|
+
fi
|
45
|
+
done
|
46
|
+
|
data/install.sh
ADDED
@@ -0,0 +1,210 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Copy from: ruby-bootstrap.sh
|
4
|
+
# Description: This script bootstraps rvm, Ruby
|
5
|
+
|
6
|
+
RVM_FRESH_INSTALL=0 # 0=false, 1=true
|
7
|
+
MIRROR_CHINA_INSTALL=1 # 0=false, 1=true
|
8
|
+
|
9
|
+
|
10
|
+
###
|
11
|
+
### Helper variables and functions
|
12
|
+
###
|
13
|
+
|
14
|
+
# Make the operating system of this host available as $OS.
|
15
|
+
OS_UNKNOWN="os-unknown"
|
16
|
+
OS_MAC="mac"
|
17
|
+
OS_LINUX="linux"
|
18
|
+
case `uname` in
|
19
|
+
Linux*)
|
20
|
+
OS=$OS_LINUX
|
21
|
+
;;
|
22
|
+
Darwin*)
|
23
|
+
OS=$OS_MAC
|
24
|
+
;;
|
25
|
+
*)
|
26
|
+
OS=$OS_UNKNOWN
|
27
|
+
;;
|
28
|
+
esac
|
29
|
+
|
30
|
+
# Colors for shell output
|
31
|
+
if [ "$OS" = "$OS_MAC" ]; then
|
32
|
+
red='\x1B[1;31m'
|
33
|
+
green='\x1B[1;32m'
|
34
|
+
yellow='\x1B[1;33m'
|
35
|
+
blue='\x1B[1;34m'
|
36
|
+
nocolor='\x1B[0m'
|
37
|
+
else
|
38
|
+
red='\e[1;31m'
|
39
|
+
green='\e[1;32m'
|
40
|
+
yellow='\e[1;33m'
|
41
|
+
blue='\e[1;34m'
|
42
|
+
nocolor='\e[0m'
|
43
|
+
fi
|
44
|
+
|
45
|
+
function puts() {
|
46
|
+
local opts=''
|
47
|
+
if [ "$1" = "-n" ]; then
|
48
|
+
opts='-n'
|
49
|
+
shift
|
50
|
+
fi
|
51
|
+
msg="$@"
|
52
|
+
echo -e $opts "${blue}${msg}${nocolor}"
|
53
|
+
}
|
54
|
+
|
55
|
+
function warn() {
|
56
|
+
local opts=''
|
57
|
+
if [ "$1" = "-n" ]; then
|
58
|
+
opts='-n'
|
59
|
+
shift
|
60
|
+
fi
|
61
|
+
msg="$@"
|
62
|
+
echo -e $opts "${yellow}${msg}${nocolor}"
|
63
|
+
}
|
64
|
+
|
65
|
+
function error() {
|
66
|
+
local opts=''
|
67
|
+
if [ "$1" = "-n" ]; then
|
68
|
+
opts='-n'
|
69
|
+
shift
|
70
|
+
fi
|
71
|
+
msg="$@"
|
72
|
+
echo -e $opts "${red}${msg}${nocolor}"
|
73
|
+
}
|
74
|
+
|
75
|
+
function success() {
|
76
|
+
local opts=''
|
77
|
+
if [ "$1" = "-n" ]; then
|
78
|
+
opts='-n'
|
79
|
+
shift
|
80
|
+
fi
|
81
|
+
msg="$@"
|
82
|
+
echo -e $opts "${green}${msg}${nocolor}"
|
83
|
+
}
|
84
|
+
|
85
|
+
function rvm_post_install_message() {
|
86
|
+
warn "Important: We performed a fresh install of rvm for you."
|
87
|
+
warn " This means you manually perform two tasks now."
|
88
|
+
warn
|
89
|
+
warn "Task 1 of 2:"
|
90
|
+
warn "------------"
|
91
|
+
warn "Please run the following command in all your open shell windows to"
|
92
|
+
warn "start using rvm. In rare cases you need to reopen all shell windows."
|
93
|
+
warn
|
94
|
+
warn " source ~/.rvm/scripts/rvm"
|
95
|
+
warn
|
96
|
+
warn
|
97
|
+
warn "Task 2 of 2:"
|
98
|
+
warn "------------"
|
99
|
+
warn "Permanently update your shell environment to source/add rvm."
|
100
|
+
warn "The example below shows how to do this for Bash."
|
101
|
+
warn
|
102
|
+
warn "Add the following two lines to your ~/.bashrc:"
|
103
|
+
warn
|
104
|
+
warn " PATH=\$PATH:\$HOME/.rvm/bin # Add RVM to PATH for scripting"
|
105
|
+
warn " [[ -s \"\$HOME/.rvm/scripts/rvm\" ]] && source \"\$HOME/.rvm/scripts/rvm\" # Load RVM into a shell session *as a function*"
|
106
|
+
warn
|
107
|
+
warn "That's it! Sorry for the extra work but this is the safest"
|
108
|
+
warn "way to update your environment without breaking anything."
|
109
|
+
}
|
110
|
+
|
111
|
+
function find_ruby_version_file() {
|
112
|
+
local filename=".ruby-version"
|
113
|
+
local curr_dir=$1
|
114
|
+
curr_dir=`cd "$curr_dir"; pwd`
|
115
|
+
local candidate_file="$curr_dir/$filename"
|
116
|
+
while [ ! -f "$candidate_file" ]; do
|
117
|
+
parent_dir=`cd ..; pwd`
|
118
|
+
if [ "$parent_dir" = "$curr_dir" ]; then
|
119
|
+
# We have reached /, we can't go up any further.
|
120
|
+
candidate_file=""
|
121
|
+
break
|
122
|
+
else
|
123
|
+
curr_dir="$parent_dir"
|
124
|
+
candidate_file="$curr_dir/$filename"
|
125
|
+
fi
|
126
|
+
done
|
127
|
+
echo $candidate_file
|
128
|
+
}
|
129
|
+
|
130
|
+
function detect_desired_ruby_version() {
|
131
|
+
local desired_ruby_version=""
|
132
|
+
ruby_version_file=`find_ruby_version_file $(pwd)`
|
133
|
+
if [ -n "$ruby_version_file" ]; then
|
134
|
+
desired_ruby_version=`head -n 1 $ruby_version_file`
|
135
|
+
fi
|
136
|
+
echo $desired_ruby_version
|
137
|
+
}
|
138
|
+
|
139
|
+
# We must detect the desired Ruby version before rvm "manipulates" the shell environment for its own purposes.
|
140
|
+
# I assume the cause of the problem is rvm's variant of the 'cd' command (~/.rvm/scripts/cd), which may alter the
|
141
|
+
# normal behavior of 'cd' in a way that breaks our usage of 'cd' in the function 'find_ruby_version_file' above.
|
142
|
+
puts -n "Detecting desired Ruby version: "
|
143
|
+
|
144
|
+
RUBY_VERSION=`detect_desired_ruby_version`
|
145
|
+
|
146
|
+
if [ -z "$RUBY_VERSION" ]; then
|
147
|
+
warn "FAILED (could not find .ruby-version) -- falling back to latest stable Ruby version"
|
148
|
+
RUBY_VERSION="ruby" # 'ruby' defaults to latest stable version
|
149
|
+
else
|
150
|
+
success "OK ($RUBY_VERSION)"
|
151
|
+
fi
|
152
|
+
|
153
|
+
|
154
|
+
###
|
155
|
+
### Bootstrap RVM
|
156
|
+
###
|
157
|
+
puts -n "Checking for rvm: "
|
158
|
+
which rvm &>/dev/null
|
159
|
+
if [ $? -ne 0 ]; then
|
160
|
+
error "NOT FOUND (If you already ran ruby-bootstrap: have you performed the post-installation steps?)"
|
161
|
+
puts "Installing latest stable version of rvm..."
|
162
|
+
RVM_FRESH_INSTALL=1
|
163
|
+
curl -L https://get.rvm.io | bash -s stable --autolibs=enable --ignore-dotfiles || exit 1
|
164
|
+
else
|
165
|
+
success "OK"
|
166
|
+
fi
|
167
|
+
|
168
|
+
if [ -d ~/.rvm/bin ]; then
|
169
|
+
PATH=$PATH:~/.rvm/bin
|
170
|
+
fi
|
171
|
+
|
172
|
+
source ~/.rvm/scripts/rvm
|
173
|
+
|
174
|
+
if [ $MIRROR_CHINA_INSTALL -eq 1 ]; then
|
175
|
+
echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/db
|
176
|
+
fi
|
177
|
+
###
|
178
|
+
### Install Ruby
|
179
|
+
###
|
180
|
+
puts "Installing Ruby version ${RUBY_VERSION}..."
|
181
|
+
|
182
|
+
rvm install $RUBY_VERSION
|
183
|
+
|
184
|
+
if [ $? -ne 0 -a $RVM_FRESH_INSTALL -eq 1 ]; then
|
185
|
+
rvm_post_install_message
|
186
|
+
exit 2
|
187
|
+
fi
|
188
|
+
if [ $MIRROR_CHINA_INSTALL -eq 1 ]; then
|
189
|
+
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
|
190
|
+
fi
|
191
|
+
|
192
|
+
###
|
193
|
+
### Install Bundler
|
194
|
+
###
|
195
|
+
puts "Installing bundler..."
|
196
|
+
gem install bundler
|
197
|
+
if [ $? -ne 0 -a $RVM_FRESH_INSTALL -eq 1 ]; then
|
198
|
+
rvm_post_install_message
|
199
|
+
exit 3
|
200
|
+
fi
|
201
|
+
|
202
|
+
puts "Installing fir-cli gem"
|
203
|
+
gem install fir-cli --no-rdoc --no-ri
|
204
|
+
if [ $? -ne 0 -a $RVM_FRESH_INSTALL -eq 1 ]; then
|
205
|
+
rvm_post_install_message
|
206
|
+
exit 4
|
207
|
+
fi
|
208
|
+
|
209
|
+
|
210
|
+
puts "run fir -v to check"
|
data/lib/fir/util/http.rb
CHANGED
@@ -1,30 +1,20 @@
|
|
1
|
-
|
1
|
+
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'api_tools'
|
2
5
|
|
3
6
|
module FIR
|
4
7
|
module Http
|
5
|
-
|
8
|
+
include ApiTools::DefaultRestModule
|
6
9
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
logger.error(e.message.to_s)
|
16
|
-
if @retries < MAX_RETRIES
|
17
|
-
@retries += 1
|
18
|
-
logger.info("Retry \#{@retries} times......")
|
19
|
-
sleep 2
|
20
|
-
retry
|
21
|
-
else
|
22
|
-
exit 1
|
23
|
-
end
|
24
|
-
end
|
25
|
-
JSON.parse(res.body.force_encoding('UTF-8'), symbolize_names: true)
|
26
|
-
end
|
27
|
-
METHOD
|
10
|
+
alias old_default_options default_options
|
11
|
+
def default_options
|
12
|
+
@default_options = old_default_options
|
13
|
+
unless ENV['UPLOAD_VERIFY_SSL']
|
14
|
+
@default_options.merge!(other_base_execute_option: {
|
15
|
+
verify_ssl: OpenSSL::SSL::VERIFY_NONE
|
16
|
+
})
|
17
|
+
end
|
28
18
|
end
|
29
19
|
end
|
30
20
|
end
|
data/lib/fir/util/publish.rb
CHANGED
@@ -42,19 +42,27 @@ module FIR
|
|
42
42
|
update_app_info
|
43
43
|
fetch_app_info
|
44
44
|
end
|
45
|
+
|
46
|
+
%w(binary icon).each do |word|
|
47
|
+
define_method("upload_app_#{word}") do
|
48
|
+
upload_file(word)
|
49
|
+
end
|
50
|
+
end
|
45
51
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
52
|
+
def upload_file(postfix)
|
53
|
+
logger.info "Uploading app #{postfix}......"
|
54
|
+
url = @uploading_info[:cert][postfix.to_sym][:upload_url]
|
55
|
+
info = send("uploading_#{postfix}_info")
|
56
|
+
logger.debug "url = #{url}, info = #{info}"
|
57
|
+
uploaded_info = post(url, info, {
|
58
|
+
params_to_json: false,
|
59
|
+
header: nil
|
60
|
+
})
|
51
61
|
|
52
|
-
|
62
|
+
return if uploaded_info[:is_completed]
|
53
63
|
|
54
|
-
|
55
|
-
|
56
|
-
end
|
57
|
-
METHOD
|
64
|
+
logger.error "Uploading app #{postfix} failed"
|
65
|
+
exit 1
|
58
66
|
end
|
59
67
|
|
60
68
|
def uploading_icon_info
|
data/lib/fir/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fir-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.4.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NaixSpirit
|
8
|
+
- atpking
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2018-03-22 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
@@ -142,17 +143,31 @@ dependencies:
|
|
142
143
|
requirements:
|
143
144
|
- - "~>"
|
144
145
|
- !ruby/object:Gem::Version
|
145
|
-
version: '1.
|
146
|
+
version: '1.5'
|
146
147
|
type: :runtime
|
147
148
|
prerelease: false
|
148
149
|
version_requirements: !ruby/object:Gem::Requirement
|
149
150
|
requirements:
|
150
151
|
- - "~>"
|
151
152
|
- !ruby/object:Gem::Version
|
152
|
-
version: '1.
|
153
|
+
version: '1.5'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: api_tools
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :runtime
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
153
168
|
description: fir.im command tool, support iOS and Android
|
154
169
|
email:
|
155
|
-
-
|
170
|
+
- atpking@gmail.com
|
156
171
|
executables:
|
157
172
|
- console
|
158
173
|
- fir
|
@@ -161,9 +176,11 @@ extensions: []
|
|
161
176
|
extra_rdoc_files: []
|
162
177
|
files:
|
163
178
|
- ".codeclimate.yml"
|
179
|
+
- ".flow-plugin.yml"
|
164
180
|
- ".gitignore"
|
165
181
|
- ".travis.yml"
|
166
182
|
- CHANGELOG
|
183
|
+
- Dockerfile
|
167
184
|
- Gemfile
|
168
185
|
- LICENSE.txt
|
169
186
|
- README.md
|
@@ -171,16 +188,15 @@ files:
|
|
171
188
|
- bin/console
|
172
189
|
- bin/fir
|
173
190
|
- bin/setup
|
174
|
-
- doc/build_apk.md
|
175
|
-
- doc/build_ipa.md
|
176
191
|
- doc/help.md
|
177
192
|
- doc/info.md
|
178
193
|
- doc/install.md
|
179
194
|
- doc/login.md
|
180
|
-
- doc/mapping.md
|
181
195
|
- doc/publish.md
|
182
196
|
- doc/upgrade.md
|
183
197
|
- fir-cli.gemspec
|
198
|
+
- fir.sh
|
199
|
+
- install.sh
|
184
200
|
- lib/fir-cli.rb
|
185
201
|
- lib/fir.rb
|
186
202
|
- lib/fir/api.yml
|
@@ -231,9 +247,8 @@ metadata: {}
|
|
231
247
|
post_install_message: "\n ______________ ________ ____\n /
|
232
248
|
____/ _/ __ \\ / ____/ / / _/\n / /_ / // /_/ /_____/ / / / /
|
233
249
|
/\n / __/ _/ // _, _/_____/ /___/ /____/ /\n /_/ /___/_/ |_| \\____/_____/___/\n\n
|
234
|
-
\ ## 更新记录\n
|
235
|
-
|
236
|
-
已经开源\n - 欢迎 fork, issue 和 pull request\n "
|
250
|
+
\ ## 更新记录\n - 忽略了证书错误\n - [fir-cli](https://github.com/FIRHQ/fir-cli) 已经开源\n -
|
251
|
+
欢迎 fork, issue 和 pull request\n "
|
237
252
|
rdoc_options: []
|
238
253
|
require_paths:
|
239
254
|
- lib
|
@@ -244,12 +259,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
244
259
|
version: '0'
|
245
260
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
246
261
|
requirements:
|
247
|
-
- - "
|
262
|
+
- - ">"
|
248
263
|
- !ruby/object:Gem::Version
|
249
|
-
version:
|
264
|
+
version: 1.3.1
|
250
265
|
requirements: []
|
251
266
|
rubyforge_project:
|
252
|
-
rubygems_version: 2.6.
|
267
|
+
rubygems_version: 2.6.14
|
253
268
|
signing_key:
|
254
269
|
specification_version: 4
|
255
270
|
summary: fir.im command tool
|
data/doc/build_apk.md
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
#### fir build_apk
|
2
|
-
|
3
|
-
`fir build_apk` 指令用于编译用 Gradle 打包 apk, 并且支持直接从 Github/Gitlab 相关 repo 直接编译打包.
|
4
|
-
|
5
|
-
```sh
|
6
|
-
fir build_apk --help
|
7
|
-
Usage:
|
8
|
-
fir build_apk BUILD_DIR
|
9
|
-
|
10
|
-
Options:
|
11
|
-
-B, [--branch=BRANCH] # Set branch if project is a git repo, the default is `master`
|
12
|
-
-o, [--output=OUTPUT] # APK output path, the default is: BUILD_DIR/build/outputs/apk
|
13
|
-
-p, [--publish], [--no-publish] # true/false if publish to fir.im
|
14
|
-
-f, [--flavor=FLAVOR] # Set flavor if have productFlavors
|
15
|
-
-s, [--short=SHORT] # Set custom short link if publish to fir.im
|
16
|
-
-n, [--name=NAME] # Set custom apk name when builded
|
17
|
-
-c, [--changelog=CHANGELOG] # Set changelog if publish to fir.im, support string/file
|
18
|
-
-Q, [--qrcode], [--no-qrcode] # Generate qrcode
|
19
|
-
[--open], [--no-open] # true/false if open for everyone, the default is: true
|
20
|
-
# Default: true
|
21
|
-
[--password=PASSWORD] # Set password for app
|
22
|
-
-T, [--token=TOKEN] # User's API Token at fir.im
|
23
|
-
-L, [--logfile=LOGFILE] # Path to writable logfile
|
24
|
-
-V, [--verbose], [--no-verbose] # Show verbose
|
25
|
-
# Default: true
|
26
|
-
-q, [--quiet], [--no-quiet] # Silence commands
|
27
|
-
-h, [--help], [--no-help] # Show this help message and quit
|
28
|
-
```
|
29
|
-
|
30
|
-
```sh
|
31
|
-
# 简单打包
|
32
|
-
$ fir build_apk path/to/project
|
33
|
-
|
34
|
-
# 打包并上传
|
35
|
-
$ fir ba <project dir> [-o <apk output dir> -c <changelog> -p -Q -T <your api token>]
|
36
|
-
|
37
|
-
# 打包指定的 flavor
|
38
|
-
$ fir ba <project dir> [-f <flavor> -o <apk output dir> -c <changelog> -p -Q -T <your api token>]
|
39
|
-
|
40
|
-
# 打包指定的 git branch
|
41
|
-
$ fir ba <git ssh url> [-B develop -o <apk output dir> -c <changelog> -p -Q -T <your api token>]
|
42
|
-
```
|
data/doc/build_ipa.md
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
### fir build_ipa
|
2
|
-
|
3
|
-
`fir build_ipa` 对 `xcodebuild` 原生指令进行了封装, 将常用的参数名简化, 支持全部的自带参数及设置, 同时输出符号表 dSYM 文件, 并且支持直接从 Github/Gitlab 相关 repo 直接编译打包.
|
4
|
-
|
5
|
-
```sh
|
6
|
-
$ fir build_ipa --help
|
7
|
-
fir build_ipa --help
|
8
|
-
Usage:
|
9
|
-
fir build_ipa BUILD_DIR [options] [settings]
|
10
|
-
|
11
|
-
Options:
|
12
|
-
-B, [--branch=BRANCH] # Set branch if project is a git repo, the default is `master`
|
13
|
-
-w, [--workspace], [--no-workspace] # true/false if build workspace
|
14
|
-
-S, [--scheme=SCHEME] # Set the scheme NAME if build workspace
|
15
|
-
-C, [--configuration=CONFIGURATION] # Use the build configuration NAME for building each target
|
16
|
-
-d, [--destination=DESTINATION] # Set the destinationspecifier
|
17
|
-
-t, [--target=TARGET] # Build the target specified by targetname
|
18
|
-
-E, [--export_method=METHOD] # for exportOptionsPlist method, ad-hoc as default
|
19
|
-
-O, [--optionPlistPath] # User defined exportOptionsPlist path
|
20
|
-
-f, [--profile=PROFILE] # Set the export provisioning profile
|
21
|
-
-o, [--output=OUTPUT] # IPA output path, the default is: BUILD_DIR/fir_build_ipa
|
22
|
-
-p, [--publish], [--no-publish] # true/false if publish to fir.im
|
23
|
-
-s, [--short=SHORT] # Set custom short link if publish to fir.im
|
24
|
-
-n, [--name=NAME] # Set custom ipa name when builded
|
25
|
-
-c, [--changelog=CHANGELOG] # Set changelog if publish to fir.im
|
26
|
-
-Q, [--qrcode], [--no-qrcode] # Generate qrcode
|
27
|
-
-M, [--mapping], [--no-mapping] # true/false if upload app mapping file to BugHD.com
|
28
|
-
-P, [--proj=PROJ] # Project id in BugHD.com if upload app mapping file
|
29
|
-
[--open], [--no-open] # true/false if open for everyone, the default is: true
|
30
|
-
# Default: true
|
31
|
-
[--password=PASSWORD] # Set password for app
|
32
|
-
-T, [--token=TOKEN] # User's API Token at fir.im
|
33
|
-
-L, [--logfile=LOGFILE] # Path to writable logfile
|
34
|
-
-V, [--verbose], [--no-verbose] # Show verbose
|
35
|
-
# Default: true
|
36
|
-
-q, [--quiet], [--no-quiet] # Silence commands
|
37
|
-
-h, [--help], [--no-help] # Show this help message and quit
|
38
|
-
```
|
39
|
-
|
40
|
-
示例:
|
41
|
-
|
42
|
-
- 编译 project, 加上 changelog, 并发布到 fir.im 上并生成二维码图片
|
43
|
-
|
44
|
-
```
|
45
|
-
$ fir build_ipa path/to/project -o path/to/output -p -c "this is changelog" -Q -T YOUR_API_TOKEN
|
46
|
-
```
|
47
|
-
|
48
|
-
- 编译 Github 上的 workspace
|
49
|
-
|
50
|
-
```sh
|
51
|
-
$ fir build_ipa git@github.com:xxxx.git -o path/to/output -w -C Release -t allTargets GCC_PREPROCESSOR_DEFINITIONS="FOO=bar"
|
52
|
-
```
|
53
|
-
该指令在指向的目录中,找到第一个 workspace 文件, 对其进行编译. 使用 `Release` 设置,编译策略为 `allTargets`, 同时设置了预编译参数 `FOO`.
|
54
|
-
|
55
|
-
- 编译用 CocoaPods 做依赖管理的 .ipa 包
|
56
|
-
|
57
|
-
```sh
|
58
|
-
$ fir build_ipa path/to/workspace -w -S <scheme name>
|
59
|
-
```
|
60
|
-
|
61
|
-
|
62
|
-
**ChangeLog 1.6.0**
|
63
|
-
|
64
|
-
- 支持 XCode 8.3 打包
|
65
|
-
* 新增参数 -E,指定 exportOptionsPlist plist 文件中的方法, 默认为 ad-hoc
|
66
|
-
* 用户可自定义 -exportOptionsPlist 中的 plist 路径
|
data/doc/mapping.md
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
### fir mapping
|
2
|
-
|
3
|
-
`fir mapping` 指令用于将符号表上传至 [BugHD.com](http://bughd.com) 所对应的项目, 目前已经支持 dSYM 和 txt 两种格式的符号表文件上传, 有以下三种方法上传:
|
4
|
-
|
5
|
-
- 指定 version 和 build 上传:
|
6
|
-
|
7
|
-
```sh
|
8
|
-
$ fir m <mapping file path> -P <bughd project id> -v <app version> -b <app build> -T <your api token>
|
9
|
-
```
|
10
|
-
|
11
|
-
- 在 publish 的时候自动上传:
|
12
|
-
|
13
|
-
```sh
|
14
|
-
$ fir p <app file path> -m <mapping file path> -P <bughd project id> -T <your api token>
|
15
|
-
```
|
16
|
-
- 在 build_ipa 的时候自动上传:
|
17
|
-
|
18
|
-
```sh
|
19
|
-
$ fir b <project dir> -P <bughd project id> -M -p -T <your api token>
|
20
|
-
```
|
21
|
-
|
22
|
-
更详细的使用说明, 可以使用 `fir mapping -h`查看相应的帮助.
|