嗨,我刚刚开始学习 React Native 和 Expo。现在,我正在尝试构建一个应用程序,即使该应用程序位于后台(经用户同意),该应用程序也可以收集用户的位置。我一直在使用 expo-location,但事实证明,当用户被要求获得位置跟踪权限时,需要选择“始终”,但 expo-go 不支持这一点。我可以通过哪些方式测试我的应用程序?
我一直在考虑使用 EAS 服务构建独立应用程序来测试或使用自定义开发客户端,但我不确定它们是否达到了我想要的效果。有什么建议吗?
要使用 Expo 在 React Native 应用程序中测试后台位置跟踪,您确实有几个可行的选择:
EAS 构建:使用 Expo 应用程序服务 (EAS) 构建独立应用程序允许您测试后台位置跟踪等功能,这需要“始终”位置权限。这种方法将使您能够创建适用于 Android 的 APK 或适用于 iOS 的 IPA,可以在实际设备上安装和测试。以下是步骤的基本概述:
npm install -g eas-cli
)。eas.json
配置您的项目。eas build
创建独立版本。自定义开发客户端:这种方法有利于快速开发和测试,而无需每次都进行完整构建。它允许您使用具有所需本机代码更改和权限的自定义客户端。要进行此设置:
这里有一些额外的提示:
app.json
或 app.config.js
包含所需的权限。例如:
{
"expo": {
"ios": {
"infoPlist": {
"NSLocationAlwaysUsageDescription": "We need your location to provide better services.",
"NSLocationWhenInUseUsageDescription": "We need your location to provide better services."
}
},
"android": {
"permissions": [
"ACCESS_FINE_LOCATION",
"ACCESS_COARSE_LOCATION",
"ACCESS_BACKGROUND_LOCATION"
]
}
}
}
两种方法(EAS 构建和自定义开发客户端)都适合测试应用程序的后台位置跟踪。由于构建过程,使用 EAS Build 可能会慢一些,但它可以确保您测试实际的独立应用程序行为。自定义开发客户端在开发过程中的迭代测试速度更快。