您的位置:首页 > 其它

fastlane 使用中遇到的问题

2016-03-03 11:26 465 查看
使用fastlane 实现快速持续的更新、在安装过程中 出现的一系列问题:

1.安装fastlane :sudo gem install fastlane

-错误:
ERROR: Failed to build gem native extension.


#不要添加多个gem 源

#开始以为是gem 源的问题
#查看gem源
gem sources
# 删除默认的gem源
gem sources --remove https://rubygems.org/ # 增加taobao作为gem源
gem sources -a https://ruby.taobao.org/ # 查看当前的gem源
gem sources
*** CURRENT SOURCES ***
 http://ruby.taobao.org # 请确保只有 ruby.taobao.org

# 清空源缓存
gem sources -c
# 更新源缓存
gem sources -u


错误仍然存在;

然后查到是ruby版本的问题

2.更新ruby版本,安装rvm

http://blog.csdn.net/lissdy/article/details/9191351

http://stackoverflow.com/questions/3696564/how-to-update-ruby-to-1-9-x-on-mac

curl -L get.rvm.io | bash -s stable

测试是否安装正常 rvm -v

列出已知ruby版本:rvm list known

安装一个ruby版本:rvm install 2.0.0

使用一个ruby版本:rvm use 2.0.0

设置默认版本: rvm use 2.0.0 --default

查询:rvm list

卸载:rvm remove 2.0.0

3.rvm install ruby-2.1.4,报下面的错误

➜  ~ git:(master) ✗ rvm install ruby-2.1.4
Searching for binary rubies, this might take some time.
Found remote file https://rvm_io.global.ssl.fastly.net/binaries/osx/10.11/x86_64/ruby-2.1.4.tar.bz2 Checking requirements for osx.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mach (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/extend/pathname.rb:2:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/global.rb:3:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/brew.rb:16:in `<main>'
ERROR: '/bin' is not writable - it is required for Homebrew, try 'brew doctor' to fix it!
Requirements installation failed with status: 1.


然后这样处理:

$ brew install openssl  # if you want to install all dependencies run 'rvm requirements'
$ rmv reinstall|install ruby-2.1.4

这里参考了http://stackoverflow.com/questions/18863211/homebrew-permissions-mess

最后就顺利安装fastlane了。

4.在fastlane init初始化时出现

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

参考这里https://github.com/fastlane/fastlane/blob/master/docs/FAQs.md#im-getting-an-ssl-error

5.这里需要安装 brew .

安装命令如下:
curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1

这里需要FQ。(不然会有如下错 curl: (56) Recv failure: Connection reset by peer)

然后

6.➜ ~ git:(master) ✗ brew update && brew upgrade openssl
Error: /usr/local must be writable!

解决:sudo chown -R 'goyoo' /usr/local

然后就可以brew update && brew upgrade openssl

7.Error: openssl not installed

brew install openssl

➜  /  brew install openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2g.el_capitan.bottl ######################################################################## 100.0%
==> Pouring openssl-1.0.2g.el_capitan.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/usr/local/etc/openssl/certs

and run
/usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, which means it was not symlinked into /usr/local.

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

LDFLAGS:  -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include

==> Summary
🍺  /usr/local/Cellar/openssl/1.0.2g: 466 files, 11.9M


查看openssl版本:

openssl
version


OpenSSL 0.9.8zg 14 July 2015 //不是最新的。

➜  ~ git:(master) ✗ whereis openssl
/usr/bin/openssl
➜  ~ git:(master) ✗
➜  ~ git:(master) ✗
➜  ~ git:(master) ✗
➜  ~ git:(master) ✗ mv /usr/bin/openssl /usr/bin/openssl_OLD
mv: rename /usr/bin/openssl to /usr/bin/openssl_OLD: Operation not permitted
➜  ~ git:(master) ✗ openssl versino
openssl:Error: 'versino' is an invalid command.

Standard commands
asn1parse         ca                ciphers           cms
crl               crl2pkcs7         dgst              dh
dhparam           dsa               dsaparam          ec
ecparam           enc               engine            errstr
gendh             gendsa            genpkey           genrsa
nseq              ocsp              passwd            pkcs12
pkcs7             pkcs8             pkey              pkeyparam
pkeyutl           prime             rand              req
rsa               rsautl            s_client          s_server
s_time            sess_id           smime             speed
spkac             srp               ts                verify
version           x509

Message Digest commands (see the `dgst' command for more details)
md4               md5               mdc2              rmd160
sha               sha1

Cipher commands (see the `enc' command for more details)
aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb
aes-256-cbc       aes-256-ecb       base64            bf
bf-cbc            bf-cfb            bf-ecb            bf-ofb
camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  camellia-192-ecb
camellia-256-cbc  camellia-256-ecb  cast              cast-cbc
cast5-cbc         cast5-cfb         cast5-ecb         cast5-ofb
des               des-cbc           des-cfb           des-ecb
des-ede           des-ede-cbc       des-ede-cfb       des-ede-ofb
des-ede3          des-ede3-cbc      des-ede3-cfb      des-ede3-ofb
des-ofb           des3              desx              idea
idea-cbc          idea-cfb          idea-ecb          idea-ofb
rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc
rc2-cfb           rc2-ecb           rc2-ofb           rc4
rc4-40            seed              seed-cbc          seed-cfb
seed-ecb          seed-ofb          zlib

➜  ~ git:(master) ✗

~ git:(master) openssl version

OpenSSL 1.0.2g 1 Mar 2016

~ git:(master)

参考:http://stackoverflow.com/questions/15185661/openssl-version-macosx-homebrew
http://apple.stackexchange.com/questions/126830/how-to-upgrade-openssl-in-os-x https://segmentfault.com/a/1190000004395173
然而 fastlane init 的错误并没有解决。

后续、

最后换了一台电脑 轻松fastlane init 和ruby版本 openssl 都没什么关系

然后我就还原系统(10.11.3 )。。。也就可以了。

fastlane简单记录一些细节:

deliver:用于上传app,应用截屏和原数据到 App Store

snapshot:可以自动化iOS应用在每个设备上的本地化截屏过程

frameit:用于在应用截屏外添加设备的边框

PEM:可以自动化生成和更新应用推送通知描述文件

sigh:可以生成并下载开发者的应用商店配置文件(支持resign)

product:可以使用命令行在iTunes Connect中创建iOS应用以及Developer Portal

cert:可以自动创建并维护iOS的签名证书

codes:使用命令行来生成应用的优惠码

gym 编译app 打包

当前路径:/Users/yfan/Desktop/AutoOnlineTest

下图是 fastlane init 产生的目录

//这个方法里的内容是点击红点,录制过程中自动生成的
func testExample() {

let app = XCUIApplication()
let masterNavigationBar = app.navigationBars["Master"]
masterNavigationBar.buttons["Add"].tap()
snapshot("1Store")
masterNavigationBar.buttons["Edit"].tap()
snapshot("2Store")
masterNavigationBar.buttons["Done"].tap()

snapshot("3Store")

}


View Code
    ⑤运行snapshot 就开始截图了,截完图后就生成 screenshots.html和screenshots文件夹中图了。

-->deliver:

  1.运行 deliver 直接从本地上传app元数据(Run
deliver
to upload the app metadata from your local machine)

  2. 关于路径:ipa 放在当前目录下 就可以用deliver 传ipa

  3.deliver --ipa "AutoOnlineTest.ipa" --submit_for_review (上传ipa并提交审核)

4.screenshots 截图路径的位置:如图



  

deliver 执行完后,如图,点y就上传 api 和图片 等信息了。



Fastfile :

desc "Deploy a new version to the App Store"
lane :appstore do
# match(type: "appstore")
# snapshot
# frameit
# gym # Build your app - more options available
deliver(force: true,
app_icon: "./fastlane/AppIcon.png"# 这个是iTunes connection 里的icon
)
# sh "your_script.sh"//可以加一些脚本,填写补充信息
end


snapfile:

devices([
"iPhone 6",
"iPhone 6 Plus",
"iPhone 5",
"iPhone 4s",
])

languages([
"en-US"#选择哪个语言
])

output_directory "./screenshots"#输出路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: