PhoneGap App - Rejected for Undocumented API's

123 views
Skip to first unread message

Justus

unread,
Sep 13, 2009, 1:43:43 PM9/13/09
to phonegap
Thank you for submitting ************ to the App Store. Unfortunately
it cannot be added to the App Store because it is modifying or
extending an undocumented API, which as outlined in the iPhone
Developer Program License Agreement section 3.3.1 is prohibited:

"3.3.1 Applications may only use Documented APIs in the manner
prescribed by Apple and must not use or call any private APIs."

There is no documentation for the custom subclasses or self-contained
views of UIImagePickerController in iPhone OS 3.0.1. This includes
PLCameraView and its custom subclasses (PLImageTile, PLRotationView,
PLImageScroller, PLImageView, PLCropOverlay, PLCropLCDLayer,
TPBottomDualButtonBar, TPPushButton and TPCameraPushButton).

Additional Camera APIs are now available in iPhone OS 3.1. Please
review these new APIs to see if they meet your needs. If any
additional APIs are desired, please file an enhancement request via
the Bug Reporter, <http://bugreport.apple.com>.

Regards,

iPhone Developer Program


-------------------------

Ugh. Granted, I submitted this back in June with the latest github
clone, are these "undocumented" API calls in the latest beta build of
PhoneGap as well?

Shazron Abdullah

unread,
Sep 13, 2009, 6:19:29 PM9/13/09
to Justus, phonegap
Hi,
I fail to see where this mentions PhoneGap functionality specifically
for the rejection. As anyone can verify through the source, PhoneGap
does NOT use any undocumented APIs. The Camera API that PhoneGap uses
is the standard API call.

Shazron Abdullah

unread,
Sep 13, 2009, 6:26:23 PM9/13/09
to Justus, phonegap
Sorry I missed this comment at the bottom. Wow so has it taken 3+
months for it to be rejected? PhoneGap uses the standard iPhone SDK
API even in the latest builds.

On 2009-09-13, at 10:43 AM, Justus wrote:

Justus

unread,
Sep 13, 2009, 8:44:37 PM9/13/09
to phonegap
Right. We believe it is because of the whole "grey area" thing with
PhoneGap at the moment. Currently we have another PhoneGap app that
was built on the same version of PhoneGap that the rejected app was
built on, yet it was approved.

This app was flagged as something that definitely looked like a
PhoneGap app, and was put on hold for 3 months while they were
deciding what the hell to do with it (along with many other PhoneGap
apps). Apple (and us) are waiting for the official PhoneGap v1.0
release that will apparently iron out the "issues" (Apple) is
concerned with.

So, we've recompiled it with the latest beta build of PhoneGap and re-
submitted it just now. At this point I am almost ready to go the Obj-C
route and invest the time to build it from the ground up again just to
see it approved and on the market.

I don't know when v1.0 is going to be released, there isn't any news
or talk about it anywhere except in the inside channels. What a pain
it is to take so much time to create something and then see it on hold
and then rejected because of (really) nothing.

On Sep 13, 3:26 pm, Shazron Abdullah <shazron.abdul...@nitobi.com>
wrote:

TommyDantana

unread,
Sep 14, 2009, 4:35:24 AM9/14/09
to phonegap
There are probably multiple reasons that Apple is proceeding with
great caution in regards to accepting these web view frameworks.
One of the problems we have been seeing is that while it is a positive
thing to try and simplify development, this has come with a lot of
people quickly throwing
together really poor applications and submitting them. One of the
members of this group ( who I probably do not need to name) has even
become the king of fake 5 star
reviews on the App Store. This sort of unethical thing does not help
matters.

My team has been observing from a distance Phonegap and
QuckConnect , but we firmly believe that cutting corners always ends
up further complicating matters and costing
more in the end. It's better and finally easier, just to use the
tools that Apple provides for building iPhone applications.

Now If you want to make apps for free on the other platforms, then use
whatever you want.

Paul Prescod

unread,
Sep 14, 2009, 2:48:01 PM9/14/09
to TommyDantana, phonegap
I don't understand how you can say that on the one hand, PhoneGap makes it too easy to develop cheap apps quickly, and on the other hand that it is "cheaper" to use native code.

Shazron Abdullah

unread,
Sep 14, 2009, 3:49:59 PM9/14/09
to TommyDantana, phonegap

> My team has been observing from a distance Phonegap and
> QuckConnect , but we firmly believe that cutting corners always ends
> up further complicating matters and costing
> more in the end. It's better and finally easier, just to use the
> tools that Apple provides for building iPhone applications.
>
> Now If you want to make apps for free on the other platforms, then use
> whatever you want.


I agree about the cutting corners part, but "better and finally
easier" is all relative.

You can still cut corners when developing natively. I wouldn't blame a
hammer or screwdriver for a carpenter not building a house properly
that is not up to code (pun intended). One could buy a fancy kitchen
knife (or a SlapChop - I had to get a reference to that in somehow!)
but making gourmet dishes takes lots of experience. Everyone has to
start somewhere, and for a lot of people this is through web
technologies. Sure some apps are crappy, but these will be weeded out
eventually through rankings.

The goal for PhoneGap is for it not to exist -- so that the OS itself
eventually provides a javascript interface to their frameworks (which
Nokia with WRT and Palm with WebOS is already doing). Scripting to
native is not without precedent on the Apple platform - with Leopard,
Apple provided a scripting bridge (http://
bridgesupport.macosforge.org/) for users to write Cocoa applications
using for example Ruby and Python (through RubyCocoa and PyObjC).

In fact, Apple has crippled the WebKit provided in UIWebView so that
native objects could not be bound to Javascript.

As an Objective-C developer, I was a vendor that helped develop a
desktop app for a Fortune-500 company, that is installed on millions
of computers that was developed almost entirely using javascript+html
+css (with an Objective-C back-end, much like PhoneGap). Through
meticulous testing, performance and pixel-perfect detail of the UI,
the app looks pretty much like any other native app (the reasons for
going non-native were both strategic and experimental, which seems
prescient with all this ChromeOS talk). To the user, they don't care
what tech is going on under the hood.

Apple, with ITunes 9, is using their own new TuneKit: "The new iTunes
interactive media content formats are built using open web standards:
HTML, CSS, and JavaScript, using a new framework Apple calls
TuneKit" (see http://www.appleinsider.com/articles/09/09/14/apples_tunekit_itunes_lp_format_appears_aimed_at_apple_tv.html
). For their MobileMe web interface, they are using SproutCore, a JS
framework - which provides a desktop-like interface.

With SVG, Canvas plus javascript (all supported in the UIWebView -
plus major browsers, except that one), one can build amazing
interfaces if one wanted to take the time. Not to mention the goodies
available in HTML 5.

Have I gone off topic yet? :P

TommyDantana

unread,
Sep 14, 2009, 4:57:06 PM9/14/09
to phonegap
Shazron, I have utmost respect for you and your work. And I do fully
agree with you.
Just would like to add that: to do great applications a developer
needs to understand and be able to implement as many aspects of the
iPhone SDK as possible.
There is a lot of competition now. We just believe that as things
stand right now, it is better to stick with native. Beginning
developers may save a little time at start, but not knowing what's
going on under the hood may come back to haunt them, costing even
more, especially in time (not to mention performance).

Yes if Apple wanted to encourage iPhone development with scripted web
languages they could simply add a layer and hooks to allow all of this
using Dashcode alone. I doubt they will do this-> however.

Going to check out TuneKit,
Cheers T.

rob brown

unread,
Sep 14, 2009, 5:23:38 PM9/14/09
to phonegap
On Mon, Sep 14, 2009 at 1:57 PM, TommyDantana <in...@ssapps.com> wrote:
Yes if Apple wanted to encourage iPhone development with scripted web
languages they could simply add a layer and hooks to allow all of this
using Dashcode alone. I doubt they will do this-> however.

I think PhoneGap could pressure Apple to do it, much in the way a project to let people run Windows on Mac 3 years ago (http://winxponmac.com/XOM/xom.html ) probably pressured Apple to release their own solution, BootCamp.  Very similar in a way.

I think the only important reason to know what is going on "under the hood" is if you are unable to do things using the simpler/higher level approaches.  Hopefully phonegap will eventually allow you to do everything you can do using Objective-C.

I am also concerned about the issue of Apple rejecting PhoneGap apps, as I am still researching whether to use PhoneGap or to go the Objective-C route.   It would help if I had some idea of how PhoneGap actually gets around Apples "crippling" of UIWebView so that native objects can't be bound to Javascript.  Is there an article somewhere on exactly how PhoneGap accomplishes this?  Assuming this is done using purely "sanctioned" API's, I don't see how Apple can stop this sort of thing, especially with the FCC pressure on them recently re: Google Voice.  On the other hand, if it is done using some sort of sneaky hack, that's different, and it seems very risky to develop on PhoneGap.

-rob

Shazron Abdullah

unread,
Sep 14, 2009, 6:12:31 PM9/14/09
to r...@karmatics.com, phonegap

> I am also concerned about the issue of Apple rejecting PhoneGap
> apps, as I am still researching whether to use PhoneGap or to go the
> Objective-C route. It would help if I had some idea of how
> PhoneGap actually gets around Apples "crippling" of UIWebView so
> that native objects can't be bound to Javascript. Is there an
> article somewhere on exactly how PhoneGap accomplishes this?
> Assuming this is done using purely "sanctioned" API's, I don't see
> how Apple can stop this sort of thing, especially with the FCC
> pressure on them recently re: Google Voice. On the other hand, if
> it is done using some sort of sneaky hack, that's different, and it
> seems very risky to develop on PhoneGap.
>

There is no sneaky hack happening. We are using the same way Apple
recommends(!) how to talk from Javascript to Objective-C. I was at
WWDC 2009 and they demonstrated this very fact in a talk, which is
exactly how PhoneGap does this (through
UIWebView::shouldStartLoadWithRequest and special gap:// urls).

PhoneGap apps being rejected are because of an unfounded assumption on
Apple's part (that PhoneGap is an external framework, uses
undocumented APIs etc). Through Nachoman's interaction with them, the
true nature of PhoneGap has been communicated and the result is recent
PhoneGap apps have been approved.


rob

unread,
Sep 14, 2009, 7:34:19 PM9/14/09
to phonegap
Ok thanks Shazron, that's good to know. I'm now reading up on how all
that stuff works, shouldStartLoadWithRequest is a good starting point
for googling. :)

I assume to go the other direction you use
stringByEvaluatingJavaScriptFromString?

I wasn't aware of the Nachoman communication with Apple....is that
covered somewhere on this list, or elsewhere? Are you confident that
the rejection issue is now settled, and that Justus' concerns are no
longer relevant?

-rob

On Sep 14, 3:12 pm, Shazron Abdullah <shazron.abdul...@nitobi.com>
wrote:

Shazron Abdullah

unread,
Sep 14, 2009, 7:45:39 PM9/14/09
to rob, phonegap
I assume to go the other direction you use
stringByEvaluatingJavaScriptFromString?

Yes.

I wasn't aware of the Nachoman communication with Apple....is that
covered somewhere on this list, or elsewhere?  Are you confident that
the rejection issue is now settled, and that Justus' concerns are no
longer relevant?

No, there are no guarantees of course. Everything is on a case by case basis (like any other app)

Justus

unread,
Sep 14, 2009, 8:35:24 PM9/14/09
to phonegap
Well, well. I downloaded the latest github version, compiled, and
submitted it right back to the App Store yesterday. I just received a
notice that it is ready for sale!

Fantastic! I'm not sure exactly why, the gatekeepers may have smiled
on me this time ...

To all the PhoneGap developers - keep up the great work, you are
leveling out the app store playing field for web developers.

Cheers!

On Sep 14, 4:45 pm, Shazron Abdullah <shazron.abdul...@nitobi.com>
wrote:
> > I assume to go the other direction you use
> > stringByEvaluatingJavaScriptFromString?
>
> Yes.
>
> > I wasn't aware of the Nachoman communication with Apple....is that
> > covered somewhere on this list, or elsewhere?  Are you confident that
> > the rejection issue is now settled, and that Justus' concerns are no
> > longer relevant?
>
> seehttp://nachbaur.com/

Vivian Aranha

unread,
Sep 14, 2009, 8:35:20 PM9/14/09
to Shazron Abdullah, rob, phonegap
"An Application may not itself install or launch other executable code by any means, including without limitation through use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built-in interpreter(s)."

The version of the PhoneGap API in your application is in violation of section 3.3.2. Apple has contacted the PhoneGap developer and he has committed to update his framework to come into compliance with our guidelines.  Please recompile your applications with latest available PhoneGap API, and resubmit your applications to iTunes Connect.

What is this all about????

Viv
--
Vivian Aranha

Shazron Abdullah

unread,
Sep 14, 2009, 9:17:44 PM9/14/09
to Vivian Aranha, phonegap
Did you even read my past post?
"PhoneGap apps being rejected are because of an unfounded assumption on Apple's part (that PhoneGap is an external framework, uses undocumented APIs etc). Through Nachoman's interaction with them, the true nature of PhoneGap has been communicated and the result is recent PhoneGap apps have been approved."

Paul Prescod

unread,
Sep 14, 2009, 9:19:33 PM9/14/09
to Vivian Aranha, Shazron Abdullah, rob, phonegap
How recently did you get that message?

Vivian Aranha

unread,
Sep 14, 2009, 9:22:00 PM9/14/09
to pa...@prescod.net, Shazron Abdullah, rob, phonegap
Thanks
Vivian Aranha
--
Vivian Aranha
Reply all
Reply to author
Forward
0 new messages