#!/bin/sh

#  autoBuild.sh
# CTest
#
# Created by Ethan on 14-11-3.
# Copyright (c) 2014年 Ethan. All rights reserved. ###############################################
#使用方法
#./build.sh arg1 arg2 arg3 arg4
#arg1 项目的路径,例如:/Volumes/work/buildCommand/test/CTest
#arg2 为项目编译ID
#arg3 为编译完成回调地址
#arg4 公司项目特殊用法
#服务器需要修改源
############################################### ###############################################
#回调函数
function fCallBack()
{
echo $1 #1/-1
echo $2 #buildID
echo $3 #http://www.baidu.com
#echo ${logPath}
# echo ${ipaPath} url="${3}?status=${1}&buildId=${2}&logger=${logPath}&package=${ipaPath}"
#echo $url
curl $url
} ###############################################
#参数检查
if [ -z "$1" ]; then
echo "error:项目路径为空"
exit 1
fi if [ -z "$2" ]; then
echo "error:项目编译ID为空"
exit 1
fi if [ -z "$3" ]; then
echo "error:回调地址为空"
exit 1
fi if [ -z "$4" ]; then
echo "error:证书编号为空"
exit 1
fi #日志地址
logPath="${1}/log.txt"
#ipa地址
ipaPath="${1}/${2}.ipa"
##############################################
#证书检查
PROFILE_FILE="/Volumes/${4}.mobileprovision"
echo $PROFILE_FILE
UUID=`/usr/libexec/PlistBuddy -c 'Print :UUID' /dev/stdin <<< $(security cms -D -i ${PROFILE_FILE} )`
if [ -z "$UUID" ]; then
echo "error:找不到证书"
exit 1
fi
echo $UUID
cp ${PROFILE_FILE} "$HOME/Library/MobileDevice/Provisioning Profiles/${UUID}.mobileprovision" ###############################################
#清理项目
cd $1
xcodebuild clean ###############################################
#编译并将日志写到文件 正式使用需要修改PROVISIONING_PROFILE
xcodebuild -sdk iphoneos PROVISIONING_PROFILE=${UUID} > ${logPath}
#判断是否编译成功
if [[ $? -eq 0 ]]; then
echo "build success"
else
echo "build error"
fCallBack "-1" $2 $3
exit 2
fi ###############################################
#生成ipa xcrun -sdk iphoneos PackageApplication -v ./build/Release-iphoneos/*.app -o ${ipaPath}
if [[ $? -eq 0 ]]; then
rm -rf build
echo "create ipa success"
fCallBack "1" $2 $3
exit 0
else
echo "create ipa error"
fCallBack "-1" $2 $3
exit 2
fi

  

xcodebuild编译ipa的更多相关文章

  1. Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器

    最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...

  2. (转) xcodebuild和xcrun自动化编译ipa包 笔记

    转自:http://blog.csdn.net/totogo2010/article/details/8883100 打包过程 xcodebuild负责将工程源文件编译成xxx.app xcrun负责 ...

  3. xcodebuild导出ipa方法

    xcode 5.x版本导出ipa是不需要开发者账号,而xcode6以后导出ipa必须要求选择开发者team,无法绕开,但我们使用xcodebuild命令行可以无视这个限制 环境: mac osx 10 ...

  4. (转)命令行下,用 xcodebuild 生成ipa文件,通过 itms-services 协议安装

    准备工作:已经设置好,xcode中的证书,证书必须是企业级证书,才能通过 itms-services 协议安装 Step 1:  把以下代码保存到一个web目录中,命名为 “auto.plist”,注 ...

  5. Xrun 将 app 转化为 IPA

    xcodebuild命令行打包,在使用xcodebuild编译后发现有些东西有些临时性质的东西,依然存在,搜索了一些资料,找到有clean的命令:在之前打包都是生成app文件,将app打包成ipa文件 ...

  6. xcodebuild和xcrun实现自动打包iOS应用程序

    随着苹果手持设备用户的不断增加,ios应用也增长迅速,同时随着iphone被越狱越来越多的app 的渠道也不断增多,为各个渠道打包成了一件费时费力的工作,本文提供一种比较智能的打包方式来减少其带来的各 ...

  7. (转)最近研究xcodebuild批量打包的一些心得

    以前的时候只知道做安卓开发的兄弟挺辛苦的,不但开发的时候要适配一堆的机型,好不容易开发完了还要打一堆不同的包给不同的市场.没想到现在这些市场都开辟iOS市场,于是需要打一堆的包给不同的市场,面对暂时给 ...

  8. 最近研究xcodebuild批量打包的一些心得

    http://blog.csdn.net/tlb203/article/details/8131707 转自Rainbird的个人博客 以前的时候只知道做安卓开发的兄弟挺辛苦的,不但开发的时候要适配一 ...

  9. class-dump 反编译私有的库和应用

    一.下载并安装class-dump 下载class-dump-3.5.dmg  点击下载 下载完成以后双击.dmg的文件,将里面的class-dump拷贝到/usr/local/bin 设置权限chm ...

随机推荐

  1. Device Tree(二):基本概念

    转自:http://www.wowotech.net/linux_kenrel/dt_basic_concept.html 一.前言 一些背景知识(例如:为何要引入Device Tree,这个机制是用 ...

  2. [BI项目记]-新任务处理

    上一篇主要介绍如何借助TFS创建一个新的工作项,此篇主要演示如何对其进行处理. 首先回顾下新工作项不同阶段的定义. 接下来进入到开发阶段,根据需求创建五个报表.打开SQL Server Data To ...

  3. Ubuntu(Linux系统)虚拟机工具vmtools详细说明

    安装虚拟机工具vmtools大概步骤如下: 个人总结步骤: 第一步:点击虚拟机软件的vm工具栏选项,选择install vmware tools(安装VMware Tools) 第二步:桌面会出现一个 ...

  4. Android 登录界面与首页的设计

    全屏效果 //取消标题,取消状态栏 this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(Wind ...

  5. POJ 2991–Crane【线段树+几何】

    题意: 把手臂都各自看成一个向量,则机械手的位置正好是手臂向量之和.旋转某个关节,其实就是把关节到机械手之间的手臂向量统统旋转. 由于手臂很多,要每个向量做相同的旋转操作很费时间.这时就可以想到用线段 ...

  6. ExtJS 中类的选项 - config

    首先看一个例子,我们在ExtJS中定义一个Window对象,代码如下: var win = Ext.create("Ext.window.Window", { title: '示例 ...

  7. ADT + JNI实例

    Author: Maddock Date: 2015-07-09 本文简单记录了Android中利用jni开发程序初级教程: 步骤 1 下载安装ADT 2 配置NDK 3 新建安卓工程 4 测试jni ...

  8. Double的精度问题

    /** * 自定义Math工具类 * */ public class MyMathTools { /** * 提供精确的小数位四舍五入处理. * * @param v * 需要四舍五入的数字 * @p ...

  9. hive学习笔记

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  10. Python学习日志(二)

    在网易云课堂看到小甲鱼的python视频,想起以前看就是看他的视频学C的虽然后来不了了之都怪我自己啦,于是决定跟着这个视频来学python啦! IDLE IDLE其实是一个python shell , ...