预备知识

打包机器需要安装 Xcode 7,安装 xcode command line tools (用xcode-select --install命令安装)
Xcode7.2 上架流程
iOS 开发者中的公司账号与个人账号之间有什么区别?

Bundle ID 就是 Xcode 里 iOS 项目 Target - Build Settings 下的 Bundle identifier
prefix + bundle ID 组成 App ID
Provisioning Profile 文件指定了 App ID 和 Certificate

Xcode 中 iOS 项目 Build Settings 里的

  1. Bundle ID
  2. Provisioning Profile
  3. Code Signing Identity 指定的 Certificate 三者需要是对应的 在一台有这个 Certificate 和 Provisioning Profile 的电脑上才可以生成这个项目的 ipa

命令行打包

使用 workspace 时的脚本

xcodebuild clean -project ./MyProject.xcodeproj -configuration Release
xcodebuild archive -workspace ./MyProject.xcworkspace -scheme MyProject -archivePath ./MyProject.xcarchive CODE_SIGN_IDENTITY="iPhone Distribution: SHANGHAI TESTERHOME GROUP CO., LTD." PROVISIONING_PROFILE="97824172-beb3-4674-a266-13f57242277f"
xcodebuild -exportArchive -archivePath ./MyProject.xcarchive -exportPath ./outputiPA -exportOptionsPlist ./exportOptions.plist

使用 project 时的脚本

xcodebuild clean -project MyProject.xcodeproj -configuration Release 
xcodebuild archive -project ./MyProject.xcodeproj -scheme MyProject -archivePath ./MyProject.xcarchive CODE_SIGN_IDENTITY="iPhone Distribution: SHANGHAI TESTERHOME GROUP CO., LTD." PROVISIONING_PROFILE="97824172-beb3-4674-a266-13f57242277f"
xcodebuild -exportArchive -archivePath ./MyProject.xcarchive -exportPath ./outputiPA -exportOptionsPlist ./exportOptions.plist

用 Xcode 打包的步骤是

  1. Product - Clean ,对应脚本中 xcodebuild clean 命令
  2. Product - Archive,对应 xcodebuild archive 命令
  3. Export ,对应xcodebuild -exportArchive

其他
iOS 开发-Xcode Debug、Release、Archive、Profile、Analyze 概念解释
每个 Xcode 大版本之间经常有变动,注意以官网为准


↙↙↙阅读原文可查看相关链接,并与作者交流