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?
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.
> 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?
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.
> 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?
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:
> 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:
> > 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?
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.
On Sep 14, 2:44 am, Justus <yoth...@gmail.com> wrote:
> 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:
> > 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:
> > > 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?
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.
On Mon, Sep 14, 2009 at 1:35 AM, TommyDantana <i...@ssapps.com> wrote:
> 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.
> On Sep 14, 2:44 am, Justus <yoth...@gmail.com> wrote:
> > 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:
> > > 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:
> > > > 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?
> 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_l... ). 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.
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.
On Mon, Sep 14, 2009 at 1:57 PM, TommyDantana <i...@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.
> 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.
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:
> 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.
> 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?
see http://nachbaur.com/ No, there are no guarantees of course. Everything is on a case by case basis (like any other app)
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/ > No, there are no guarantees of course. Everything is on a case by case
> basis (like any other app)
"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
On Mon, Sep 14, 2009 at 7:45 PM, Shazron Abdullah <
> 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?
> see http://nachbaur.com/ > No, there are no guarantees of course. Everything is on a case by case
> basis (like any other app)
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."
> "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.
> "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.
On Mon, Sep 14, 2009 at 9:19 PM, Paul Prescod <pres...@gmail.com> wrote: > How recently did you get that message?
> On Mon, Sep 14, 2009 at 5:35 PM, Vivian Aranha <vivianara...@gmail.com>wrote:
>> "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.