I am working on a sync solution for my app, and I would like to be able to find out if the user who has just downloaded my app would like to sync the app's data with the same app but hosted on another device (e.g., installed on both an iPhone and an iPad), so I can prompt the user to set up syncing. Is there a way to either (a) get the user's iTunes account information (the email address or some other unique identifier), or (b) identify if the user's iTunes account has already installed the app on another device?
Theres absolutely no way to get user's iTunes account information; that would be a security issue. The devices themselves have a Unique Device ID which can be obtained using:
[[UIDevice currentDevice] uniqueidentifier];
If you implement UrbanAirships AirMail /Push feature, if the user opts to receive push messages from your app, you can view how many users are opt'd in, and if you set the device name property, but thats about it.
Also, to sync data between multiple devices and such, I would suggest Dropbox.
Related
IOS paid application sharing we need to block.
Planning to submit paid application in Apple store. Suppose a user brought application and download to Itunes account, then i sync to my mobile device, able to use that.
1.From itunes can we share application ipa to any other user?
2.is there any way to identify which apple id used for downloading?
3.any option for blocking user without downloading from apple store?
Apps bought/downloaded from the app store are linked to the account that download the app. You can there for not just share the IPA.
On a jailbroke device you might be able to remove the security measures that restrict this. But what you are proposing is not possible with official App Store apps.
You cant code to UDID anymore since the update to the iTunes ToS. They are all account bound. In the cases I have tried to share the .ipa file the app data inside that app specific to me did not migrate to the new user
We provide advertising capabilities to iPhone app customers, where they can advertise apps to millions of users on social network, and stand out among large number of apps in app store.
Now, to prove the ROI, we also want to provide statistics of how many users actually installed the app using our advertisements on social network.
My question is:
How do I verify whether user installed an app (when user clicks on advertisement and we take user to App Store (on mobile device) or itunes page (on PC/Mac) )
Is there a way to integrate with developer's interface to get this information?
Thanks in advance.
This is a broad question and there are some simple solutions which may require some work. Apple provides you no feedback for when an app is installed. Assuming you are storing the click of the ad on a server you will need to match to that click with something you send up when the app is opened for the first time.
(if the ad is shown in a native app on the phone) You can send up a unique key when the click happens and also send that same unique key when the app opens for the first time and match them on the server. This key can be a hashed mac address or something you save to the UIPasteboard. This requires integration on the side of your clients app because they will need to send a http request to you when the app launches.
If the social network is web based then your best bet is to match on IP address which isn't perfect but can give you a high percentage of accuracy.
I guess I'm assuming you are hosting the ads though. If you are not then you will have to rely on what the ad networks give you and many of them can provide some form of install tracking.
Well, you can always look at that persons phone and check if your app is present there :P
Just kidding.
You have some ways to get information such as these.
If you have registration in your app, you can monitor the userInfo, along with the UDID.
You can setup some webservice calls on applicationDidFinishLaunching for the first time events (using NSUserDefaults key to save the first time info) and use that.
Check out FLURRY for data analytics in your app. This is an awesome service, and allows you to track your users and how they interact with your app. I would recommend this !
Most ad networks have conversion tracking capabilities, but once you click an ad from the web and go to iTunes, all hope is lost tracking a conversion.
I guess you'd be able to track a conversion if you require the user to provide information (like an email address) before directing them to the appstore then requiring them to input that same email once the app is opened.
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 it possible to determine the specific country app store my application was downloaded from? I would like to distinguish if a user downloaded my application from the us app store vs. the canada app store?
Not interested in locale settings but the actual store the app came from.
I don't think so, because I don't think it matters on device.
iTunes Connect tells you when a user "upgrades", but I think this is per iTunes account, not per device. Presumably the iTunes Store keeps track of this.
The device keeps track of which account an app is from (it prompts you for the correct account password if you have apps from multiple accounts).
The device keeps track of a store country (so it knows which one to connect to).
I don't think it keeps track of the store that an account is on (you can be logged in with a US account but be connected to the UK store).
The closest is the current iTunes store country (which might have changed since the user installed the app, or the app could've been installed by syncing with iTunes), but I don't think this is in an accessible file.
is it possible to get the user's information, such as apple ID, through the sdk? I am writing an app which will require an account linked to the app user. I want to allow the user to have one account across multiple devices, so using the device ID is not possible. The easiest way to do this, I am thinking, is to use the app user's apple ID as this account's ID, so not requiring them to create yet another account.
No, it's a privacy issue, just like their phone number.
They'd still have to create an account on your site since you don't have access to Apple's databases, and no one will be willing to give you their iTunes passwords for obvious reasons.
All you're really saving is them entering a user name, since they'd still have to give you a password. It's very easy to remember this data for future runs of your application. Look into using NSUserDefaults. I would recommend against using the UDID and give the user the option to save their password. That way if the phone is lost, whoever finds it doesn't have automatic access to the owner's account. If the user opts for automatic login, you can easily save the password and send it along with the username when the app loads.
It's not (AFAIK) possible. You can only retrieve the device's UDID.
What I've done in the past is link an account on my side with multiple UDIDs on the user's side, so when they install the app on various devices they can just use that single account and it will automatically link that device. Not ideal, but I've not seen a better solution.
If it is a game, you can use the Game Center Account to identify an user
Instead of the UDID for the device, you might try the [UIDevice currentDevice].identifierForVendor It is linked to the device and the app installation.
I am storing the username and encrypted password in a file that is stored in the user's application file space. When the app starts up, if it finds this file, it attempts a login without asking the user. Having a password, even encrypted, stored in the file system does seem insecure, but the application is not one where people are apt to try and steal passwords.