In my iOS/Flutter app, I am using a QR reader plugin. My requirement is to recognize QR data from images only, not from the camera. But the plugin offers both.
So, I don’t need the camera permission in my app and therefore I didn’t add this to the Info.plist
file.
Unfortunately, Apple refused the app due to Missing Purpose String: NSCameraUsagePermission
.
Because I also integrated the plugin permission_handler
, I have already added this to my podfile
:
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
...
## dart: PermissionGroup.camera
'PERMISSION_CAMERA=0',
...
]
I thought this helps me with exactly the described issues: Add permission, a plugin requests but is not required in my app. Obviously, it does not.
Is there a way to achieve that: Deny the camera permission while using the requesting plugin nonetheless?
2
Answers
Last time I had an issue like this I wrote the permission description in the
info.plist
and made it explicit that the permission was not used. In your case it should be something like this.And apple did accepted my app despite that. It should be fine as long as you are explicit with it.
If they do reject it I would probably fork the plugin and drop the Permission in the code.
As per permission_handler guidelines you have to mark all those permission as commented which you are not using in the app.
As per plugin guidelines, Remove the # character in front of the permission you do want to use. For example, if you need access to the camera make sure the code looks like this:
In your case, you have added
'PERMISSION_CAMERA=0'
inpodfile
, So Apple expected permission for the camera ininfo.plist
file and it’s missing over there. So update yourpodfile
as below.Note: Whatever permission you are making uncommented in
podfile
, make sure you add permission for the same ininfo.plist
file and also add a proper description(purpose of using that permission in your app).