构建.apk以响应原生应用

pat*_*man 5 android react-native react-native-android

我对反应原生的世界很陌生.到目前为止,我还没有了解如何创建一个apk(我认为ipa会相似).我知道有一些文档条目和许多其他问题似乎可以回答这些问题,但它们都不适用于我.

所以我感兴趣的基本用例是为演示应用程序构建一个apk.在开始之后,我会这样做

create-react-native-app MyProject
Run Code Online (Sandbox Code Playgroud)

现在我能够启动打包器和服务器并使用expo.完善.但我想现在建立apk.我发现的所有答案都是通过某种方式完成的cd android && ./gradlew build,但是应用程序中没有安装文件夹(显然是因为expo负责处理非弹出的应用程序).另一种方式可能会使用expo,但我一直遇到错误.并且正如在入门指南expo中没有直接提到,而是npm命令它可能不是要走的路.

我知道https://facebook.github.io/react-native/releases/0.19/docs/signed-apk-android.html需要android文件夹.也curl提到的版本,即https://github.com/facebook/react-native/issues/2943,这不是技巧以及如何构建反应原生Android应用程序生产的所有方法.

nho*_*ass 5

因为您使用CRNA来创建项目所以android/ ios文件夹(包含构建工具)不存在.

CRNA将您的项目配置为使用Expo客户端应用程序支持的代码.但是Expo XDE 没有能力直接构建生产应用程序(此时此刻).所以有两种方式:

  1. 弹出并安装 CRNA应用程序的本机代码依赖项,并使用adb/Android Studio或XCode正常构建

  2. 使用exp(世博会)由CRNA开发商推荐.

第二种选择:运行npm install -g exp获取它,使用Expo帐户登录.配置app.json如下:

{
   "expo": {
    "name": "Your App Name",
    "icon": "./path/to/your/app-icon.png",
    "version": "1.0.0",
    "slug": "your-app-slug",
    "sdkVersion": "17.0.0",
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourappname"
    },
    "android": {
      "package": "com.yourcompany.yourappname"
    }
   }
 }
Run Code Online (Sandbox Code Playgroud)

并开始构建exp start.应用程序启动后,运行exp build:androidexp build:ios在您需要的平台上构建生产应用程序.

请参阅:https://docs.expo.io/versions/latest/guides/building-standalone-apps.html