【React Native】文件翻譯閱讀紀錄 - 貢獻 - 從源代碼構建 React Native

by - 上午9:00

Facebook Open Source React Native


從源代碼構建 React Native

如果您想要處理新的功能/錯誤修復,嘗試使用尚未發布的最新功能,或者使用無法合併到核心的補丁維護您自己的分支,則需要從源代碼構建React Native。

Android

先決條件

假設您安裝了Android SDK,請運行android以打開Android SDK Manager。
確保安裝了以下內容:
  1. Android SDK版本26(build.gradle中的compileSdkVersion)
  2. SDK構建工具版本26.0.3(build.gradle中的buildToolsVersion)
  3. Android支持存儲庫> = 26(適用於Android支持庫)
  4. Android NDK (下載鏈接和安裝說明)

將Gradle指向您的Android SDK:

Step 1: 通過本地shell設置環境變量。
注意:文件可能因shell風味而異。請參閱下面的常見殼的示例。
  • bash: .bash_profile or .bashrc
  • zsh: .zprofile or .zshrc
  • ksh: .profile or $ENV
例:
export ANDROID_SDK=/Users/your_unix_name/android-sdk-macosx
export ANDROID_NDK=/Users/your_unix_name/android-ndk/android-ndk-r10e
Step 2: 使用以下內容在您的react-native應用程序的android目錄中創建local.properties文件:
例:
sdk.dir=/Users/your_unix_name/android-sdk-macosx
ndk.dir=/Users/your_unix_name/android-ndk/android-ndk-r10e

下載Android NDK的鏈接

  1. Mac OS (64-bit) - http://dl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip
  2. Linux (64-bit) - http://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip
  3. Windows (64-bit) - http://dl.google.com/android/repository/android-ndk-r10e-windows-x86_64.zip
  4. Windows (32-bit) - http://dl.google.com/android/repository/android-ndk-r10e-windows-x86.zip
您可以在官方頁面上找到進一步的說明。 official page.

建立源頭

1. 安裝 fork

首先,您需要從fork安裝react-native。例如,要從官方倉庫安裝主分支,請運行以下命令:
npm install --save github:facebook/react-native#master
或者,您可以將repo克隆到node_modules目錄並在克隆的repo中運行npm install。

2. 添加 gradle 依賴項

在 android / build.gradle 中添加 gradle-download-task 作為依賴項:
...
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
        classpath 'de.undercouch:gradle-download-task:3.1.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
...

3. 添加:ReactAndroid項目

在android / settings.gradle中添加:ReactAndroid項目:
...
include ':ReactAndroid'

project(':ReactAndroid').projectDir = new File(
    rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
...
修改你的android / app / build.gradle以使用:ReactAndroid項目而不是預編譯的庫,例如: - 用編譯項目替換編譯'com.facebook.react:react-native:+'(':ReactAndroid'):
...
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:26.0.2'

    compile project(':ReactAndroid')

    ...
}
...

4. 使第三方模塊使用你的fork

如果使用第三方React Native模塊,則需要覆蓋它們的依賴關係,以便它們不捆綁預編譯的庫。否則在編譯時會出錯 - 錯誤:包含名稱為“com.facebook.react”的多個庫。
修改你的android / app / build.gradle,並添加:
configurations.all {
    exclude group: 'com.facebook.react', module: 'react-native'
}

從Android Studio構建

在Android Studio的歡迎屏幕上選擇“導入項目”並選擇應用程序的android文件夾。

您應該可以使用“運行”按鈕在設備上運行應用程序。 Android Studio不會自動啟動打包程序,您需要通過在命令行上運行npm start來啟動它。

補充筆記

從源代碼構建可能需要很長時間,特別是對於第一次構建,因為它需要下載~200 MB的工件並編譯本機代碼。每次從repo更新react-native版本時,build目錄都可能會被刪除,並且所有文件都會被重新下載。為避免這種情況,您可能希望通過編輯〜/ .gradle / init.gradle文件來更改構建目錄路徑:
gradle.projectsLoaded {
    rootProject.allprojects {
        buildDir = "/path/to/build/directory/${rootProject.name}/${project.name}"
    }
}

構建Maven / Nexus部署

如果您發現需要將本地編譯的React Native .aar及相關文件推送到遠程Nexus存儲庫,則可以。

首先按照此頁面的Point Gradle到您的Android SDK部分。 執行此操作後,假設您已正確配置Gradle,則可以從React Native checkout的根目錄運行以下命令,以構建和打包所有必需的文件:
./gradlew ReactAndroid:installArchives
這會將通常包含在您的node_modules / react-native / installation的android目錄中的所有內容打包到React Native checkout的根目錄中。

故障排除

在 ndk-build 中,Gradle 構建失敗。 請參閱上面有關 local.properties 文件的部分。

測試您的更改

如果您對React Native進行了更改並提交了拉取請求,則所有測試都將自動在您的拉取請求上運行。 要在本地運行測試,請參閱測試更改。 Testing your Changes.



You May Also Like

0 意見