Making a file created by an application to be shared by iTunes - ipad

How to make a file created via an ipad application to be available to iTunes.
And how to make an application support iTunes file sharing could some one give a code snippet for both these

All you have to do is set UIFileSharingEnabled to YES in your info.plist. Once that's set, anything in your app's documents folder will be accessible through iTunes.

Related

On My iPhone / On My iPad folders, how to create a folder for my app?

Can someone show me how to create a folder for my app within the "On My iPhone" location that is visible via Files App?
I notice other apps have folders create there with their icons, but I can find ZERO developer documentation that talks about the "On My iPhone" or "On My iPad" folders.
To get your files can appear in the Files app, you must first specify that your app supports "Open in Place" and "File Sharing Enabled".
These options are configured using keys in your Info.plist file. The first key is UIFileSharingEnabled, which enables iTunes sharing of files in your Documents folder.
The second key is LSSupportsOpeningDocumentsInPlace, which grants the local file provider access to files in your Documents folder.
Add these two keys to your Info.plist and set their values to YES.
Everything I'm saying here I found in this BigNerd tutorial.

Can you add files to an IPA that will show in iTunes File Sharing?

Is it possible to create an IPA (for iOS) and include files that will appear in the iTunes File Sharing menu? (I believe this is also called the application's document folder?)
For example, suppose to wanted to include a CFG file that could be copied/uploaded using iExplorer or iFunbox, or iTunes File Sharing, etc.

Are plist files stored with the application bundle?

I have an iPad app (XCode 6.1, iOS 8.1 and Storyboards). I am currently modifying the app to be able to sync it to other devices using iCloud.
My question is: are all .plist files part of the application bundle? (i.e. do I have to be concerned that if the app is sync'd between devices, do the .plist file(s) go with the app bundle or do I have to move them into the iCloud with the Core Data store)?
if you save the .plist files into the Documents folder from the app explicitly then those files won't be part of the bundle.
every other file which is archived into the .ipa file when you distribute it, they are permanent part of the bundle.
NOTE: you can read more about the bundle on the official site, e.g. here.

Sharing the project, but not the code, with a tester

Please forgive me if I am asking a dumb question, I am fairly new to ios and cocos2d programming. I have developed an app that is almost done. I have an architecture where settings are in a plist file.
I want to share the app with my colleague, who has agreed to test and make changes to the plist if necessary, so that he can see which settings are the best.
What I want to know:
Is there a way to share my app with him (he has a mac and a ipad) so that he only has access to the plist file but won't be able to access the rest of the code? Thank you in advance.
One idea: To put my plist on a server and have a call to download the plist file when the game begins, so he can just change that. Is there a better way ?
Yes, have the app download the plist so he can edit it on the server. When you save the .plist, save it in the documents folder (outside of the bundle). Bundle is read only, and modifying it will destroy the signature, making it so he can't install it, unless the device is jailbroken.
Alternatively, copy the file from the bundle to the documents folder on first run and enable file sharing for the app. Then he can edit the .plist file and update it via iTunes.
The bundle only contains compiled object code, so he will not have access to source code.
You can use testflight or email him the .ipa and he can install via iTunes, or if you have a developer account, you can set him up as a tester through iTunesConnect once you've uploaded your app.
look for iExplorer, that should enable you to up and download resources to/from your iDevice.
You could also create a 'debug mode' (for example accessed by turning the phone upside down or whatever you like). That debug mode can contain controls to manipulate the settings read from the plist and reboot the game. No server involved, just client side manipulation so you can just hand him the binary.

rejected by UIFileSharingEnabled key set to true

I've got rejected my recent update on iPhone app and it says:
"When file sharing is enabled, the entire Documents folder is used for file sharing. Files that that are not intended for user access via the file sharing feature should be stored in another part of your application's bundle. If your application does not require the file sharing feature, the UIFileSharingEnabled key in the Info.plist should not be set to true."
I don't have any data which is not supposed to backup via iTunes. So, in this case, how to make a change or appeal to pass the review?
I was able to pass Apple's review without rejection and still set UIFileSharingEnabled = true.
It was very helpful to see the how to from raywenderlich: http://www.raywenderlich.com/1948/how-integrate-itunes-file-sharing-with-your-ios-app.
The key is making the sharing data simple, I guess.
A similar question is also answered here. This part might be relevant for your situation:
When file sharing is enabled, the entire Documents folder is used for
file sharing. Files that are not intended for user access via the file
sharing feature should be stored in another part of your application's
bundle.
Only store user relevant documents in the /Documents folder. For other non-temporary files, use /Library/Application Support instead (or /Library/Preferences).
I've run into the same issue.
In my case I was able to pass Apple's review by changing following line in Info.plist from
<key>UIFileSharingEnabled</key>
<string>true</string>
to
<key>UIFileSharingEnabled</key>
<true/>

Resources