xcodebuild命令

xcodebuild 生成app以及生成ipa文件

xcodebuild命令

查看信息

查看xcode的版本号和build版本

1
xcodebuild -version

显示当前系统的sdk、及其版本

1
xcodebuild -showsdks

显示工程项目信息

先cd到工程目录下(有*.xcodeproj的目录,比如MakeFileTest.xcodeproj),然后输入命令

1
xcodebuild -list

如果未指定Configurations,默认为release

用法

build

1
xcodebuild -sdk iphonesimulator5.0

输出一堆编译过程,最后输出** BUILD SUCCEEDED ** 表示创建成功;若输出 ** BUILD FAILED **表示创建失败

与在xcode中编译不同 ,成功后会在当前工程目录下创建build目录
默认是Release工程

clean

1
xcodebuild clean -sdk iphonesimulator5.0

其他参数

未指定target默认编译第一个
未指定sdk默认编译iphoneos版本

指定Target,指定Debug模式,指定真机

1
xcodebuild -sdk iphoneos9.3 -target LAIQUSDKRes -configuration Debug

指定所有target,指定Debug,指定真机

1
xcodebuild -sdk iphoneos9.3 -alltargets -configuration Debug

指定工程,指定target,指定arch

1
xcodebuild -project wlle.xcodeproj -target LAIQUSDK -configuration Debug -sdk iphoneos9.3 ARCHS='armv7 arm64' VALID_ARCHS='armv7 arm64'

高级用法:给应用签名。上面两个命令都可以给应用签名的,格式分别是:

1
2
xcodebuild -target targetName CODE_SIGN_IDENTITY=”iPhone Distribution:XXXXXX”
xcrun -sdk iphoneos PackageApplication -v 源app路径 -o 输出的ipa路径 –sign “iPhone Distribution:XXXXXX”

若工程含有pod

参考http://stackoverflow.com/questions/23344617/xcodebuild-of-cocoapods-project-with-product-name-fails

先编译pods工程所有target

再编译目标target

生成ipa

查到有三种方式:

将build生成app文件压缩成ipa文件

参考: http://www.apblog.cn/blog/2013/10/18/ioskai-fa-zi-dong-gou-jian-zi-dong-da-bao/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ROOT_DIR=$(pwd)/../Build    # build目录
APP_PATH=$ROOT_DIR/Release-iphoneos/XCToolDemo.app
# 压缩成ipa安装包
if [ -a $APP_PATH ]; then
echo "[ Start ZIP To ipa ]"
mkdir "$ROOT_DIR/Payload"
rm "$ROOT_DIR/Demo.ipa"
cp -r "$APP_PATH" "$ROOT_DIR/Payload"
cd "$ROOT_DIR"
zip -r "$ROOT_DIR/Demo.ipa" "Payload"
rm -rf "$ROOT_DIR/Payload"
echo "[ ZIP To ipa SUCCESS!! ]"
else
echo ".app file $APP_PATH not exist!!"
fi

通过 xcrun负责给xxx.app(签名并)打包成xxx.ipa

参考:http://121.199.54.6/wordpress/?p=865

第一步清理:

1
/usr/bin/xcodebuild -target targetName clean

第二步编译:

1
/usr/bin/xcodebuild -target targetName

第三步打包:

1
/usr/bin/xcrun -sdk iphoneos PackageApplication -v path/To/xxx.app -o xxx.ipa

先生成archive包再生成ipa包

参考 :http://www.voidcn.com/blog/potato512/article/p-6150876.html

1、生成archive包

1
2
3
4
// 使用pod管理第三方
xcodebuild archive -workspace 项目名称.xcworkspace -scheme 项目名称 -configuration Release -archivePath archive包存储路径 CODE_SIGN_IDENTITY=证书 PROVISIONING_PROFILE=描述文件UUID
// 未使用pod管理第三方
xcodebuild archive -project 项目名称.xcodeproj -scheme 项目名称 -configuration Release -archivePath archive包存储路径 CODE_SIGN_IDENTITY=证书 PROVISIONING_PROFILE=描述文件UUID

2、生成ipa包

1
xcodebuild -exportArchive -exportFormat ipa文件格式 -archivePath archive包存储路径 -exportPath ipa包存储路径  -exportProvisioningProfile 描述文件名称