I need to create an integration between my app and apps by another developer. There are several ways to store data for an app, some that allow only your app to access it, some that allow other apps by the same developer to access it. But is there an iOS API that allows you store data publicly on the device so that any other app can access it? This data is not secure and cannot be used maliciously.
May not work for your specific needs, but note you can share documents between apps using UISupportsDocumentBrowser. See also here.
UISupportsDocumentBrowser (Boolean - iOS) Specifies that the app is a document-based app and uses the UIDocumentBrowserViewController class.
If this key is set to YES, the user can set the document browser’s default save location in Settings. Additionally, the local file provider grants access to all the documents in the app’s Documents directory. These documents appear in the Files app, and in a Document Browser. Users can open and edit these document in place.
This key is supported in iOS 11 and later.
This would violate iOS security policies and is therefore not possible on device. The only way to enable this is on a jailbroken device.
Related
I have an application with chat feature.
In this, the user is able to attach a document using the app for which I am using UIDocumentPickerViewController. But I read that it requires iCloud capability to be enabled along with an iCloud Container.
The app does not create any document on iCloud, but just provides an option to attach and existing document along with a chat message.
I want to know whether enabling iCloud is really needed for this use case. Also, the app does not require the document to be on iCloud, it is fine even if the app is able to access only local documents.
I did read here: Implement Document Picker in swift (iOS) that iOS 14 does not require any capabilities but could not find any official document to support this claim.
No, you do not need iCloud capability to be enabled for UIDocumentPickerViewController. It doesn't require any capabilities actually.
I'm developing an app that needs to interact with other apps (that are developed by other persons). In order to do that, I wanted to use their File Provider to read and write from that.
I know the group they're using, but I don't know the URL of the File Provider. I need a way to copy some files programmatically.
I tried:
let provider = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.app.ish.iSH")
But it just doesn't work because I don't have the App Group in my App Id.
The iOS apps are sandboxed partly to specifically prevent this kind of thing from happening. Typically we use inter application URLs to communicate between apps. On a standard (non-jailbroken) device I don't believe there's way to read another application's files when you didn't develop that other app and can't control the app group
I am trying to build a mobile monitoring tool/app for iOS without Jailbreak. The only possible way to perfectly access all installed app's content is through iCloudKit.
Also I found Apple's MDM come a little close to this for BYOD devices but yet accessing individual application's data is not possible.
During all this process, I came across some website fonemonitor and phonemonitor (with and without) who claim to do the same without Jail Break.
So here is my question is it possible to take any application's data if we get access to the users iCloud account? Also, are all public, private and shared data accessible via iCloudKit? As the documentation clearly states private data is untouched.
How does app monitoring work for any iOS Devices through these websites. Any lead would actually help!
Is there any way to make directory in iOS secured and protected just for my app?
in my application user buys books and I save books on documents sub directory, so I don't want any other application to access this directory
any suggestions ?
should I encrypt this data ?
The documents folder is indeed sandboxed from other apps, but it is not safe from 3rd party utilities which lets you check the iPhone's file system (jailbreak not required) , such as iExplorer.
If you want to secure your app data you should read about the data protection api's in Apple's developer portal. There's a nice WWDC lecture as well (I think its from 2011).
Another solution could be packing your material in a secure format , such as an encrypted zip file (some sort of password derived from the device's uuid you create on the spot).
You may be interested to take a look at Data protection for iOS:
http://support.apple.com/kb/HT4175
What are the new "iOS data protection APIs"?
Data Protection on iOS
Implementing and Testing iOS data protection
The documents folder for your application is sandboxed and can be utilized only by your application. If you are storing resources to be used by your app, this is the place to put them.
I am currently coding a backup app for iOS, and I want to have options to let the user back up things like Application Data (other app's documents, etc,) Contacts, Safari Bookmarks, and all that fun stuff.
I'd like to know if that's possible, how I'd do it, and where those files are stored, and most importantly, if this is actually allowed by Apple. I read through their docs, and I haven't seen anything that speaks against it.
It's not possible. Your app isn't even capable of reading the documents from other apps. This is accomplished via sandboxing. Every read/write your application tries to do to the filesystem is checked by the kernel to ensure you're staying within your sandbox. The documents belonging to other apps are outside of your sandbox, so you cannot see them.
They aren't allowed. All iOS apps are sandboxed, and can't access other apps' data.
Your app, naturally is in a sandbox, which does not allow you to read outside of the app. If you jailbreak your device, then yes, it is possible.