Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Info.plist file for react native ios app using expo SDK

I'm looking to properly format the Info.plist file in order to make in app purchase work with react-native-in-app-utils but I'm not sure how to format the data and what kind of data to insert.

This thread mentions the necessity to include the app bundle id inside the Info.plist file.

iOS in app purchase - no products received

like image 242
Hugo Avatar asked Jan 08 '18 19:01

Hugo


1 Answers

If you are using expo, it will not expose the entire info.plist to you.

Expo Workaround

You can add an object as a child of ios object in the app.json like so:

"infoPlist": {
  "NSCameraUsageDescription": "This app uses the camera to scan barcodes on event tickets."
},

Which will write to the native level but this is limited. Here is a list of all the keys you can access with while using expo

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

View expos official docs here

React-native Init

If you need more low level access to your project, consider using react-native init MyProject instead of create-react-native-app MyProject.

This will provide you with full access to all ios and android bundles.

React-native eject

Or if you already built your app via create-react-native-app MyProject you can run react-native eject to get the build of react-native-init MyProject.

Be cautious, there is no returning once this command is ran.

like image 162
richTheCreator Avatar answered Sep 17 '22 16:09

richTheCreator