iOS 打包脚本-带上传 fir.im

工具dugege • 于 2015-09-25 10:19:42 +0800 • 最后由 NaixSpirit2015-10-22 22:38:53 +0800 9177 阅读

经常要打包传fir.im给测试,所以写了个打包脚本,贡献出来 功能是打包和上传

依赖

  1. 需要安装FIR.im CLI 戳这里
  2. 需要获取FIR.im 的 token Token 获取
  3. 需要修改 project="your project name" 为你得target名
  4. 需要是pod创建的workspace工程(当然如果不是,自己改改编译那行也是可以的)

usage

和工程反在一个目录,假设脚本起名为 make
那么 * make //编译 * make -u //编译并上传 * make -v //编译并显示详细log


贴代码: ```

/bin/sh

coding utf-8

上传模块需要FIR.im CLI

安装gem install fir-cli

token 获取 http://fir.im/user/info

安静模式,不输出多余log

quiet=1

while getopts "huv" arg #选项后面的冒号表示该选项需要参数 do case $arg in t) echo "t's arg:$OPTARG" #参数存在$OPTARG中 ;; u) upload=1 ;; v) quiet=0 ;;

     h)
        echo Commands:
        echo "  make -u     #build ipa and upload fir.im"
        ;;
     ?)  #当有不认识的选项的时候arg为?
    echo "unkonw argument"
;;
esac

done

token="xxxxxxxxxxxxxxxx" #token 获取 http://fir.im/user/info

echo '--------------start----------------' echo '>> clean...' proj=$(cd $(dirname ${0}) ; pwd -P) xcodebuild clean 1>/dev/null project="your project name" product="$proj/build/$project.ipa" rm $product

echo '>> build...' if [[ $quiet == 1 ]] then xcodebuild -workspace "$project.xcworkspace" -scheme "$project" archive -archivePath $proj/build/$project.xcarchive -configuration Release -sdk iphoneos >/dev/null else xcodebuild -workspace "$project.xcworkspace" -scheme "$project" archive -archivePath $proj/build/$project.xcarchive -configuration Release -sdk iphoneos fi

echo '>> create ipa...' xcrun -sdk iphoneos PackageApplication -v "$proj/build/$project.xcarchive/Products/Applications/$project.app" -o "$product"

copy dsym to xcarchives

echo '>> archive dsym...' if [[ -d $proj/build/$project.xcarchive ]] then filename=$(date "+%Y%m%d%H%M.%S") mkdir -p "$proj/build/archives" cp -r $proj/build/$project.xcarchive/ "$proj/build/archives/$filename.xcarchive" cp "$product" "$proj/build/archives/$filename.xcarchive" fi

if [[ $upload == 1 ]] && [[ -f "$product" ]] then fir l $token fir p "$product" clear fir i "$product" else open "$proj/build" fi ```

本帖已被设为精华帖!
回复: 7
  • gexiao 2015-09-27 01:57:04 +0800

    echo '>> build...' if [[ $quiet == 1 ]] then xcodebuild -workspace "$project.xcworkspace" -scheme "$project" archive -archivePath $proj/build/$project.xcarchive -configuration Release -sdk iphoneos >/dev/null else xcodebuild -workspace "$project.xcworkspace" -scheme "$project" archive -archivePath $proj/build/$project.xcarchive -configuration Release -sdk iphoneos fi 这里的 -scheme "$project" 可以再定义一个 target。如果再加上 codesign 的代码一次性生成 ipa 包就更好了。

  • dugege 2015-09-27 10:07:05 +0800

    @gexiao 我以前试验好像workspace和target选项冲突,也不知道是不是我姿势不对···

  • iBcker 2015-09-27 10:08:34 +0800

    @gexiao xcodebuild能一次性生成ipa?不是要先生成archive再签名成ipa的么?难道我记错了?

  • gexiao 2015-09-28 07:50:14 +0800

    @iBcker 是的,要先archive。我看 fir 的文档里提到可以生成 ipa,但没明白它哪里设置的证书信息。

  • gexiao 2015-09-28 07:50:44 +0800 2

    @dugege 我试了是可以正常archive 的,有错误了按它的提示改改。

  • iBcker 2015-09-28 08:15:44 +0800

    @gexiao
    /usr/bin/xcrun -sdk iphoneos PackageApplication -v "${appfile}" -o "$ipapath" --sign "${sign}" --embed "$PROVISIONINGPROFILEPATH"

  • NaixSpirit 2015-10-22 22:38:53 +0800 2

    使用 fir-cli 工具fir b xxxx -p 一行代码搞定

    file file

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,见 Emoji cheat sheet
  • @name 会链接到用户页面,并会通知他
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
Ctrl+Enter