我正在尝试在React Native应用程序的Gradle构建过程中生成源映射,并在应用程序中读取源映射文件。
我以此项目为起点:https://github.com/philipshurpik/react-native-source-maps
我没有成功地将它包含在内,所以我试图修改它的部分内容。
在app/gradle.build
我添加了:
project.ext.react = [
extraPackagerArgs: ["--sourcemap-output", "$buildDir/intermediates/assets/release/index.map"]
]
确实当我运行发布版本时,我在index.map
下看到了文件android/app/build/intermediates/assets/release
,但是当我将APK部署到设备或模拟器时,我无法在任何地方看到此文件Android的文件系统。就此而言,我也看不到捆绑文件或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),这是空的。
我错过了什么?如何将源映射文件提供给应用程序可供读取的位置?
答案 0 :(得分:1)
原来gradle.build
部分很好,为了阅读源地图文件,我只需要使用文件名,如下所示:RNFS.existsAssets('index.map')