views:

559

answers:

4

Recently I've heard that Apple is using tools to search for references to undocumented APIs and are rejecting iPhone apps from the App Store because of it.

The popular Three20 framework is causing people to get rejected.

I also just saw that the KissXML library has also caused rejection.

I'm looking for an Objective C DOM-based XML parser and am now considering TouchXML.

Can anyone confirm that TouchXML does not reference any undocumented APIs? I don't want to risk an app rejection based on this.

A: 

I know that there is at least one app on appstore which uses TouchXML. But during development process I found some bugs there, so I try to find some alternative now.

Morion
+3  A: 

I can confirm that I've included no private frameworks in several projects that use TouchXML that have all become apps in the App Store. I would ask the question at the google code site to make sure, but John Wight who wrote the library writes very clean and tight code. It would surprise me if he used any undocumented APIs.

Also, I wouldn't worry about it too much. Build your app and submit it and if it gets rejected, fix it then. Apple will even tell you what API you're referencing that you're not supposed to if that is the case. If you have to go through their bureaucracy anyhow, you might as well benefit from it by making them tell you what's wrong. Also, keep in mind that probably everyone gets rejected at least once--especially if it's your first app. ;-)

Matt Long
Sounds like good advice. I know that plenty of people have had apps accepted with TouchXML, but it seems like very lately Apple started doing a new kind of analysis which is what revealed the undocumented APIs in those other libraries. Thanks!
philfreo
You're right. I've heard the same. I will be submitting a new version of several apps coming up in the next several weeks. I'll be interested to see if their new processes make it harder to get approved. Best regards.
Matt Long
A: 

Consider using libxml2. It has a steeper learning curve, but the speed and flexibility are worth it.

Alex Reynolds
Isn't TouchXML basically a wrapper in Objective C for libxml2, which is C?
philfreo
A: 

Tidy does. My app was just rejected from the app store on that basis.

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

The following non-public APIs are included in your application: tidyBufAlloc tidyBufFree tidyBufInit tidyCleanAndRepair tidyCreate tidyOptSetBool tidyParseBuffer tidyParseString tidyRelease tidySaveBuffer tidySaveString tidySetCharEncoding tidySetErrorBuffer tidySetOutCharEncoding"

Jameson