Sencha Touch + PhoneGAP Build - iOS App rejected because of Storage setting - ios

Experts,
Recently I've used PhoneGAP Build service for my iOS App (HTML5 App built using Sencha Touch), and when i submit to app store, they rejected my app with this reason
in particular, we found that on launch and/or content download, your
app stores non user-generated content in iCloud backup directories. To
check how much data your app is storing:
Install and launch your app
Go to Settings > iCloud > Storage & Backup > Manage Storage
If necessary, tap "Show all apps"
Check your app's storage
Is there any solution?
please help
I already have this app published in BB and Android with out any issues.
https://play.google.com/store/apps/details?id=com.pavan.cinetalk
http://appworld.blackberry.com/webstore/content/32189889/

I think PhoneGap Build might be setting BackupWebStorage by default to iCloud, if you set up PhoneGap locally this setting can be changed in the Cordova.plist file see the below link:
http://docs.phonegap.com/en/2.2.0/guide_project-settings_ios_index.md.html

If im not wrong the message is quite clear, they just don't want you to upload to their cloud data that is not generated by the user.
I don't know your app, but sounds like are you backing up things like images or media used by the application itself instead of user's data ¿?

#Brett Bailey: Thanks for your input, finally this parameter worked and iTunes approved my app now
https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=687594497&mt=8

Related

How do I properly enable iCloud document sync for iOS app?

In my cordova iOS app, users can back up their data to a file which is saved in the Documents folder within the app's container, which then should be synced to iCloud. However, though the file is saved it is never synced to iCloud, so clearly I must be missing something. These are the steps I have taken:
iCloud container registered on developer.apple.com and iCloud Documents capability enabled in xcode:
NSUbiquitousContainers dictionary added to Info.plist:
Archive build created and uploaded to App Store, build released to testers via Test Flight (Note: app has already gone through review process and been released to App Store).
Note, Cordova config.xml does not contain BackupWebStorage setting so cloud backup should be enabled (not sure exactly whether this affects document sync).
User saves backup file, which is saved to app's Documents folder (Note: the app uses the cordova-plugin-file plugin to save the file to the location denoted by the plugin variable cordova.file.documentsDirectory):
At this point I would have expected to see xBrowserSync appear in Storage & iCloud usage settings, but I do not:
And neither do I see an xBrowserSync folder appear in the iCloud Drive app:
And of course I never see the files synced to my Mac or on icloud.com.
Clearly I'm missing something but I can't see what. I've read many SO posts regarding getting this working and I find Apple's documentation unclear and confusing so I'm kind of stuck at this point. Could someone please point me in the right direction?
After some further reading I believe I know what's missing here. I hadn't realised you need to explicitly tell iOS to upload a file to iCloud Document Storage, which is what will allow files to appear in iCloud Drive on the user's devices.
So, I need to write some (iOS) code that utilise the FileManager class to:
Call the url(forUbiquityContainerIdentifier:) method in order to get the location of the local iCloud container and initialise it (at which point the app will appear in Storage & iCloud usage settings)
Tell iOS to upload the file to iCloud by calling setUbiquitous(_:itemAt:destinationURL:)
I'm building a very basic Cordova plugin to do this. I'll update this answer with a link when I'm finished.
Edit:
The cordova plugin I developed is called cordova-plugin-icloud-document-storage. It currently only implements uploading documents to iCloud (i.e. setUbiquitous), it doesn't implement the other iCloud functionality of the FileManager class (such as managing cloud updates or version conflicts). If anyone would like to develop this functionality please do submit a pull request.

Auto update iPad app without app store

I have an iPad app and I don't want to publish on app store.
I want to reconfigure the app from server i.e. if the flow of the app was:
Page 1 -> Page 2 -> Page 3
And I change data in the database to:
Page 1 -> Page 3 -> Page 2
My app should be reconfigured. I would also like new pages to be added in my app.
How to download the Swift files in user's app, compile it on the fly and update the app without user's intervention or through app store?
This is a private app and won't be published on app store.
How to download the Swift files in user's app, compile it on the fly and update the app without user's intervention or through app store?
You can't.
You can, however, design your app to have UI not hardcoded in the app, but defined in some configuration file (i.e. in JSON format) which you would download at app launch. You would need to implement functions to create UI elements from their JSON definitions, etc.
No, This is not how it works on iOS. You can't achieve this requirement through Native iOS development. You have to create a web app. You can build the app using React-Native or PhoneGap cross platform environments. Again there, without publishing app store you can't share iOS .ipa file like the .apk file in android. In that case, you have to buy Enterprise developer account and share.
Another option like building a UI using JSON is very tricky and takes lots of efforts. In case if you really want to do like this go for it.

iOS, config files and sandboxing

My understanding is that because of sandboxing, it isn't possible to view any text file (ie config file) associated with an iOS app using another app. Something quite simple with Android. Am I mistaken?
I am trying to implement a text config file with a Unity iOS app that gets loaded and parsed once when the application boots.
This config file would also be able to be edited and saved manually on that actual iOS device.
(addendum)
In Unity there is PersistentDataPath which resolves to /var/mobile/Container/Data/Application/foo/Documents
Is there an iOS supported file explorer app that will allow me view and edit files in this location (without jailbreaking)?
Use can check iOS App Groups. It allows multiple apps access to shared containers and allow interprocess communication. There is no so much documentation about this, but maybe that's what you're looking for. At least you can share NSUserDefaults between the apps.
NSUserDefaults it's a most simple way to save any (not big) configurations for your app. For manual editing: if your app on the device signed with developer certificate, you can connect through any iOS supported file explorer app and edit it. But after release, from App Store, your app installed in restricted/private path, so it's not possible, if only you don't have a jailbreak.
Initial configuration you can put into your app bundle, and at the first run just copy them to NSUserDefaults.
Short answer: There are utilities such as iExplorer - https://macroplant.com - that allow "file manager" type access. However...
Long answer: If your app requires users to buy (or get) other software to modify configuration files, the chances of Apple approving it are slim to none.
The appropriate thing to do is to provide a User Interface in your own app which allows the user to modify / update the settings.

Is there a way to open an editor app in ios and receive edited results?

I have an app that downloads files from a web server. Our customer wants the ability to edit those files on their mobile devices and upload the edited version to our servers. Is this possible in iOS? I have figured out how to allow users to view the files in external apps, but I don't see a way to bring back their changes if the file was modified as it seems to copy the file into the other app's space, so my app is left with the unaltered version.
iOS has a sandbox mechanism, so for sure you can not modify any file in another app.
The only way to transfer data from different app is using sharing.
This is a sample project I wrote for implement sharing on iOS, check it:
Sample for sharing on iOS
Hope it can help you.

How to clone an iOS device (iPad), including app data container?

I have an iOS app on the app Store.
This app can download additional content for free. This content is stored in the user "application support" directory (as described here). Once downloaded the app provides more content, just like Kindle would after downloading a few free e-books.
Now, how can I clone this iPad, including its"updated" app, on 60 others ? Apple Configurator does not seem to be able to clone the application AND its support directory. Am I missing a specific setting ?

Resources