听了老徐 老师的课,对Jenkins打包脚本很感兴趣,所以想去网路上自己了解一下,加深印象,对后续学习有所帮助。再加上没有在线听课,和大家一起讨论,所以听课感受的分享留在以后。
关于iOS的构建
对ios源码进行构建,目标是要生成.ipa文件,即iOS应用安装包。
当前,构建方式主要包括两种:
源码->.archive文件 ->.ipa文件
源码->.app文件 ->.ipa文件
这两种方式的主要差异是生成的中间产物不同,对应的,两种构建方式采用的命令也不同。
8# build archive file from source code
xcodebuild \# xctool
-workspace${WORKSPACE_PATH}\
-scheme${SCHEME}\
-configuration${CONFIGURATION}\
-sdk${SDK}
-archivePath${archive_path}
archive
archive:对编译结果进行归档,会生成一个.xcarchive的文件,位于-archivePath指定的目录中。需要注意的是,对模拟器类型的sdk无法使用archive命令。
8# export ipa file from .archive
xcodebuild -exportArchive \
-exportFormat format \
-archivePath xcarchivepath \
-exportPath destinationpath \
-exportProvisioningProfile profilename \
[-exportSigningIdentity identityname]
[-exportInstallerIdentity identityname]
7# build .app file from source code
xcodebuild \# xctool
-workspace${WORKSPACE_PATH}\
-scheme${SCHEME}\
-configuration${CONFIGURATION}\
-sdk${SDK}
-derivedDataPath${OUTPUT_FOLDER}
6# convert .app file to ipa file
xcrun \
-sdk iphoneos \
PackageApplication \
-v${OUTPUT_FOLDER}/Release-iphoneos/xxx.app \
-o${OUTPUT_FOLDER}/Release-iphoneos/xxx.ipa
xcodebuild/xctool参数:
-workspace:需要打包的workspace,后面接的文件一定要是.xcworkspace结尾的;
-scheme:需要打包的Scheme,一般与$project_name相同;
-sdk:区分iphone device和Simulator,可通过xcodebuild -showsdks获取,例如iphoneos和iphonesimulator9.3;
-configuration:需要打包的配置文件,我们一般在项目中添加多个配置,适合不同的环境,Release/Debug;
-exportFormat:导出的格式,通常填写为ipa;
-archivePath:.xcarchive文件的路径;
-exportPath:导出文件(.ipa)的路径;
-exportProvisioningProfile:profile文件证书;
-derivedDataPath:指定编译结果文件的存储路径;例如,指定-derivedDataPath ${OUTPUT_FOLDER}时,将在项目根目录下创建一个${OUTPUT_FOLDER}文件夹,生成的.app文件将位于${OUTPUT_FOLDER}/Build/Products/${CONFIGURATION}-iphoneos中。
关于iOS的构建
对ios源码进行构建,目标是要生成.ipa文件,即iOS应用安装包。
当前,构建方式主要包括两种:
源码->.archive文件 ->.ipa文件
源码->.app文件 ->.ipa文件
这两种方式的主要差异是生成的中间产物不同,对应的,两种构建方式采用的命令也不同。
8# build archive file from source code
xcodebuild \# xctool
-workspace${WORKSPACE_PATH}\
-scheme${SCHEME}\
-configuration${CONFIGURATION}\
-sdk${SDK}
-archivePath${archive_path}
archive
archive:对编译结果进行归档,会生成一个.xcarchive的文件,位于-archivePath指定的目录中。需要注意的是,对模拟器类型的sdk无法使用archive命令。
8# export ipa file from .archive
xcodebuild -exportArchive \
-exportFormat format \
-archivePath xcarchivepath \
-exportPath destinationpath \
-exportProvisioningProfile profilename \
[-exportSigningIdentity identityname]
[-exportInstallerIdentity identityname]
7# build .app file from source code
xcodebuild \# xctool
-workspace${WORKSPACE_PATH}\
-scheme${SCHEME}\
-configuration${CONFIGURATION}\
-sdk${SDK}
-derivedDataPath${OUTPUT_FOLDER}
6# convert .app file to ipa file
xcrun \
-sdk iphoneos \
PackageApplication \
-v${OUTPUT_FOLDER}/Release-iphoneos/xxx.app \
-o${OUTPUT_FOLDER}/Release-iphoneos/xxx.ipa
xcodebuild/xctool参数:
-workspace:需要打包的workspace,后面接的文件一定要是.xcworkspace结尾的;
-scheme:需要打包的Scheme,一般与$project_name相同;
-sdk:区分iphone device和Simulator,可通过xcodebuild -showsdks获取,例如iphoneos和iphonesimulator9.3;
-configuration:需要打包的配置文件,我们一般在项目中添加多个配置,适合不同的环境,Release/Debug;
-exportFormat:导出的格式,通常填写为ipa;
-archivePath:.xcarchive文件的路径;
-exportPath:导出文件(.ipa)的路径;
-exportProvisioningProfile:profile文件证书;
-derivedDataPath:指定编译结果文件的存储路径;例如,指定-derivedDataPath ${OUTPUT_FOLDER}时,将在项目根目录下创建一个${OUTPUT_FOLDER}文件夹,生成的.app文件将位于${OUTPUT_FOLDER}/Build/Products/${CONFIGURATION}-iphoneos中。
来源:http://blog.csdn.net/u011904605/article/details/60335442
未完待续。。。。