В моем собственном приложении React, которое я опубликовал в Google Play Store, мне требуются разрешения Camera Roll. Это работает во время тестирования, но не в опубликованной версии приложения.
getPermissionAsync = async () => {
const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL);
if (status !== "granted") {
alert("Sorry, we need camera roll permissions to make this work!");
}
await this.setState({ permission: status === "granted" });
};
_pickMedia = async () => {
if (this.state.permission != true) {
await this.getPermissionAsync();
}
if (this.state.permission == true) {
// get image
}
};
При тестировании это работает должным образом, запрашивая разрешение на доступ к фотопленке каждый раз, когда пользователь пытается загрузить изображение до тех пор, пока оно не будет получено. . Однако в производственной среде пользователю один раз предлагается разрешить использование фотопленки, и независимо от того, разрешают ли они это, появляется окно предупреждения, и пользователь не может выбрать изображение. Если они снова попытаются добавить носитель, им не будут предложены разрешения, и он снова будет предупрежден.
В соответствии с документами expo я добавил READ_EXTERNAL_STORAGE к своим разрешениям в приложении. json:
"android": {
"permissions": ["READ_EXTERNAL_STORAGE", "WRITE_EXTERNAL_STORAGE"],
}
Кто-нибудь может сказать мне, почему это не работает в продакшене?