Mac下用命令行打ipa包
来源:互联网 发布:褪黑素 知乎 编辑:程序博客网 时间:2024/06/09 14:36
随着ios平台的发展以及发布要求的多样性,测试的需求,自动打包可一定程度上提高效率。
自动打包的方式有如下几种:
一、使用xcodebuild进行打包
参考apple文档:https://developer.apple.com/library/prerelease/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html
xcodebuild -project "${TARGET}.xcodeproj" -target ${TARGET} CODE_SIGN_IDENTITY="${IDENTITY}" clean //将project clean下 xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme archive //进行archive,生成xcarchive文件
xcodebuild -exportArchive -exportFormat IPA -archivePath MyMobileApp.xcarchive -exportPath MyMobileApp.ipa -exportProvisioningProfile 'MyMobileApp Distribution Profile'
上述红色背景的命令行,确实是可以生成.ipa,但是可能会导致不能安装,https://developer.apple.com/library/prerelease/mac/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html , 链接是apple的官方文档,文档大概的意思将 xcarchive文件作为.ipa方式进行导出, 为什么不能在ios设备上安装?
二、原生xcodebuild、xcrun进行打包,需要详细了解,可以看下这个链接 http://www.jianshu.com/p/1229476fbce4
具体打包指令和第一种方法区别不大,不同代码如下:
xcodebuild -scheme Zxh -configuration ${buildConfiguration} clean //对代码进行clean
xcodebuild -project Zxh.xcodeproj -scheme Zxh -configuration ${buildConfiguration} -destination generic/platform=ios archive -archivePath ${buildPath} //进行build,相当于在xcode里面进行command+b,生成.app文件
#xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/Zxh.app -o ${ipaName}.ipa --sign "iPhone Distribution:(打包证书)" //根据.app文件生成的ipa文件导出到指定目录
三、xctool进行自动打包
参考网页地址:http://www.tuicool.com/articles/uIZRZjy
1、确保安装了xctool
没有安装xctool,可以用brew安装,没有安装brew的,可以通过搜索安装brew,然后执行如下操作安装xctool
安装命令:sudo brew install xctool
介绍下xctool命令:
xctool 是FaceBook开源的一个命令行工具,用来替代苹果的xcodebuild工具。
先附上打包用的参考代码,如下:
#
cd AutoProject //进入项目目录
#
buildDay=$(date +%Y%m%d) //获取当前日期
buildTime=$(date +%Y%m%d%H%M) //获取当前时间
profile=”xxxx” //设置打包配置文件
#
buildConfiguration=”QA” //build时用的证书
buildPath=”../ArchiveProduction/QA/${buildDay}/Auto_QA_${buildTime}.xcarchive” //build后归档的文件目录
ipaName=”../ipa/QA/${buildDay}/Auto_QA_${buildTime}.ipa” //打好包放置位置
#
xctool -scheme AutoProject -configuration ${buildConfiguration} clean //clean下工程
xctool -scheme AutoProject -configuration ${buildConfiguration} archive -archivePath ${buildPath} //对项目进行Archive, 将xcarchive文件导出到指定目录
xcodebuild -exportArchive -exportFormat IPA -archivePath ${buildPath} -exportPath ${ipaName} - exportProvisioningProfile “$profile” //生成的ipa文件导出到指定目录, 此处依然使用的是xcodebuild进行打包, 待优化
以上代码是从参考文件copy过来的,只是进行了相应的注释, 具体进行打包,需要进行适当的调整命令
四 、使用xcodebuild 进行命令行打包,如果想了解更加详细的命令可使用 man xcodebuild 在终端查看更详细的命令行命令
1.首先 清理工程
schemeProduct 为你的工程名
首先,进入工程所在的文件夹,比如我的工程放在桌面上的schemeProduct文件夹中,输入命令:cd /Users/a58/Desktop/schemeProduct
然后,清理工程,输入命令:xcodebuild clean -scheme schemeProduct
2 第二步, 生成xcarchive 文件
xcarchive 为最后生成ipa包的中间文件,我这里使用的是workspace,命令为:xcodebuild -workspace PublicModule.xcworkspace -schemeschemeProduct archive -archivePath ../schemeProduct
温馨提示:这样生成的xcarchive文件默认的放到了工程所在的目录下,也可以用命令指定文件的路径,比如这样:
xctool -workspace PublicModule.xcworkspace -scheme PublicModule archive -archivePath ./PublicModule ,这样是制定生产的xcarchive文件放在PublicModule中。“.” 在命令行中代表当前目前,“PublicModule”代表你给xcarchive文件的命名,这个是可以自己改的。如果你要讲生成的xcarchive 放在桌面,可以这样写命令:
xctool -workspace PublicModule.xcworkspace -scheme PublicModule archive -archivePath ../PublicModule
".."代表当前目录的上一级目录。
3. 命令为:xcodebuild -exportArchive -exportFormat ipa -archivePath ./schemeProduct.xcarchive -exportPath ./schemeProduct.ipa -exportProvisioningProfile "证书" -configuration "Release"
或者如果本地工程中有证书就直接用
xcodebuild -exportArchive -exportFormat ipa -archivePath ./PublicModule.xcarchive -exportPath ./PublicModule.ipa -exportProvisioningProfile "publicDabao" -configuration "Release"
五、xcodebuild 命令打包命令详解
指定工程名,当同一目录下有多个工程时必须指定。
-target tagrgetname
指定编译的target的名称。
-alltargets
编译工程中的所有target。
-worksace workspacename
指定 workspace 的名称。
-scheme schemename
指定 scheme 的名称,编译 workspace 时是必须的。
-destination destinationspecifier
使用 destinationspecifier 指定的设备作为目标设备。默认与 scheme 中选择的兼容。
-destination-timeout timeout
设置搜索目标设备的超时时间,默认是30秒。
-configuration configurationname
当编译每个 target 时使用 configurationname 指定的配置。
-arch architecture
当编译每个 target 时使用 architecture 指定的架构类型。
-sdk [<sdkfullpath> | <sdkname>]
指定编译时所用的 SDK。参数可以是 SDK 的绝对路径,也可以是 SDK 的名称。
-showsdks
列出所有 Xcode 可识别的可用的 SDK,这个参数不会启动编译。
-list
列出工程中的所有 target 和 配置,或者 workspace 的 schemes。不会启动编译。
-derivedDataPath path
覆盖编译 workspace 的 scheme 时的结果数据存放的路径。
-resultBundlePath path
编译 workspace 的 scheme 时把一个 bunndle 写到指定的路径。
-exportArchive
指定一个可以被导出的 archive 文件。需要 -exportFormat,-archivePath和-exportPath` 配合使用,不能在编译时单独使用。
-exportFormat format
指定需要被导出的 archive 文件的格式。可行的格式是 IPA(iOS 包文件),PKG(Mac 包文件)和 APP。如果未指定,则 xcodebuild 则会自动检测使用IPA 或 PKG 格式。
-archivePath xcarchivepath
指定 archive 路径。
-exportPath destinationpath
指定导出的目标文件路径。
-exportProvisioningProfile profilename
指定导出 archive 文件时所使用的 provisioning pofile。
-exportSigningIdentity identityname
指定导出 archive 文件时所使用的应用签名 id。在可能的情况下,这个可以被 -exportProvisioningProfile自动推导出来。
-exportInstallerIdentity identityname
指定导出 archive 文件时所使用的安装签名 id。如果可能,这个可以被 -exportSigningIdentity 或 -exportProvisioningProfile 自动推导出来。
-exportWithOriginalSigningIdentity
指定创建可被导出的 archive 文件时所使用的签名文件。
buildaction ...
指定一个或多个编译 target 时的编译行为。可行的编译行为有: - build 编译根环境下(SYMROOT)的 target。默认行为。
• analyze 编译并且分析根环境(SYMROOT)下的一个 target 或者 scheme。需要指定一个 scheme。
• archive Archive 根环境(SYMROOT)下的一个 scheme。需要指定一个 scheme。
• test 测试跟环境(SYMROOT)下的一个 scheme。需要指定一个scheme。需要指定一个 scheme 和一个可选的目标。
• installsrc 拷贝工程代码到源代码根目录(SRCROOT)。
• install 编译 target 并且安装到发布目录下的 target 安装目录。
• clean 从编译根目录下(SYMROOT)移除编译产品和中间文件。
-xcconfig filename
当编译所有 targets 的时候从指定的文件加载编译设置。这些设置会覆盖其他的编译设置,包括命令行中单独传递的设置。
-dry-run, -n
打印本来要执行但是未执行的命令。
-skipUnavailableActions
跳过不能执行的编译而不是失败。这个选项仅仅在 -scheme 参数使用了的时候有效。
setting=value
设置编译设置的值为 value。
-userdefault=value
设置用户默认设置为 value。
-version
显示 Xcode 的版本信息。不会启动编译。当和 -sdk 一起使用的时候,将会显示指定的 SDK 的版本信息,或者-sdk 后面未指定 SDK 则会显示所有的 SDK 版本信息。另外,如果指定了 infoitem 参数则一个单行的版本信息将会显示。
-usage
- Mac下用命令行打ipa包
- Mac下用命令行打ipa包
- unity3d 在mac 下命令打包发布IPA包
- Windows、Mac下的常用命
- mac下ipa自动编译脚本---自用
- cocos2d-x 制作ipa包变成mac app 问题
- Ubuntu下如何用命令运行deb安装包
- Mac 下制作 安装包
- Mac下配置jar包
- mac 下包管理工具 brew
- mac下解压war包
- 打ipa包
- xcode5制作ipa包
- Xcode 打包 ipa 包
- Xcode 打包 ipa 包
- Xcode打包ipa包
- Xcode 导出IPA包
- iOS打IPA包
- Compiling erro C2061 ( identifier 'STAT_CHUNK')问题
- 解决 "检出Maven项目web.xml is missing"错误 和 “Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- cocos shader崩溃问题
- node orm sequelize model-table 互相生成
- [分块] BZOJ 2122 工作评估
- Mac下用命令行打ipa包
- 关于soap协议
- linux 下svn和git命令的区别
- 配置开发环境Eclispse
- C# 中的访问修饰符和声明修饰符
- cocos2d-JS 本地存储数据(最高分设置)
- Linux下mysql的常用命令
- 自动执行任务-其实也有php
- 怎么练就好身材→增肌与减脂