UUID ios for different apps - ios

I need use id of device. But I have some problem with it. Mainly, id should be the same for different apps from different vendors. I can't use keychain because applications from different vendors and uses different provision profiles. But my server should identify this device for all these applications. Because I want see, that one device has 2 applications(with my lib), for example, and other device has one application. Something like statistics

This is not possible because Apple sees this a breach of privacy.

If you do not post application to Apple Store (B2B mode), you can get the serial number of a device as UUID via the private Framework IOKit.
For a Category for this that encapsulates the low-level C see: https://gist.github.com/0xced/566994

Related

how to identify an unique id in ios device?

how to identify a unique id in ios device? if I have multiple app with different developer account on same device. How to detect both apps is on the same device?
Example: How to identify Apps A and Apps B is installed on the same device.
different bundle id
build with different developer account
on the same device
iOS 9 and above
Beside a unique id to identify device, any others solution for it?
If you try to make unique ID for each App-device , I think you can make a unique ID by generate MD5 from your bundle ID combined with UDID
But if you wanna detect if App A installed from App B, you can use URL scheme:
Read More here
Or you can read this: Different ways to share data between apps — iOS
How to identify bundleid of any production ios app without installer file
https://www.linkedin.com/pulse/identifying-bundleid-any-production-app-without-ipaapp-buyankar
Go to https://www.apple.com/ios/app-store/
Search for required App Eg: Salesforce App , it will provide the app id in the URL
https://apps.apple.com/in/app/salesforce/id**404249815**
Look up with app id will give us the Json will entire details of the app. Just replace the id in the below URL
https://itunes.apple.com/lookup?**id=404249815**
Eg : JSON response of Salesforce App
{"averageUserRatingForCurrentVersion":4.70164000000000026346924641984514892101287841796875, "userRatingCountForCurrentVersion":184073, "averageUserRating":4.70164000000000026346924641984514892101287841796875, "trackViewUrl":"https://apps.apple.com/us/app/salesforce/id404249815?uo=4", "trackContentRating":"4+", "trackId":404249815, "trackName":"Salesforce", "releaseDate":"2010-11-22T08:00:00Z", "genreIds":["6000", "6005"], "formattedPrice":"Free", "primaryGenreName":"Business", "isVppDeviceBasedLicensingEnabled":true, "minimumOsVersion":"12.0", "sellerName":"salesforce.com", "currentVersionReleaseDate":"2020-05-11T17:59:28Z", "releaseNotes":"We update the Salesforce mobile app regularly to make it faster and more stable for you.\n\nThis version includes bug fixes and performance improvements.", "primaryGenreId":6000, "currency":"USD", "version":"224.060", "wrapperType":"software", "artistId":281826149, "artistName":"salesforce.com", "genres":["Business", "Social Networking"], "price":0.00, "description":"The new Salesforce mobile app is here! \n \nRun your business from your phone -- faster, easier, and with AI as your sidekick. The Salesforce mobile app unlocks a whole new level of productivity, personalization, and speed.\n \nMake smart decisions with AI \nTake immediate action with intelligent views and insights into your business, powered by Einstein Analytics. Get the information you need exactly when you need it to make informed decisions from anywhere.\n \nBuild mobile experiences faster\nWith Lightning now available on mobile, building custom mobile apps is faster and easier—with clicks, not code. Mobile-optimized lightning components? Check. Dynamic and rich mobile record pages? Check. Now anyone can build amazing mobile apps fast.\n \nAccess your entire business\nThe full power of Salesforce is now available from your device. The Salesforce mobile app now includes all your favorite Lightning Apps. And the new navigation bar makes it easier than ever to get to the apps you use most.\n \nWhether you're in the office, on an airplane, or checking in from a coffee shop, the new Salesforce mobile app is your key to productivity.", **"bundleId":"com.salesforce.chatter"**, "userRatingCount":184073}]}
#iOS #mobileautomation #bundleid

How can I get identification string look like IMEI in IOS

My project have a case: one account user can only log on to one device ( if user log on to app in device A, user can't log on to app in device B). My Idea is: when user login, I'll get the imei Iphone (like android) and send it with request login to server. But I can't get imei. I try with UUID, but UUID will change when re install app. Keychain does not solve the problem. Please help me.
You have to use Keychain to store Unique Id , this will not change even if user delete app
You can use any wrapper Source code to do this
here is an example
https://github.com/Joe0708/KeychainUUID
At the beginning I'd like to mention that I do not know any method that directly answers your question, especially that Apple does not allow you to read IMEI and other similar stuff due to privacy concerns. This has been answered here.
The workaround might be as follows
Take a look at the UIDevice class, especially at the identifierForVendorProperty which provides you (according to documentation ) with a device specific value.
The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor.
As far as i know some financial apps are secured this way to permit only one device to access the account. This however requires registering a device each time application is reinstalled.
Alternatively you can use UUID you generate within your app (first run) and then you assign it for the user online. It might take the form similar to two step verification process. Be aware however that with such restrictions user will have to be online all the time to use your app.

Store temporary data outside of iOS app

I have an app that is uniquely branded for each customer (think restaurants, etc.) I need to have the user be able to click on a link to my server that contains a unique code, stores that temporarily on the iOS device (cookie, etc.) and then directs them to the app store to download the app. Then when it is downloaded, the app grabs that cookie or temp. data on launch and brands the app for that customer. I know this is possible on Android, but is it on iOS?
Downloading the app first and then selecting the brand (or restaurant) is not feasible in this case, as the url wil be shared with other customers of the same business and we want to create a fluid experience, where they won't be able to "see behind the scenes" and choose a different branding.
Thanks
Edit
Thank you for all the replies. We've reevaluated and are considering having the url be opened on the device and grabbing the IP address or another unique id, and saving that along with the correct brand to a database. The app will then connect to the database on launch, and if the IP's match, will brand accordingly. We're looking for a more reliable identifier than IP, however. Now that UDID is deprecated, are there any other identifiers we can use?
I think the design you propose of a webserver link creating the code that needs to be read by the iOS app later is the issue. You should have a solution that is entirely app based. Perhaps you can have the same services on the website be available as one app which then sets up the code in pasteboard. The user then launches the actual app that looks at the pasteboard and skins itself accordingly.
That being said, data can be shared between apps from the same app seed ID by using UIPasteboard in addition to a few other ways.
I use the pasteboard to share info between apps quickly and easily using this class.
You can use identifierForVendor (UDID replacement) to identify individual devices. Are you planning on harvesting those identifiers prior to the end user "registering" the device at the final location? If not you'll never be able to determine which device belongs where.
What about having the end-user logging into your server as that restaurant? It can be a somewhat generic login per restaurant like "Wendys/Wendys5?" and "McDonalds/McDonalds7!" to determine their App Store URL. As long as the password is easy and non-programmatic to guess it would be unlikely they figure out how to register as a different restaurant. You could also do a simple restaurant selection screen coupled with a password specific to each chain but this would expose the user to which other restaurants are using the app. This way you won't have to continually add IPs if they expand locations and can revoke credentials if the login is compromised.
One question, though: Do all of your clients understand that they'll have to have an AppleID tied to each device? You can only shared a single AppleID across 20 devices.

What kind of personal data is available for iOS developer?

I'm going to use some application both on my iPad and iPhone (both devices on iOS 6.0.1). The data that I will operate in the applications are synchronized through the cloud owned by application developer.
Potentially, the developer can tie my personal data with the data that he puts into the cloud.
Q: What personal information about the owner of the device an application developer can obtain using documented and undocumented features of the iOS SDK?
For example:
- Apple id
- Phone number
- Card number
- Email
- First Name / Last Name, etc.
All you can get is an identifier of the device. You can get the telephone number, but then your app would be rejected. So in short, all you can do is ask the user for his personal data (or to choose his contact from the address book) - no automatic way to get these.
All you can get is less personal things like IP address of the device, device type etc.

iOS hardware parameters for unique id generation

Hi I would like to generate an unique id for an iOS device using any of the device hardware parameters. I do not want to use the MAC address because there is a chance that the MAC address can also be changed. So can you please let me know if there is any other unique hardware parameter with which I can generate an unique ID.
I believe something along the lines of this is the generally accepted replacement for UUID.
In short, you need to create a CFUUID, and then store it in the Keychain on the iOS device, which persists even if you uninstall the app. Having written my own implementation along those lines (not the one I've linked to, obviously), I've yet to come across any real problems with this. It can even be accessed in your other apps that you make, so long as you access it with the same security parameters in aloof your apps.

Resources