CloudKit private database developer access - cloudkit

I'm wondering if it's possible for me to access a user's private database on the Development schema as the app developer. I'm just testing locally on my devices, but I need to be able to inspect the records of devices not associated with my developer account for debugging purposes.
Thanks so much!

The only way to do this is to sign in to the CloudKit Dashboard with that user's Apple ID. Their data is otherwise private.
Alternatively, you could create a mechanism in your app that pushes a user's data to the Public database of your app for help/troubleshooting purposes. That data is visible to you there as the app developer and you could download and inspect it.

Related

Can you use CloudKit to access a user's contacts from a React/Django project?

I have a react/django project and we need to somehow access the contacts of our users. I was told to look into CloudKit's API in order to take care of this, however there seems to be no real information in their docs or in my Google searches on using this API to specifically access a user's contacts.
I am open to other suggestions as well. The ideal would be to access their contacts initially and then every so often compare their contacts to our list to see if any have been added.
You cannot access this data from a third-party app via a CloudKit API.
While Apple does store a user's contacts on CloudKit, they do so under these conditions:
The user opts-in to sync their contacts with iCloud (this isn't required for iOS users; they can be on-device only, or sync with another service like Google).
The contacts Apple stores on CloudKit are in a container that is private to Apple.
When you use CloudKit as a developer, you are creating a container for your app. You can only access data in containers you create.
Here's what you would have to do:
Create an iOS or macOS app that requests/manages access to the user's contacts.
Add the Contacts entitlement to your target in Xcode: Signing & Capabilities > App Sandbox > App Data > Contacts
Use Apple's Contacts framework to access contact data using Swift in your iOS/macOS app.
Once you have the data in your Swift app, communicate with your Django API to do what you need to.
One last thing. If you choose to go this route, you will have to reveal in your app privacy disclosures (in App Store Connect) what you are doing with the users' data.

Itune Application sharing blocking

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

Interface to the AppStore?

I have a requirement that a client wants to be able to allow users to download apps from within an app (which I will call the main app), based on a user's score (when a user achieves a certain score, they can have an app). We would like to do this without linking to the app store directly, so that users of the main app can be granted access to another app.
So, is there a way to interface to the app store while hiding the official app store from the user? I have seen similar functionality in Passbook, but not exactly what we are looking for. Any ideas? Thanks! Viv
Possible duplicate
How to link to apps on the app store
If your app is in Apple appstore, you can use itms:// service to install apps directly. Check the above link that tells awesome stuff about the apple app store itms services.

iPhone iOS Dropbox how to pre-authenticate (link) an account for an app?

I would like to try out an idea of using 1 centralized dropbox account to store data for one of my apps. This would be the kind of a "public" collaborative storage space.
To do so, I need to pre-authenticate the user to use a particular dropbox account. Is there a way for me to link a particular app to a dropbox account, and then include some kind of "pre-authenticated/authorized" tokens within the app to allow the user to interact with my dropbox account without the need to login?
Thank you!

Is it possible to get the user's apple ID through the SDK?

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.