Titanium Community Questions & Answer Archive

We felt that 6+ years of knowledge should not die so this is the Titanium Community Questions & Answer Archive

About the iPhone private API in use

Hi there, I recived email from apple about my app submission, and it was rejected, reason: the use of private API.

Anyone know what is these APIs and what can I do to solve the problem?

The private APIs:

"The following non-public APIs are included in your application:
u_charType
ucol_close
ucol_getAttribute
ucol_getLocaleByType
ucol_open
ucol_setAttribute
ucol_strcoll"

— asked March 18th 2010 by Marcos Gonçalves
  • api
  • iphone
  • private
0 Comments

12 Answers

  • Accepted Answer

    It seems like Apple is now triggering some new rejections based on the open source unicode library ICU. Last night, we ported away from using this library (Not sure how they can be upset with the use of the official Unicode library, but whatever) to use Apple's Core Foundation routines. Given that we've had several hundred applications submitted on 0.9+ already, it's something that's just happened in the past 2-3 days with their scanners. My guess is it's related to iPad process changes.

    These routines, as you can sort of tell from the symbol names above, are for lowercasing, upper casing, etc. Unicode safe character sets. Harmless, but not to Apple.

    The official fix is already in github and will be available in Monday's 1.1 release. if you need an advanced patch, please email me.

    — answered March 20th 2010 by Jeff Haynie
    permalink
    0 Comments
  • That's not anywhere in Titanium source code and we don't use that API. Can you send me more details directly at jhaynie at appcelerator dot com?

    — answered March 18th 2010 by Jeff Haynie
    permalink
    0 Comments
  • Mr. Haynie

    I sent you a copy.

    — answered March 18th 2010 by Marcos Gonçalves
    permalink
    0 Comments
  • I just got a email from apple saying these private API's are not allowed. They did not reject my app but they suggested removing them for the next version.

    Jeff I forwarded you the email I got from Apple today.

    — answered March 19th 2010 by donovan lewis
    permalink
    0 Comments
  • I just got a email from apple saying these private API's are not allowed. They did not reject my app but they suggested removing them for the next version.

    Jeff I forwarded you the email I got from Apple today.

    — answered March 19th 2010 by donovan lewis
    permalink
    0 Comments
  • I actually just received the same response from Apple for an application we submitted using Titanium 1.0.

    Thank you for submitting QuakeAware to the App Store. We've reviewed QuakeAware and determined that we cannot post this version of your application to the App Store because it is using private APIs. Use of non-public APIs, 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."

    The following non-public APIs are included in your application:
    u_charType
    ucol_close
    ucol_getAttribute
    ucol_getLocaleByType
    ucol_open
    ucol_setAttribute
    ucol_strcoll

    If you have defined methods in your source code with the same names as the above mentioned APIs, we suggest altering your method names so that they no longer collide with Apple's private APIs to avoid your application being flagged with future submissions.

    — answered March 19th 2010 by Dylan Marks
    permalink
    0 Comments
  • I also had an app rejected today for the same problem. My list of non-public is:

    u_charType
    ucol_close
    ucol_getAttribute
    ucol_getLocaleByType
    ucol_open
    ucol_setAttribute
    ucol_strcoll

    Email sent to you Jeff with the whole email from apple.

    — answered March 19th 2010 by Joe Kallo
    permalink
    0 Comments
  • I also had an app rejected today for the same problem. My list of non-public is:

    u_charType
    ucol_close
    ucol_getAttribute
    ucol_getLocaleByType
    ucol_open
    ucol_setAttribute
    ucol_strcoll

    Email sent to you Jeff with the whole email from apple.

    — answered March 19th 2010 by Joe Kallo
    permalink
    0 Comments
  • Thanks for the quick turnaround of 1.1!

    — answered March 23rd 2010 by Dylan Marks
    permalink
    0 Comments
  • To be sure this was fixed in 1.1?

    — answered March 26th 2010 by Alex Grande
    permalink
    0 Comments
  • I submitted a app a few days ago, and it was accepted today, but Apple emailed me again saying the same thing as the OP. These private API's are still being used. I am using the newest version of titanium.

    Has anyone else had this problem?

    — answered March 29th 2010 by donovan lewis
    permalink
    0 Comments
  • It didn't go through, the same problem:
    "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:
    u_charType
    ucol_close
    ucol_getAttribute
    ucol_getLocaleByType
    ucol_open
    ucol_setAttribute
    ucol_strcoll

    If you have defined methods in your source code with the same names as the above mentioned APIs, we suggest altering your method names so that they no longer collide with Apple's private APIs to avoid your application being flagged with future submissions.


    I had the same situation yesturday (29-03-2010)…
    I've tried with 1.1 and now waiting for the response. I'll let you know if it goes through.

    — answered March 30th 2010 by John Kowalski
    permalink
    0 Comments
The ownership of individual contributions to this community generated content is retained by the authors of their contributions.
All trademarks remain the property of the respective owner.