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"
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.
-
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?
-
Mr. Haynie
I sent you a copy.
-
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.
-
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.
-
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_strcollIf 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 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_strcollEmail sent to you Jeff with the whole email from apple.
-
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_strcollEmail sent to you Jeff with the whole email from apple.
-
Thanks for the quick turnaround of 1.1!
-
To be sure this was fixed in 1.1?
-
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?
-
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_strcollIf 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.