Exchange plist data between 2 iPad using iCloud - ios

Suppose I have one app called "AppBuddy" on the AppStore.
Now If I download AppBuddy on one iPad, add one user profile in it, save data into plist and sync that plist to iCloud.
Now I download AppBuddy on 2nd iPad using same AppleID. Can I get that plist from iCloud server and show that user profile on my iPad ?
Is this possible?

Yes, it is possible with some conditions
the iCloud id on both devices is the same and the user is logged in to iCloud on both devices. iTunes accounts used to purchase apps can be different from iCloud sync account.
the app implements syncing data using iCloud
If you need help on how to support iCloud in apps, this tutorial will help.

Related

does every iOS app has it's own single keychain on device?

I'm really confused and hence asking this - does every iOS app has it's own keychain on device(iPhone) or there is only one keychain on device (iPhone) which is used by the different apps ?
Thanks
As mentioned in Apple docs. For the iPhone, there is only one keychain and apps can store their keychain items in it.
In iOS, apps have access to a single keychain (which logically
encompasses the iCloud keychain). This keychain is automatically
unlocked when the user unlocks the device and then locked when the
device is locked. An app can access only its own keychain items, or
those shared with a group to which the app belongs. It can't manage
the keychain container itself.
Reference: https://developer.apple.com/documentation/security/keychain_services/keychains

ios 11 UIFileSharingEnabled is gone

So I have this secret calculator app where users can store their private phones in my apps documents folder. If they wanted to move files from their iPhone/iPad to their PC/Mac then they would connect their device to iTunes, select my app and move files to & from their devices. They have been doing that for years.
Today I found out that this UIFileSharingEnabled has been removed in iOS 11, since iTunes cannot be used for file sharing. The whole reason for my app (and tons of others on the app store) was that the users files were hidden from others and the only way they could get to it was using a passcode or finger print within my app ... and of course through itunes sharing.
I can add the following keys to my app plist file but that will make all of the users "secret" photos available from my app into Apple's default files app. I don't want that. Defeats the purpose of my app.
What exactly are my options now, if any, for file sharing?

Is iOS Keychain service different from iCloud keychain?

I have been reading the document, but I am getting confused.
There is iOS Keychain here.
And there is iCloud Keychain here.
They both called keychain and both able to store locally and sync to other devices.
Are they just the same thing?
Or iOS keychain service doesn't require iCloud account for local storage at all?
iOS Keychain is a service which allows you to persist user-sensitive information in your application.
iCloud Keychain is a service provided by Apple which syncs your Safari passwords as well as Mail, Contacts, Calendar, and Messages synced across all of the devices signed in with a specific Apple ID.

Will or Can iCloud or iTunes back up Apps Documents or App Data

I am developing an iPad App (will not put in App store, just ad-hoc deploy) that would have some documents save at apps Documents folder, and some where I need to enable the iCloud capability for some other function.
If I have no other special configuration (as I don't know), I would like to ask:
Will / Can iCloud or iTunes backup the Documents folder and containing files? (I don't want this)
What will be backup related to the App? (how about Library Folder)
Is iCloud independent per App?
If I restore the app to a new device, what will be preserved of not preserved?
iCloud will backup the App data. See the iCloud: iCloud storage and backup overview Support Document, but you turn off the App data backup on a per app basis. See the iCloud: Select which iOS apps to back up Support Document.
Basically the way that a backup and restore will work is iCloud will restore the App data, then will download the application from the iTunes Store (I'm not sure how this will work with an ad-hoc app.) Hope this helps.

Is keychain data that I store restricted to my app?

If I put some information into the keychain, my app is the only one who is able to have access to that data, correct?
The keychain data are shared across a developer's applications.
From the apple documentation:
Keychain data for an app is stored outside of the app’s sandbox. When
the user backs up app data using iTunes, the keychain data is also
backed up. Before iOS 4.0, keychain data could only be restored to the
device from which the backup was made. In iOS 4.0 and later, a
keychain item that is password protected can be restored to a
different device only if its accessibility is not set to
kSecAttrAccessibleAlwaysThisDeviceOnly or any other value that
restricts it to the current device. Upgrading an app does not affect
that app’s keychain data.
Here is an example of sharing keychain information between applications.
The data an app puts into the Keychain is restricted to a single developer's apps. It can be shared by multiple apps by the same developer if desired or restricted to that app.
See WWDC13 2013 video "Protecting Secrets with the Keychain". You can access it either on you computer or on an iOS device with the Apple WWDC app.

Resources