How to identify user across devices on iOS? - iphone

I am working on an app where user will be buying some "credits" as in-app purchases and use them to buy some services inside the app. As user can has more then one device I need to identify him across different devices.
I understand I can create some logging (and store user accounts on my own server) but I would like to avoid this. In best case I would like to use Apple ID but I can't figure out how can I access Apple ID inside an app?
I found similar questions here but no satisfying answer. I do not believe there is no chance to access Apple ID from the app (I don't need password, just the id) as I found something like AVMetadataiTunesMetadataKeyAppleID in AVFoundation but this framework seems to be only for Mac OS X.
Any suggestion how to solve this?

Sorry. There's no way to do it without implementing your own authentication system on your own server. UDIDs are unique to each device and Apple does not give access to the iTunes user account whatsoever.

Other way is you can use facebook authentication in order to achieve that. Just connect you app with facebook api and u can keep their login address with some additional info.
Furthermore, it might be useful for your app if they can share your app with their facebook friends :p

You can identify user with help of GameKit.

Related

Paid App : need to uniquely ID the user

I am designing a paying app that will require users to create their own profile.
This app will of course be downloadable on each of the devices the user has.
This is the precise scenario I want to bypass :
the user downloads the App on an iPhone
he creates an account and start using the app that makes server
calls
he downloads the app on his iPad and with his login & password
retreives the data on the server, so far so good
Now, he lends his iPad to a friend (who didn't pay for the app).
The friend wants to use the App, and wants to create his own
account. Yet, I want to forbide this since he didn't pay for the
App.
So my problem is : I want to restrict the use of the app only to the user that paid for the App, not for his friend.
Of course, I cannot use the AppleID since there is no way to reach it from code.
I thought one moment that I could use iCloud like mentioned here but since the ( iOS unique user identifier )user can choose not to use iCloud, my problem is not solved ...
Is there an easy solution that I missed to solve that issue?
You friend will be using different apple id. You could use Restoring Transactions api of apple to get understand whether the user has purchased the app or not. This is possible for non-consumable in app purchase. Please do check the below link :
https://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html#//apple_ref/doc/uid/TP40008267-CH3-SW1

IPhone app In app purchase giveaway

I have an application that my client wants to give away to customers for free.
To get the full functionality, the customers would have to fill in a code.
Other customers will need to do an In App Purchase to get the full functionality.
Is this allowed by Apple or will I bump into app store restrictions.
Tried to find it, but haven't found a decent answer.
Anyone tried it before ?
Thanks !
Please see this other SO answer:
Redeem codes for inapp purchase items
I dont think it is possible to do what you want. Either everyone has to enter a code, or everyone has to do an in-app purchase.
You could also have both of these options available inside the app, but that may seem messy and informal for customers
I would say you could ask the user for a login (email + password). You could then connect to a server of yours and check the credentials. If the server knows this user because you host a list of all the users allowed to use the premium options for free, you could unlock your premium features. Otherwise, you ask Apple for the In App Purchase precedure.

Getting the user's information on iOS

I am developing an iPhone App using Xcode 4.2 .
is there is a way to gather the user's information (name , phone number ,e-mail etc...) upon download from the App store ? if yes , how ?
No, you can't legally gather user's name, phone number, etc.
That would be a privacy violation, and Apple doesn't allow developers to do such things.
NO.. not with official iOS sdk.. Apple will not allow your app in app store if you do so!
You can have the app politely request the user to enter some info about themselves; but according Apple's approval guidelines, can't require that they actually do enter any identifying info.
In addition, Apple provides no identifying info to the developer, and likely can't according to their iTunes privacy policy.
That's what iOS is all about - apps running in a sandbox to keep the user safe and only sharing data with user interaction. You can only get user data by using the AddressBook.framework, which the user has to engage with to allow your app to access that information.
If you're looking for an easy way to get user data, switch to Android. ;)

Unique identifier for an iPhone app, NOT device

I want to avoid user registration in my app, and to identity my user by purchased app.
If someone purchase app on his iPhone, and with the same Apple ID download this app on other device, I want to use the same settings and content on this devices.
Is posible to use identifiers like AppleID (without entering in input field by user)?
I found similar question but UniqueIdentifier is unique only for physical device, not for user.
No. Apple does not give an app access to the user's Apple ID without the user's involvement. And for good reason.
I don't think you should outsmart the user. You can't assert that the user will want the same settings on another device. For instance I manage all my family iphones and download apps for them, all of them have their own accounts in apps and like different preferences. That's why it's the best to allow users to create accounts and sing in. This way user has a clear understanding what he/she is doing.

Is there any mechanism provided by Apple Store to make the user sign-up to my website before he/she can download the application?

I am creating an iphone application that requires the users to have an account at my website.
But if i have to distribute it through apple store, how should I make the users of this Iphone Application first create an account with my website. There could be a few options like :
1) Ask the user to create an account when he/she tries to run the application on iphone.
2) Provide a 'Sign-Up' page in the Iphone application itself.
My question is "Is there any mechanism provided by Apple Store to make the user sign-up to my website before he/she can download the application".
Kindly give in your suggestions for the same. Which would be the best approach for solving my problem.
Thanks,
LG
There's no way to do this through the app store.
Yes: your two options are to create a sign in / sign up screen with cocoa, or to display your login webpage with a NSWebview.
I'd recommend the native control route...
No, you can't do that through Apples App Store.
You could provide the user with aviability to register to your site when opening your app, throug, say a NSWebView.
There are many ways to solve this, just not the one you might like.