命令行生成ipa经验总结

话说,大神都是用来膜拜的,只言片语,抛砖引玉。关键时刻还得靠自己去试错,下面把自己的试验结果给出,让大家少走弯路。

先说一下背景:

上一个项目,lbs,进度也不是很紧,xcode编译,拖拖拽拽生成ipa,测试、上传,倒不觉繁琐。来到新公司,oem好吧,一个项目要分别给十多个厂商做版,拖拖拽拽就晕倒了,无意看到xcodebuild 和xcrun的用法,试着用命令行又玩不转,于是放下。最近实在受不了拖拖拽拽的生活了,发狠给写了个脚本,然后,整个世界清净了。

说说下面的脚本:

生成ipa的前两个脚本,需要进入.xcodeproj那个目录中执行。

其中,factory,appName,version这些变量在另一个脚本中定义,方便调用。

第一个脚本是用来生成测试ipa和上传ipa的,第二个脚本是用来生成测试ipa的,第三个脚本是用来删除.svn文件的,主要用于版本控制了。需要的童鞋拿去改改就行了。

#!/bin/sh

target="Power7 MobileView"

distDir="/Users/tuchangwei/Documents/WorkSpace/Release/${factory}/${appName}_V${version}"

rm -rdf "$distDir"

mkdir "$distDir"

 

uploadDir="${distDir}/Upload AppStore"

rm -rdf "$uploadDir"

mkdir "$uploadDir"

 

/usr/bin/xcodebuild -target "$target" clean

 

echo "******************start build*********************"

/usr/bin/xcodebuild -target "$target" CODE_SIGN_IDENTITY="$distribution"

 

 

echo "******************start pick .ipa*********************"

/usr/bin/xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/*.app -o "${uploadDir}/${appName}.ipa" --sign "$distribution"

 

echo "******************start pick test .ipa*********************"

codesign -f --sign "iPhone Developer: Nelson Chen (JPMGJWJFAQ)" build/Release-iphoneos/*.app

/usr/bin/xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/*.app -o "${distDir}/${appName}_V${version}.ipa" --sign "iPhone Developer: Nelson Chen (JPMGJWJFAQ)" --embed "/Users/tuchangwei/Library/MobileDevice/Provisioning Profiles/D788EEA0-848E-4F5E-AA30-87D38154DA9B.mobileprovision"


#!/bin/sh

target="Power7 MobileView"

distDir="/Users/tuchangwei/Desktop/Test"

rm -rdf "$distDir"

mkdir "$distDir"

 

 

/usr/bin/xcodebuild -target "$target" clean

 

echo "******************start build*********************"

/usr/bin/xcodebuild -target "$target" 

 

 

echo "******************start pick test .ipa*********************"

codesign -f --sign "iPhone Developer: Nelson Chen (JPMGJWJFAQ)" build/Release-iphoneos/*.app

/usr/bin/xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/*.app -o "${distDir}/test.ipa" --sign "iPhone Developer: Nelson Chen (JPMGJWJFAQ)" --embed "/Users/tuchangwei/Library/MobileDevice/Provisioning Profiles/D788EEA0-848E-4F5E-AA30-87D38154DA9B.mobileprovision"


#!/bin/sh

 

echo "start delete .svn..."

find $PWD/ -name .svn -print0 | xargs -0 rm -rf

echo "finish delete .svn."

posted @ 2012-12-29 12:09  ValeTu  阅读(927)  评论(1编辑  收藏  举报