The status_roll returns granted, but any time I try to pick an image from camera roll (ImagePicker.launchImageLibraryAsync), I keep on getting “Missing camera roll permission”. This is happening in iOS Simulator iPhone 8, using latest version of Expo.
Please let me know what I may be doing wrong here.
Permissions.askAsync(Permissions.CAMERA) and Permissions.askAsync(Permissions.CAMERA_ROLL) are granted, but when I try to pick an image from ImagePicker.launchCameraAsync I get “[Unhandled promise rejection: Error: Missing camera or camera roll permission.]” or from ImagePicker.launchImageLibraryAsync I get “[Unhandled promise rejection: Error: Missing camera roll permission.]”.
This is happening on device (iPhone 5s) and simulator iPhone SE. Using version 25.0.0 of Expo.
Actually I never had to ask for permission before with ImagePicker, but after installing the latest expo client, it keeps asking me for permission. It doesn’t matter if the permission it’s granted or not. It just don’t work anymore.
I am having the same issue. askAsync(Permissions.CAMERA_ROLL) doesn’t even come up with a prompt asking for permissions, it just defaults to status === ‘granted’ and then I get a permission failure when I try to use the ImagePicker.launchImageLibraryAsync. Also sdkVersion is 25.0.0 and package.json is ^25.0.0. Happens in both the iPhone 8 Plus simulator and iPhone X simulator.
I tried with the below code and still no luck, we simply cannot access the camera roll any more…
const { status: existingStatus } = await Permissions.getAsync(Permissions.CAMERA_ROLL);
let finalStatus = existingStatus;
// only ask if permissions have not already been determined, because
// iOS won’t necessarily prompt the user a second time.
if (existingStatus !== ‘granted’) {
// Android remote notification permissions are granted during the app
// install, so this will only ask on iOS
const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL);
finalStatus = status;
}
// Stop here if the user did not grant permissions
if (finalStatus !== ‘granted’) {
return;
}
Hi guys, so sorry for your struggle! It looks like this problem only occurs for SDK 25 so the best idea would be to upgrade. We’ll need to create a patch for expo sdk and will let you know if it is available (hopefully soon).
Hi @aalices, I could upgrade, but everything was working just fine with sdk 25. After installing the latest Expo Client the problem started. I just released a version to testflight and ImagePicker is working as expected. It just don’t work with the lasted Expo Client.
Having the same problem. Permissions.AskAsync(Permissions.CAMERA_ROLL) outright doesn’t even bring up the permission prompt and just returns ‘granted’ even though the permission isn’t actually granted.
This is on an iPhone 5S where I installed Expo just a few hours ago, so I’m probably on the latest client too.
We’re seeing this issue come up as well with the latest version of Expo (deleted and re-installed client, that’s when the errors started.)
Same as @nmacambira1d never had to use permissions before with launchCameraAsync and launchImageLibraryAsync, but now it barks about permissions. I implemented the following solution which does work on Pixel with Android 8.1.0. It doesn’t however, work on any iphone devices that we’ve tested yet.
Hello @notbrent, I implemented your code change and I am still getting the same ‘missing camera roll permission’ error. Using iPhone 8 iOS simulator. Is there an update / patch I need to install first?
Thank you,