构建.apk以响应原生应用

时间:2017-11-19 14:51:38

标签: android react-native react-native-android

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

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

create-react-native-app MyProject

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

我知道需要android文件夹的https://facebook.github.io/react-native/releases/0.19/docs/signed-apk-android.html。此处提到的curl版本,即此处https://github.com/facebook/react-native/issues/2943,其中没有诀窍以及How to build react native android app for production?中的所有方法。

1 个答案:

答案 0 :(得分:5)

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

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

  1. Eject and install the native code dependencies用于您的CRNA应用,并使用adb / Android Studio或XCode正常构建

  2. 使用exp(世博会)由CRNA开发人员recommended

  3. 第二选择:运行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"
        }
       }
     }
    

    然后按exp start开始构建。应用启动后,运行exp build:androidexp build:ios以在您需要的平台上构建生产应用。

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