Remove IOS permissions

#1

Hi everyone,

This topic is asked before a couple of times but i don’t found the correct answer, the problem is that apple rejected my app and i need to remove the permissions that expo created by default.

My app doesn’t use any permissions also i know that for android is more easy just “permissions”: [] so i want the same for ios, i don’t like the solution to override the default message.
I tried to put: “infoPlist”: {} but it doesn’t work and i don’t want to do eject.

Sorry if the answer is on one topic and thanks for expo.

#2

Hi @rmena!

Although it looks like a rejection, your app probably has been successfully submitted to App Store Connect. :tada: The message you received from Apple Review is just a warning message. Please see this topic — Rejected from app store - missing location string.

It may also be that I’m wrong and Apple Review really rejected your app—if so, please correct me and follow up with more details regarding the rejection. :slightly_smiling_face:

Application rejected from AppStore due to lack of permission strings for capabilities that we DO NOT use
#3

Thanks @sjchmiela to answer my question quickly,

I get this message:

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
Also, we noticed that your app requests the user’s consent to access their location, microphone, calendar, photos, camera, control, and reminders but does not clarify the use of this feature in the permission modal alert.

And expo create this:

<key>NSCalendarsUsageDescription</key>
    <string>Allow . to access your calendar</string>
    <key>NSCameraUsageDescription</key>
    <string>Allow . to use your camera</string>
    <key>NSContactsUsageDescription</key>
    <string>Allow . to access your contacts</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Allow . to use your location</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>Allow . to access your microphone</string>
    <key>NSMotionUsageDescription</key>
    <string>Allow . to access your device's accelerometer</string>
    <key>NSPhotoLibraryAddUsageDescription</key>
    <string>Give . permission to save photos</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Give . permission to access your photos</string>
    <key>NSRemindersUsageDescription</key>
    <string>Allow . to access your reminders</string>

so i want to remove most of them permissions because my app doesn’t use only modal
If its possible to do ??? only configure on app.json the permissions that i use

#4

Hm. :thinking:

First of all, have you detached your application? Do you build the IPA yourself, or do you use exp build:ios?

Secondly, the code block you’ve posted has been created by Expo by taking eg. Allow ${name} to access your calendar template string and filling the name in. It looks like at the moment of interpolating, you had your app configured to the name of ".". Maybe if you’d change it to the proper name of your app Apple Review wouldn’t have problems with the descriptions?

Lastly, it would be possible to remove parts of Permissions API code, however, you’d have to detach and edit source code of ExpoKit pod. It sounds dangerous, but in fact wouldn’t be that hard. Note that all other apps built by Expo follow the same path when it comes to permissions descriptions, although they don’t use most of the permissions they could theoretically ask for, a general usage descriptions is ok for Apple Review. :slight_smile:

#5

i always use exp build:ios thats the magic for my, sorry i put “.” to hide the name of the app, expo create this name correctly.

And i don’t want to do detach because i prefer write all in pure js and expo hundle but in this case i prefer to have more control.

Ok thanks for all i will try again with apple review

#6

@sjchmiela

The new message from apple:
Missing Purpose String in Info.plist File. Your app’s code references one or more APIs that access sensitive user data. The app’s Info.plist file should contain a NSLocationAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting spring 2019, all apps submitted to the App Store that access user data will be required to include a purpose string.If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required.

So i need to change all the permissions message

How to remove app request for user's camera and location
#7

This message is just a warning, as stated in Rejected from app store - missing location string. It should state just above your excerpt:

Your delivery was successful, but you may wish to correct the following issues in your next delivery:

#8

Yes yes only i put the message for warning and this will be a change that expo needs to do in the future i guess

Thanks for the help

closed #9

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.