React Native: 使用Expo生成.apk和.ipa文件

49
我正在尝试使用Expo和Create React Native App为我的React Native应用程序生成.ipa和.apk文件。我成功构建了应用程序,并能够在iOS和Android设备上运行它,感谢文档:https://docs.expo.io/versions/v16.0.0/guides/building-standalone-apps.html 当构建完成后,我的控制台会显示类似于以下内容:

您的URL是 https://exp.host/@myname/myapp

然后我在我的设备上打开exp.host/@myname/myapp,并通过Expo客户端查看应用程序。
但在文档的第4步中,它说:

完成后,您将看到.apk(Android)或.ipa(iOS)文件的URL,这是您的应用程序。

我有点困惑。在整个过程中,我没有看到任何在我的电脑上生成ipa或apk文件。我错过了什么吗?我该如何实际生成这些文件呢?

你在问题中分享的文档链接已经失效了。我需要一点指导来为我的应用程序做同样的事情。你有相同指令的更新源吗? - Jordan
9个回答

47

请确保在 app.json 文件中设置正确。

{
  "expo": {
    "name": "your app name",
    "description": "your app desc",
    ....,
    "ios": {
      "supportsTablet": true
    },
    
    "android": {
      "package": "com.yourcompany.yourappname"
    }
  }
}

然后运行expo build:androidexpo ba

之后

运行expo build:status,你会发现像这样,Apk被托管在Amazon AWS上

[exp] Android:
[exp] APK: https://HOST/yourapp.apk

我是否总是需要手动输入以复制下载apk的url?我已经获取了url并能够下载apk文件,但唯一的问题是是否有直接访问的方法?我不想每次都打字。 - Bilal Hussain
1
@BilalHussain 是的,你必须手动复制URL才能获取APK。 - Ansyori
您可以使用URL获取所有以前和当前的构建,以便更轻松地监视您的构建:https://dev59.com/_lcP5IYBdhLWcg3wf6Gb#49048517 - c-chavez

41
您需要运行expo build:status。当构建过程完成后,您将看到下载链接,以便下载apk(安卓)或ipa(IOS)文件。

3
请确保您已安装了exp命令行工具:npm install -g exp - sisanared
7
2019年,要使用的是 expo 而不是 exp。根据此时撰写本文的最新文档链接为 expo-standalone-apps 。按照答案中的步骤,您需要运行 expo build:status 而不是 exp build:status,然后根据您正在构建的操作系统运行 expo build:androidexpo build:ios。 运行之后,您将被询问一些问题,例如是否让 expo 处理所有内容,我建议您这样做。 - richard4s
1
该项目目前没有活动或以前的构建记录。 - Iman Marashi
1
expo build:android - Omar bakhsh

8
  • 对于安卓,请使用`expo build:android`命令
  • 对于iOS,请使用`expo build:ios`命令

如果您没有Expo账户,它会要求您创建一个新的账户。使用expo build:status命令可以查询应用程序的状态。生成apk文件可能需要大约30分钟时间,并可在Expo网站上找到。

如何从Expo生成apk/ios文件


6

针对最新版本的expo进行更新:
Expo将很快停用expo build并鼓励使用eas build,默认构建应用程序包。要构建apk,请根据这里在expo文档中给出的说明修改eas.json文件。当然,您需要单独安装eas,因为它不随expo-cli捆绑提供。

如需添加apk,请将eas.json添加为:

{
  "build": {
    "preview": {
      "android": {
        "buildType": "apk"
      }
    },
    "preview2": {
      "android": {
        "gradleCommand": ":app:assembleRelease"
      }
    },
    "preview3": {
      "developmentClient": true
    },
    "production": {}
  }
}

接着运行eas build -p android --profile preview


3

这个指令会起作用

eas build -p android --profile preview


3
根据https://docs.expo.dev/classic/building-standalone-apps/的说明: "经典构建服务 (expo build:{android,ios}) 目前正在维护中,并已被 EAS Build 取代。SDK 46 将是 Classic Builds 支持的最后一个 SDK,Classic 构建服务将在2023年1月4日之后停止运行所有 SDK 版本。",新命令如下:
  • eas build --platform android 用于 Android
  • eas build --platform ios 用于 iOS
  • eas build --platform all 用于两者
更多信息请参考:https://docs.expo.dev/build/setup/

2
如果您执行构建状态
expo build:status

您将获得构建状态更新,无论是针对iOS还是Android。它将显示以下可能的状态之一:
  • 正在进行构建...
  • 此构建存在错误
  • ipa或apk文件的URL

URL的格式类似于:

https://expo.io/builds/{buildId}

其中 {buildId} 是一个 UUID

当您点击链接时,它将显示当前状态、正在生成的日志,一个“下载”按钮,您可以下载ipa或apk文件(仅在构建成功时可用),以及一个“取消”按钮,以取消当前构建(仅在构建正在运行时可用)。

或者,您可以通过访问此链接查看您之前和当前的构建状态:

https://expo.io/{@user}/{app}/builds

将{@user}替换为您的Expo用户名(包括@字符),将{app}替换为您的应用程序名称。在此处,您可以查看特定构建状态,如已完成或失败,查看构建日志,并下载当前和以前的成功构建。
此URL也显示在您转到当前构建时,在“构建日志”标题下方:

这是来自{@user}/{app}的构建


0

0
如果您正在使用新的Expo应用程序服务(EAS)构建React Native应用程序,则可以使用以下命令为IOS生成IPA文件:
eas build -p ios --profile preview

如果你在使用安卓(Android),你可以使用:

eas build -p android --profile preview

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接