测试版本的打包和发布过程

简介

今天因为公司需要使用Fabric发布React Native应用的测试版本,所以在各种查找资料下走通了打包ipa的过程。

前提

首先,真机测试和打包ipa都是需要苹果开发者账号的(付费的)。

  • Certificate 获取
    在拥有开发账号之后,在本机上生成certificate request, 然后上传到 Apple Developer Console。创建自己的开发证书(certificate)。
  1. 创建新的 Certificate
    打开Keychain Access,选择 Certificate Assistant => Request a Certificate From a Certificate Authority...,填写完邮箱后点击Continue并保存。在Apple Developer 页面下的 Add iOS Certificate 上传 CSR 文件。之后就可以下载你的证书了。 这里提到的证书有 DeveloperProduction 两种。
  2. 使用 .p12 文件安装
    能创建的证书数量好像是有限制的,具体数量没有测试过不是很清楚。为了避免浪费,可以让已经申请证书的人的电脑上导出.p12文件,然后再安装到自己的电脑上面。导出证书(p12)的人必须是创建 CSR 的人,因为需要创建时候产生的 private key,否则 导出选项中的 .p12 是灰色不可选的。
  • 创建 App ID
    在侧栏的 Identifiers 下面的 App IDs 下创建和你的工程对应的 id。创建 Bundle ID 是一个比较麻烦的事情,因为随着苹果应用数量的不断增加,应用的 Bundle ID 也被注册的差不多了(☞有意义的名称)。所以多试几个吧。

  • 注册你的 iPhone
    只需要在iTunes里面找到你的 UUID,将它注册一下就可以了。

  • 创建 Provisioning Profiles
    Apple Developer 侧栏的 Provisioning Profiles 中创建。这个文件中包含了:证书,App ID 和 允许安装设备的信息。

Note : 其中关于这几个文件具体的含义可以参照这篇文件

打包 IPA
  • Clean
    进入你的工程目录,然后执行以下命令:
    xcodebuild clean -project YourProjName.xcodeproj -scheme YourProjName -configuration Release
    如果使用 Cocoapod 来管理库的话,就是用以下命令:
    xcodebuild clean -workspace YourProjName.xcworkspace -scheme YourProjName -configuration Release
    上面命令用到的参数意义如下:
-project YourProjName.xcodeproj:编译项目名称
-workspace YourProjName.xcworkspace:编译工作空间名称
-scheme YourProjName : scheme名称(一般会与你的项目名称相同)
-configuration Release:(Debug/Release)

Clean 成功了之后会在命令行提示
** CLEAN SUCCEEDED **

  • Archive (存档)
    使用以下命令将工程存档:
    xcodebuild archive -project YourProjName.xcodeproj -scheme YourProjName -archivePath /Your Path/YourProjName.xcarchive

对于.xcworkspace 使用:
xcodebuild archive -workspace YourProjName.xcworkspace -scheme YourProjName -archivePath /Your Path/YourProjName.xcarchive

Archive 成功之后会提示
** ARCHIVE SUCCEEDED **

  • Export IPA
    IPA 就是苹果应用的安装包。
    运行一下指令:
    xcodebuild -exportArchive -archivePath $PWD/distribution/YourProjName.xcarchive -exportPath $PWD/distribution/YourProjName -exportOptionsPlist $PWD/distribution/distribution.plist
    Note:关于 exportOptionsPlist 的信息可以参照 这篇文章 或者 这篇文章
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容