I want to be able to add additional classes to my iPhone app without having to go through the 7 day update process. It is like Consume by Bjango where they can update the providers and fix urgent issues开发者_StackOverflow社区 without going through Apple's process.
The code I need to upload needs to be its own class. This way I can add additional services (like Consume adding a provider).
How would I be able to go about this?
An alternative if I cannot do this is to have to add the classes manually in updates, and then update the code within those classes.
It is not possible to update your code without going through the apple approval process, otherwise you could completely change the way your app works without apple seeing it. The way apps like consume work is that all the providers are stored in a file on the web that they can make updates to and then the app can download it. This file of course doesn't have any code in it, it is just data.
You can't upload or add new code to an installed app. All of an App store app's executable code is signed by Apple, and stored in the bundle without user level write permission.
You can upload Javascript to run in a UIWebView (visible or hidden) and data blobs (button titles, images, dimensions, json, XML, perhaps the string names of already existing Objective C methods to dispatch from a table, etc.) There's a WWDC 2010 video on Data Driven app design.
But no new Objective C classes. At least given the current SDK agreement about what will be accepted for distribution from the App store.
Can't do it I'm afraid. You don't have permission to do what you'd need to on the device. Plus, Apple has done nothing but pull apps that have provided additional functionality without going through approval, or otherwise hidden features.
I think its clause 3.1.3 (someone can correct me on this) of the iPhone SDK License agreement.
Basically saying your app cannot interpret code, eg creating a Flash Player which can run SWF files. Which would essentially allow you to go around the apple app approval process. This is very similar to adding new classes / binaries to your code at runtime. Even if you can, I do not recommend it because they will pull your app. Eg look at Camera+.
This process is there for a reason, which allows users to trust that. 1. apps actually run 2. apps do what they say they do in the description.
You can however probably download config files which might change/remove/add features or functions in your app.
If you want to get around this, make a HTML 5 webapp. You will be surprised in how much you can do in HTML5 including content caching, CSS3 buttons, powerful databases etc.
精彩评论