[英]Add a gradle repository to an expo app build with eas build / managed workflow
我有以下...
情況:
我在世博平台上構建了一個反應原生應用程序(我們稱之為“MyApp”)。 我使用eas build
來構建項目。
最近我分叉了 expo-camera 包來更新 iOS 部分,以便能夠使用超寬相機。 現在我沒有觸及 android 部分。 我將我的 fork 作為myApp-expo-camera
上傳到 npm-registry,並將 MyApp 中的依賴項從expo-camera
更新為myApp-expo-camera
錯誤:
現在,當我構建 iOS 時,一切都按預期工作,但是當我構建 android 時,它告訴我,它缺少cameraview
包:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':app:lintVitalRelease'.
> Could not resolve all artifacts for configuration ':app:debugCompileClasspath'.
> Could not find com.google.android:cameraview:1.0.0.
Required by:
project :app > project :expo > project :expo-camera
問題:
這個cameraview
包與expo-camera
一起作為.aar 存檔。 expo-camera
中的README.md 說明在托管的 expo 項目中安裝使用expo install expo-camera
這對我來說不是解決方案,因為我想使用我的 fork。
對於在裸反應本機項目中的安裝,它說將以下內容添加到build.gradle
:
allprojects {
repositories {
// * Your other repositories here *
// * Add a new maven block after other repositories / blocks *
maven {
// expo-camera bundles a custom com.google.android:cameraview
url "$rootDir/../node_modules/expo-camera/android/maven"
}
}
}
據我了解,我可以使用“none expo”第三方反應原生包,因為我使用的是eas build
但我不能將它添加到build.gradle
因為我仍然在 expo 的托管工作流程中(因此做甚至沒有build.gradle
文件)。
有人知道如何解決這種情況嗎?
真摯地
碰巧,我找到了解決問題的方法。 所以對於每個有類似問題的人:
expo-camera
包在插件目錄中有一個文件withCamera.ts
。 該文件包含邏輯,將所需的build.gradle
代碼行寫入您實際/自己的項目的build.gradle
。 但要使其正常工作,您需要在eas build
工作流程的預構建部分運行分叉的expo-camera
包。 這可以通過將以下內容添加到您自己的 expo-project 中的 app.json / app.config.js 來實現:
plugins: ['myApp-expo-camera'],
通過這條線, eas build
過程知道,您的myApp-expo-camera
需要預先構建。
還要確保您已將withCamera.ts
文件中的包名調整為您的 fork(例如myApp-expo-camera
)。
我仍然不明白的是:為什么你不需要為原始的expo-camera
包這樣做......但也許 expo 已經在預構建配置中擁有所有自己的包......誰知道!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.