zoukankan      html  css  js  c++  java
  • iOS 自动化打包

    理想的情况:不打开工程的情况下,直接双击就能打包出一个IPA文件,这样就可以让测试直接使用 itools 进行安装。

    分如下两种情况:

    1)不依赖cocoapod  管理项目的自动化。

    如果没有一个简单的工程,也没有太多三方库依赖的时候,这种基本能满足开发需求了。  

    shell  脚本(xxx.command 结尾)如下:(这里是哪里提供的地址,本人已经忘记了! sorry)

    ###########Copy Start############

    # CD 定到指定的工程
    cd ~/Desktop
    cd "WorkSpace201601/kuaihuoyunWorkspace/kuaidihuoyun"

    #工程绝对路径
    #cd $1
    project_path=$(pwd)
    #build文件夹路径
    build_path=${project_path}/build

    #工程配置文件路径
    project_name=$(ls | grep xcodeproj | awk -F.xcodeproj '{print $1}')
    project_infoplist_path=${project_path}/${project_name}/${project_name}-Info.plist
    #取版本号
    bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" ${project_infoplist_path})
    #取build值
    bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" ${project_infoplist_path})
    #取bundle Identifier前缀
    bundlePrefix=$(/usr/libexec/PlistBuddy -c "print CFBundleIdentifier" `find . -name "*-Info.plist"` | awk -F$ '{print $1}')


    cd $project_path
    echo clean start ...
    #删除bulid目录
    if [ -d ${build_path} ];then
    rm -rf ${build_path}
    echo clean build_path success.
    fi
    #清理工程
    xcodebuild clean || exit
    #去掉xcode源码末尾的空格
    #find . -name "*.[hm]" | xargs sed -Ee 's/ +$//g' -i ""

    #编译工程
    xcodebuild -configuration Release -workspace ${project_path}/${project_name}.xcworkspace
    -scheme ${project_name}
    ONLY_ACTIVE_ARCH=NO
    TARGETED_DEVICE_FAMILY=1
    DEPLOYMENT_LOCATION=YES CONFIGURATION_BUILD_DIR=${project_path}/build/Release-iphoneos || exit


    if [ -d ./ipa-build ];then
    rm -rf ipa-build
    fi
    #打包
    cd $build_path
    mkdir -p ipa-build/Payload
    cp -r ./Release-iphoneos/*.app ./ipa-build/Payload/
    cd ipa-build
    zip -r ${project_name}.ipa *

    echo ${build_path}/ipa-build/${project_name}.ipa
    #找到桌面路径
    cd ~/Desktop
    #echo Desktop dir
    #echo $(pwd)
    #拷贝文件
    cp -r ${build_path}/ipa-build/${project_name}.ipa $(pwd)
    #清空bulid目录
    cd ${build_path}/ipa-build
    rm -rf Payload
    if [ -d ${build_path} ];then
    rm -rf ${build_path}
    fi

    ###########Copy END############

    2)不使用cocoapod 项目 方法二

    博客地址:http://blog.csdn.net/showhilllee/article/details/47001181

    第一步:  

    初始化xcode 命令行工具
    在终端上执行 :xcode-select --install 

    第二步:

    制作以下脚本(xxx.command)

    project_path=$1
    target_name=$2
    
    cd $project_path
    
    /usr/bin/xcodebuild -target $target_name clean  #清空工程命令
    /usr/bin/xcodebuild -target $target_name        #编译工程命令
    #将APP转为IPA :  /usr/bin/xcrun -sdk iphoneos PackageApplication -v 源app绝对路径 -o 目标ipa文件绝对路径
    /usr/bin/xcrun -sdk iphoneos PackageApplication -v ./build/Release-iphoneos/$target_name.app -o $project_path/$target_name.ipa

    3)使用cocoapod 管理项目时

    我自己的项目是使用cocoapod 进行项目管理的。    

    项目中使用存在如下关系

    A、自定义动态库(网络层),直接进行工程依赖配置

    B、自定义工具类库,使用cocoapods 生成自定义cocoapod 本地库,然后进行引用。

    C、cocoapods 三方库。

    由于上面的关系比较复杂,因此直接使用Xcodebuild 是无法直接编译出来的。 因此我放弃了直接一键打包的思路。

    只好想到直接将手动打好的APP 文件转化为IPA:

    /usr/bin/xcrun -sdk iphoneos PackageApplication -v 源app绝对路径 -o 目标ipa文件绝对路径

     最后希望自己有一天可以找到,使用pod项目的  一键打包方式。

  • 相关阅读:
    cmake
    docker
    rust
    linux
    FPGA
    visual studio
    win+R
    word文档的导出(用freemarker模板导出)(桃)
    iconfont的引入方法
    jquery 日期插件
  • 原文地址:https://www.cnblogs.com/kingbo/p/5455874.html
Copyright © 2011-2022 走看看