Permissions

Both iOS and Android require apps to declare which sensitive capabilities they need. Ruby Native uses one set of dashboard fields to configure permissions for both platforms.

#When you need them

Camera and photo library come into play when your app has a file input (<input type="file">). Tapping it opens a picker that can take a new photo (camera) or choose an existing one (photo library). Declare whichever ones your app offers. A library-only upload doesn't need camera.

Microphone is required if your app captures audio, such as voice notes or audio messages, or records video with sound.

If your app doesn't use any of these features, leave the fields blank. Ruby Native excludes the permissions from your build so the system never prompts the user.

#Adding permissions

In your app settings, fill in the Permissions section for each permission your app uses. The two platforms treat the text differently:

  • iOS shows your text in the system permission dialog the first time the feature is used.
  • Android shows its own generic prompt and never displays your text. There, a non-blank camera or microphone value tells Ruby Native to declare that capability in your manifest. Photo library needs no Android permission at all; uploads go through the system picker, so that field only affects iOS.

Leave a field blank to skip that permission.

Good examples:

  • "Take a photo for your profile picture."
  • "Choose photos to attach to your listing."
  • "Record video to share with your team."

Keep it specific. Apple reviews these strings during App Store review and recommends being clear, specific, and honest about how the data will be used. See Write clear purpose strings for their best practices.

On Android, if you declare camera or microphone access, you'll also declare that data in your Play Console Data safety form when you promote a build to production. That's part of going live, not per-permission setup. See data safety and Play submission.