granting access per device to an iOS app feature

Let's say I have an iOS app on the app store. Anyone can download and use it, but I would like to restrict the app from granting access to certain features to a select set of people I can personally vouch for. So, for example, to get access, the app send email to me, you have to convince me I know you, and if you do, I send you back some kind of token string which you can enter into the app.

However, I'd like for that token to not be shareable, and to be locked to that device.

Is there any kind of persistent ID associated with a device that I can use to tie the token I grant to that persistent ID?

Or can someone suggest a way that once I trust a user, I can give them a token which will cannot be shared to anyone else?

Also, does anyone know if restricting access to app features in this way is any kind of issue with regards to the app review process? The app itself is free, and there are no in-app purchases. I simply don't want certain features of the app (which end up sending push notifications) to get abused.

Replies

This sounds similar to the concept of Custom Apps.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

That's an interesting query, and I totally get where you're coming from.

For your token and security needs, iOS provides a unique identifier for each device called the "identifierForVendor" (IDFV). It's tied to the device and remains consistent until the app is uninstalled or the device is wiped. You can use this IDFV to tie the token you grant to a specific device.

And AFAIK, restricting access to certain features in this way shouldn't pose an issue with the app review process, especially if the core functionality of your app remains free and accessible to all users.

However, it's always a good idea to provide clear explanations while submitting your application for review regarding any access restrictions you implement. Additionally, you may also want to make sure that your provided account credentials have a way to access all features.

Cheers!