美文网首页
iOS - 一行命令自动打包发布到Fir和AppStore

iOS - 一行命令自动打包发布到Fir和AppStore

作者: Tlsion小富 | 来源:发表于2018-08-09 12:57 被阅读53次

    前言

    以往都是用繁琐的打包方式,虽然已经习惯的,但浪费时间这点是必然有的,索性今天就研究了下自动化打包,其实比我想象中的简单,之后简单,是因为有前者已经铺好了路。

    常用的自动化打包有两种:Jenkins;或脚本shell,原理都差不多,但Jenkins必然是经过第三方的,配置相当麻烦,但可以支持直接Git打包。这边我推荐的是脚本shell打包方式。


    关于自动化打包的,这篇已经写得非常清楚了,我就不窃取了。参考:https://www.jianshu.com/p/05dc9f925467

    这边主要说下执行过程中错误和修改:

    1、安装fir-cli时错误

    ERROR: While executing gem ... (Gem::FilePermissionError)

        You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory

    原因:对于Mac OS X 10.11 El Capitan以上用户,由于系统启用了SIP(System Integrity Protection), 导致root用户也没有权限修改/usr/bin目录。

    解决方案有两种:

    1)更换目录(推荐):

    sudo gem install -n /usr/local/bin fir-cli

    2)屏蔽方法:

    重启Mac,按住command+R,进入recovery模式。选择打开Utilities下的终端,输入:csrutil disable并回车,然后正常重启Mac即可。

    2、配置证书错误

    error: exportArchive: "***.app" requires a provisioning profile.

    Error Domain=IDEProvisioningErrorDomain Code=9 ""WaynetCloud.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="WaynetCloud.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

    ** EXPORT FAILED **

    原因:因为 Xcode 9 默认不允许访问钥匙串的内容,所以我们需要在plist里配置相关证书。

    解决方案:在plist (exportAppstore / exportTest)添加配置证书

    <key>provisioningProfiles</key>
            <dict>
                <key>%app_bundle_id%</key>
                <string>%provisioning profiles name or uuid%</string>
            </dict>
     <key>signingCertificate</key>
     <string>%codesign_identity%</string>
     <key>signingStyle</key>
     <string>manual</string>
     <key>teamID</key>
     <string>%teamid%</string>
     <key>method</key>
     <string>development</string>

    上面代码中的%***%需要替换为自己项目的实际内容,不要%%

    %app_bundle_id% 是app的bundleid 一般是com.abc.abc 之类的

    %provisioning profiles name or uuid% 这个是provisioning profiles 的名称或uuid

    %codesign_identity% 这个是签名 可以是名称或uuid  如:"iPhone Developer:zhang san(FFFFFFFF)"

    %teamid%  这个是10位的teamid

    其中key:method 对应了导出ipa的方式:app-store,ad-hoc,package,enterprise,development,developer-id,and mac-application. 默认是development

    相关文章

      网友评论

          本文标题:iOS - 一行命令自动打包发布到Fir和AppStore

          本文链接:https://www.haomeiwen.com/subject/yapqbftx.html