Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.newly.app/llms.txt

Use this file to discover all available pages before exploring further.

Permissions & Entitlements

Most permissions your app needs — camera, location, notifications, photos — work as soon as you add them and ask the user. But a small set of powerful capabilities are gated: Apple or Google requires a separate application or declaration, and your app will be rejected at submission if you ship the capability without it. This page explains which capabilities are gated, how to apply for each, and how to add the capability to your app in Newly.
This page is only about approval-gated capabilities. Everyday permissions like camera, microphone, location, contacts and push notifications need no special approval — just add them and the OS prompts the user at runtime.

How gating works

There are three different gates, and knowing which one applies tells you what to do:

Apple request form

You fill out an Apple form and wait for approval before the entitlement can be used in a distribution build.

Apple App Review

No form — you enable the capability in your build, and Apple checks it during normal App Review.

Play Console declaration

You complete a Permissions Declaration inside Google Play Console before the app or update can publish.

Apple: managed entitlements

These Apple capabilities require a request form and approval before you can ship a distribution build. Each links to a deeper guide.
CapabilityWhat it’s forApply via
Family ControlsScreen Time, app blocking, parental controlsFamily Controls (Distribution) request
Critical AlertsNotifications that bypass silent mode & FocusCritical Alerts request
CarPlayIn-car app UI (audio, navigation, EV charging…)Request a CarPlay entitlement
Network ExtensionHotspot Helper (VPN/content-filter are now self-serve)Network Extension request
A few Apple capabilities are gated at App Review instead — there’s no form, but you must meet documented requirements:
CapabilityWhat it’s forHow it’s gated
Health RecordsReading a user’s clinical / FHIR health recordsEnable in Xcode → justify at App Review
Default AppDefault calling, messaging, navigation or translation app (iOS 18.2+)Enable in Xcode → meet requirements at App Review

The Apple request flow

For the form-gated entitlements above, the process is the same:
1

Develop against the capability first

Many entitlements (like Family Controls) provide a development variant you can build and test with locally before you request distribution.
2

Sign in as the Account Holder

Open the request form while signed in to the Apple Developer account that owns the app — requests are tied to your team.
3

Describe your app and use case

Provide the bundle identifier and a clear, specific justification for why the app needs the capability and how it uses it.
4

Wait for review

Apple reviews each request manually — typically a few business days to a few weeks. Submit early.
5

Enable the capability and rebuild

Once approved, turn the capability on for your bundle ID, regenerate your distribution provisioning profile, and rebuild.
Approval must happen before you submit to the App Store. The development build can work locally while you wait, but uploading a distribution build with an unapproved managed entitlement will fail signing or be rejected.

Android: restricted permissions

Google Play classifies some permissions as high-risk. Requesting one triggers a Permissions Declaration in Play Console, and in most cases you need approval before the app or any update can publish. See the full guide for details.
PermissionWhat it coversDeclaration required?
BIND_ACCESSIBILITY_SERVICEAccessibility APIAlways, unless it’s a genuine accessibility tool
READ_SMS / READ_CALL_LOGSMS & call historyAlways (must be default handler or approved exception)
ACCESS_BACKGROUND_LOCATIONLocation while backgroundedAlways
MANAGE_EXTERNAL_STORAGEAll Files AccessAlways
QUERY_ALL_PACKAGESSee all installed appsWhen broad visibility is requested
1

Audit your compiled manifest

A library or config plugin can pull in a sensitive permission you didn’t add directly. Review the merged AndroidManifest.xml (or expo prebuild output) before you submit.
2

Open the declaration in Play Console

Go to App content → Sensitive app permissions / Permissions Declaration Form. It also surfaces automatically during a release that requests an undeclared sensitive permission.
3

Justify the core use case

Select the supported use case, explain why the permission is essential, and why a privacy-friendlier alternative won’t work.
4

Provide a video demonstration

Add a short video showing the permission in use, plus test instructions or a test account.
5

Submit and wait for extended review

The release sits in pending publication during extended review — Google says this can take up to several weeks.
If you don’t declare a restricted permission, you can’t publish updates, and a non-compliant live app can be removed from Google Play.

Adding the entitlement in Newly

Newly builds real native apps, so a gated capability goes into your project the same way it would in a hand-written app — you just describe it.
Describe the capability in your project chat, for example:
Add the Family Controls entitlement so users can block
selected apps during focus sessions.
The agent wires up the entitlement keys, Info.plist / AndroidManifest entries and native modules for you.
File the approval request early — it often takes longer than the build itself. You can keep developing while you wait.

Still have questions?

  • Ask the AI in your project chat — describe the capability you need and it can help wire it up.
  • Email us at support@newly.app.

App Deployment

How Newly builds and submits your app to the App Store and Play Store.