如何使用命令行从用于iOS的react-native应用程序创建.ipa文件进行测试

时间:2018-12-03 13:47:01

标签: ios iphone reactjs react-native

我使用的是本机版本0.57.7如何使用命令行从.ipa创建 react-native app文件。

我遵循了一些有关如何从本机应用程序创建.ipa文件的堆栈溢出答案(as an example),以便可以将其安装在Iphone中并进行测试。

我找到的答案太旧或与我的本机应用程序版本0.57.7没有相同的目录结构。

能否请您告诉我如何生成.ipareact-native的{​​{1}}文件,以便在iphone上对其进行测试。

2 个答案:

答案 0 :(得分:1)

如果您已对供应配置文件进行了排序,那么它很简单。尽管要能够在不将其插入计算机的情况下在设备上进行测试,您将需要一个ad-hocenterprise设置配置文件。

因此,您将需要配置概要文件和希望安装在计算机上的distribution certificate

基本上,您需要运行两个命令来创建ipa。

  1. 创建档案。
  2. 签署存档。 (这将从存档中创建IPA)

文件夹结构

在我的应用程序的根目录中,我有以下文件夹

  • android
  • 应用
  • ios
  • node_modules

因此,在应用程序的根目录中打开一个终端,我们可以开始:


创建档案文件

现在,无论您是否使用椰壳粉,都有细微的差别。您可以在这两个不同的命令中看到不同之处,特别是projectworkspace替换,xcodeprojxcworkspace替换。

选择最适合您的设置的一个。结果将是应用程序根目录中的名为myawesomeapp.xcarchive的文件。

没有Cocoapods /项目

xcodebuild "-project" "ios/myawesomeapp.xcodeproj" "-scheme" "myawesomeapp" "-configuration" "Release" "DEVELOPMENT_TEAM=YOUR_TEAM_ID" "PROVISIONING_PROFILE_SPECIFIER=YOUR_TEAM_ID/myawesomeapp_profile_name" "archive" "-archivePath" "myawesomeapp.xcarchive"

Cocoapods /工作区

xcodebuild "-workspace" "ios/myawesomeapp.xcworkspace" "-scheme" "myawesomeapp" "-configuration" "Release" "DEVELOPMENT_TEAM=YOUR_TEAM_ID" "PROVISIONING_PROFILE_SPECIFIER=YOUR_TEAM_ID/myawesomeapp_profile_name" "archive" "-archivePath" "myawesomeapp.xcarchive"

我想指定DEVELOPMENT_TEAMPROVISIONING_PROFILE_SPECIFIER,以便为应用程序使用正确的配置文件。

我个人使用分发配置文件时,选择了Release的配置选项,以便随后将内置的ipa传递给测试团队。

如果您没有对设置进行任何花哨的操作,则可以将myaewsomeapp替换为应用程序名称,将myawesomeapp_profile_name替换为配置配置文件的名称。


签署存档

您必须对存档进行签名,以便它将成为IPA。为此,您需要一个export_options.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>compileBitcode</key>
        <false/>
        <key>method</key>
        <string>ad-hoc</string>
        <key>provisioningProfiles</key>
        <dict>
            <key>com.myawesomeapp</key>
            <string>myawesomeapp_profile_name</string>
        </dict>
        <key>signingCertificate</key>
        <string>iPhone Distribution: NAME_OF_YOUR_SIGNING_CERTIFICATE (YOUR_TEAM_ID)</string>
        <key>teamID</key>
        <string>YOUR_TEAM_ID</string>
    </dict>
</plist>

因此,有一些关键点:

设置方法以匹配您的配置文件的用途。如果它是临时配置文件,则临时文件应该去那里。选项包括应用商店,临时,企业或开发。

com.myawesomeapp更改为应用程序的捆绑包标识符。将my_awesomeapp_profile_name更改为您的配置文件的名称。添加您正在使用的签名证书的名称。最后,添加YOUR_TEAM_ID

一旦创建了export_options.plist并将其保存在应用程序的根目录中,则可以在终端中运行下一个命令:

xcodebuild "-exportArchive" "-archivePath" "myawesomeapp.xcarchive" "-exportPath" "./" "-exportOptionsPlist" "export_options.plist"

这将为您签名ipa并生成其他一些文件,您可能更希望写入应用程序目录中的子目录,而不是根目录。

一旦拥有ipa,您就可以使用Xcode将其安装在iPhone上。


与所有内容一样,您的设置可能与我的不同。话虽如此,这是我在本地使用的方法,也是我在CI上使用的方法。它对我们有用,希望它将帮助您创建ipa。

有关建筑物的更多信息,请访问https://developer.apple.com/library/archive/technotes/tn2339/_index.html

尽管不再更新,但他们会详细介绍所有功能,并且查看正式文档是一个不错的起点。

答案 1 :(得分:0)

安德鲁(Andrew)的答案是正确的,但是如果您要进行大量部署,我强烈建议您使用Fastlane。一旦学习了Fastlane,就可以从ios部署过程中摆脱很多麻烦。我为此做了youtube video,讨论了手动过程以及fastlane如何使它自动完成每个步骤。

我希望这会有所帮助!