Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

Missing Purpose String in Info.plist File - NSCalendarsUsageDescription key, NSBluetoothPeripheralUsageDescription , NSAppleMusicUsageDescription key, NSMotionUsageDescription key, NSSpeechRecognitionUsageDescription key

My package.json

"dependencies": {
    "immutable": "^3.8.2",
    "native-base": "^2.8.0",
    "react": "16.4.1",
    "react-native": "0.56.0",
    "react-native-animatable": "^1.3.0",
    "react-native-camera": "^1.2.0",
    "react-native-circular-progress": "^1.0.1",
    "react-native-countdown-circle": "^3.0.0",
    "react-native-firebase": "^4.3.8",
    "react-native-navigation": "^1.1.484",
    "react-native-notifications": "^1.1.20",
    "react-native-push-notification": "^3.1.1",
    "react-native-qrcode-scanner": "^1.0.1",
    "react-native-svg": "^6.5.2",
    "react-native-swipeout": "^2.3.6",
    "react-navigation": "^2.12.1",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "redux-logger": "^3.0.6",
    "redux-persist": "^4.10.2",
    "redux-persist-transform-immutable": "^5.0.0",
    "redux-saga": "^0.16.0",
    "reselect": "^3.0.1",
  "devDependencies": {
    "babel-jest": "23.4.2",
    "babel-preset-react-native": "^5",
    "jest": "23.5.0",
    "react-test-renderer": "16.4.1"
  "jest": {
    "preset": "react-native"

Any solution, as I haven't used any of these features in my app and also I don't need these kinds of access in my app.

Maybe a dependency you've installed uses those permissions. I faced all sorts of permissions issues when I tried to validate an app which used react-native-permissions to handle permissions. Since the library facilitates all types of permissions (regardless of whether you use it or not), it'll get flagged and you'll be required to add permission strings to Info.plist.

Looking at your packages, I can't see any usual suspects though. You'll have to dive deep into the dependencies to make sure.

I haven't used react-native-permissions in the app. Will there be any issues, if i upload the app to the store? Its already in Testflight as of now. The client is a highly privacy concerned fellow,and these unnecessary permissions are causing trouble for me as these are not seen in AndroidManifest or elsewhere. – FortuneCookie Sep 28, 2018 at 7:17 I used react-native-permission to get the point across that the permissions may be an issue with a dependency. If you've gone as far as getting the application approved for TestFlight, you can go ahead. The processing step would've failed if there was an issue with the binary. Those usage descriptions will not even be displayed to the user unless you initiate an action (something like adding something to user's calendar). However, it is best to investigate where these usages are being fired from. – Thahzan Sep 28, 2018 at 9:07 I cannot comment regarding the client or the privacy factor though. It's up to you (or the person responsible for the tech of the project) to decide. – Thahzan Sep 28, 2018 at 9:10

If you don't know why your app use these permission just check the code.

Maybe it's from the react tutorial or project that you code.

For fixing just add these key to info.plist file with the descriptions

If you still wondering why you app need these permission you can check this solution: What makes NSCalendarsUsageDescription required?

My client is very much concerned about privacy issues and these unnecessary permissions are making trouble for me. There is nothing wrong in the code as i have already inspected the code manytimes, and some dependencies i have used has created this issue, i guess! – FortuneCookie Sep 28, 2018 at 7:15

In my case, a project was using an old version of react-native-permission version 1.1.1. The issue was raised here and here.

react-native-permission library fixed the issue in 2.0.0, according to this release:

This new release is a complete rewrite to tackle two massives issues: splitting iOS permission request handlers to avoid embedding unnecessary ones and a negative app store review

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.