美文网首页iOS开发者图书馆
使用fastlane快速打包到蒲公英

使用fastlane快速打包到蒲公英

作者: hj的简书 | 来源:发表于2018-05-21 11:34 被阅读0次

    前言

    项目开发中,经常需要给测试和产品提供最新的改动成果,如果每次都在xcode上给他们手动安装app会浪费大量的开发时间。使用fastlane自动打包到蒲公英上,然后让他们自己下载最新的包可以节省自己的开发时间。下面将会介绍从安装开发工具到打包的具体过程。

    安装fastlane

    1.确保安装了最新的xcode命令行工具
    使用xcode-select --install命令进行安装会弹出如下提示,按照提示安装即可

    安装xcode命令行工具

    xcode命令行工具提供了xcodebuild、xcrun等自建打包命令工具,纯手动编译打包和发布将消耗大量的时间,fastlane将这些步骤集成在一个命令里。

    2.确保安装了gem命令行工具,可以通过gem -v查看gem版本
    3.使用[sudo] gem install fastlane -NV安装faslane
    4.进入你的项目根目录,输入fastlane init初始化fastlane

    fastlane初始化选项

    fastlane会提示我们使用它做什么:
    选项1:自动截图。手动截图并将处理好后的图片发布到测试或线上平台上需要消耗大量的时间,fastlane可以简化这一步。(目前还没有测试这一选项,因为暂时没用到这个功能)
    选项2:将测试包发布到TestFlight。
    选项3:自动发布到App Store。
    选项4:手动设置(自定义发布平台)。
    这里我们选择选项4。因为,我们需要将测试app提交到蒲公英。

    如果在fastlane init的时候,卡在下图很久,可以先中断bundle update步骤(control+c),然后使用gem cleanup,再尝试使用fastlane init

    error3.png

    安装和配置蒲公英

    1.通过fastlane add_plugin pgyer安装蒲公英插件
    2.编写项目目录下的Fastfile文件如下

    default_platform(:ios)
    
    platform :ios do
        desc "fastlane 打包上传到蒲公英"
        sh "./build.sh"
        lane :fsv_pgyer do
        build_app(export_method: "ad-hoc",
            workspace: "项目.xcworkspace",
            scheme: "scheme")
        pgyer(api_key: "api_key", user_key: "user_key")
    end
    end
    

    现在就可以尝试使用fastlane fsv_pgyer快速打包了,但是在打包的时候,我们遇到一个问题,每次我们修改项目完后,我们需要修改一下build号,然后才能在终端中打包。
    为了解决上述问题,我们创建了一个shell脚本文件,将shell脚本填写在如下如位置。

    脚本位置

    脚本如下:

    # plist路径
    infoPlist=plist路径
    
    # 获取当前build号
    buildCurrentNum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" ${infoPlist})
    
    lastVersion='01'
    currentData=$(date +%y%m%d)
    lastBuildNumber=""
    if [ ${#buildCurrentNum} -lt 8 ];then
        lastBuildNumber=${currentData}$lastVersion
    else
        # 截取时间 18051701 -> 180517 来个今天的时间做比较
        currentDate=${buildCurrentNum:0:6}
        lastVersion=${buildCurrentNum:6}
    
        # 判断xcode的日期是否和当前日期相同
        if [ $currentDate == $currentData ];then
            # 相同的话build + 1
            versionI=$((10#${lastVersion}+1))
            lastVersion=$(printf "%02d" $versionI)
        else
            # 不相同的话build为1
            lastVersion="01"
        fi
    
        lastBuildNumber=${currentData}$lastVersion
    fi
    
    /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $lastBuildNumber" ${infoPlist}
    
    

    如果编译的时候报脚本权限错误,可以使用chmod 777 脚本文件修改该文件权限。
    这样每次使用命令打包时,都会自动修改build号。
    3.pgyer中的api_keyuser_key可以在自己的应用->API中查看

    蒲公英应用

    使用dotenv配置参数

    上述虽然打包成功,但是Fastfile文件不能复用。如果创建一个新的项目或者项目有多个targets时,编译的时候又需要在Fastfile文件中填写一次完整的workspacescheme等等信息。如果能将这些参数写在一个环境配置文件中,只修改一次该环境配置文件,可以方便很多事情。引入了dotenv就可以达到该目的。
    1.使用[sudo] gem install dotenv,或者在Gemfile文件中引入你自己的dotenv文件。
    2.添加一个.env.default文件,并在该文件中写入你的配置项,如:

    FSVWORKSPACE="我的workspace文件名"
    FSVSHEOME="我要编译的scheme"
    

    fastlane会自动将.env.default文件加载到环境配置中,我们可以直接在fastfile文件中直接使用。

    3.使用.env文件


    .env使用

    配置完上述项,就可以使用fastlane fsv_pgyer进行打包提交到蒲公英了。

    项目中常见错误

    1.Couldn't find specified scheme ...

    错误截图
    但是使用命令xcodebuild -workspace 项目.xcodeproj -list可以看到项目是包含Schemes的
    xcodebuild命令

    解决的方法是 项目 -> manager schemes -> shared 勾选


    操作2.png

    2.如果项目打包环境配置错误也会报错。


    证书错误

    参考文档:

    fastlane官方文档
    蒲公英

    项目配置文件地址:github

    相关文章

      网友评论

        本文标题:使用fastlane快速打包到蒲公英

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