我正在尝试在 React Native 应用程序的 Gradle 构建过程中生成源映射,并在应用程序中读取源映射文件。
我以这个项目为起点:https://github.com/philipshurpik/react-native-source-maps
我没有成功地按原样包含它,所以我尝试采用并修改它的一部分。
在 app/gradle.build
我添加了:
项目.ext.react = [
extraPackagerArgs: ["--sourcemap-output", "$buildDir/intermediates/assets/release/index.map"]
]
事实上,当我运行发布版本时,我看到 android/app/build/intermediates/assets/release
下的文件 index.map
,但是当我将 APK 部署到设备或模拟器,我在 Android 的文件系统中的任何地方都看不到这个文件。就此而言,我也看不到 bundle 文件或 android/app/src/main/assets
中的任何文件,但我确实在 android/app/build/intermediates 中看到/assets/release
构建后。
应用程序代码使用https://github.com/itinance/react-native-fs读取文件。这是我首先检查文件是否存在的方式:
const fileExists = await RNFS.existsAssets(`${RNFS.DocumentDirectoryPath}/index.map`)
并且该文件不存在。 RNFS.DocumentDirectoryPath
返回 /data/user/0/mypackagename/files
,当我检查时它是空的(使用具有根访问权限的 adb shell)。
我错过了什么?如何将源映射文件放到可供应用程序读取的位置?
最佳答案
原来 gradle.build
部分没问题,为了读取源映射文件,我只需要使用文件名,就像这样:RNFS.existsAssets('index .map')
关于android - 如何在 Android 上的 React Native 中包含和读取源映射文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48905593/