2010-03-11 13 views
7

Ich erhielt folgendes Mail-Formular Apfel, meine Anwendung unter BerücksichtigungiPhone App Ablehnung ICU (Unicode-Erweiterungen) für die Verwendung von


Danke für die Übermittlung Ihrer Update im App Store Νομοθεσία. Bei der Überprüfung Ihrer Anwendung haben wir festgestellt, dass private APIs verwendet werden, was einen Verstoß gegen die Lizenzvereinbarung des iPhone-Entwicklerprogramms, Abschnitt 3.3.1, darstellt. "3.3.1 Anwendungen dürfen nur dokumentierte APIs in der von Apple vorgeschriebenen Weise verwenden und dürfen keine privaten APIs verwenden oder aufrufen." Obwohl Ihre Bewerbung nicht abgelehnt wurde, wäre es angemessen, dieses Problem in Ihrem nächsten Update zu beheben. Die folgenden nicht-öffentlichen APIs in Ihrer Anwendung enthalten sind: u_isspace ubrk_close ubrk_current ubrk_first ubrk_next ubrk_open Wenn Sie Methoden im Quellcode mit den gleichen Namen wie die oben genannten APIs definiert haben, schlagen wir vor, zu verändern Ihre Methode Namen, damit sie nicht länger mit Apples privaten APIs kollidieren, um zu verhindern, dass Ihre Anwendung mit zukünftigen Einreichungen gekennzeichnet wird. Bitte beheben Sie dieses Problem in Ihrem nächsten Update auf Νομοθεσία. Mit freundlichen Grüßen , iPhone App Review Team


Die Funktionen in dieser E-Mail erwähnt werden in der ICU-Bibliothek (International Components for Unicode) verwendet. Obwohl meine App zu diesem Zeitpunkt nicht abgelehnt wird, fühle ich mich für die Zukunft meiner App nicht sehr sicher, da sie stark vom Unicode-Protokoll und insbesondere von diesen Komponenten abhängt. Eine andere Sache ist, dass ich diese Funktionen nicht direkt aufrufen, aber sie werden von einem benutzerdefinierten 'sqlite' Build (mit FTS3-Erweiterungen aktiviert) aufgerufen.

Fehle ich hier etwas? Irgendwelche Vorschläge?

+3

Gewöhnen Sie sich daran. Der Appstore ist ein Ort vieler Regeln, die nach dem Zufallsprinzip durchgesetzt werden. – Nate

+1

Wenn Sie die .lib-Dateien von der ICU statisch verknüpfen, ist das akzeptabel? Oder müssen Sie den ICU-Quellcode tatsächlich in das Projekt importieren? Was war das letzte Wort dazu? – tofutim

+1

Würde gerne hören, was das Ergebnis davon war? Wie wurde es gelöst? – TJez

Antwort

4

Ich würde empfehlen, nicht öffentlich über das Problem zu entlüften (das wird Sie nur auf lange Sicht verletzen), aber höflich auf die E-Mail-Adresse der Anwendungsprüfung reagieren, die Sie erhielten, erklären, dass Sie eine benutzerdefinierte SQLite-Build verwenden, die die verweist ICU-Rahmen. Angesichts der Tatsache, dass es sich um ein Standardframework von Drittanbietern handelt, würde ich argumentieren, dass dies nicht die privaten APIs von Apple sind, die Sie verwenden. Es könnte sein, dass sie einfach übereifrig in die Aufnahme von Symbolen in ihre Scan-Software waren.

Wenn Sie sie nicht anders überzeugen können, sollten Sie erwägen, von SQLite mit FTS3 auf Aaron Hillegass 'BNRPersistence umzusteigen, der gerade eine schnelle Volltextsuche hinzufügte.

+0

Vielen Dank für Ihre Antwort Brad. Ich werde auf BNRPersistence schauen. – nickbit

1

Wenn sie Probleme beim Verbinden mit der System-ICU haben, warum importieren Sie nicht einfach den ICU-Quellcode in Ihr Projekt?

+2

Dies sollte mein letzter Ausweg sein. In diesem Fall muss ich den Namen ändern, um das Problem zu vermeiden. – nickbit

1

Hmmm ... es ist möglich, dass Apple auch ICU-Komponenten verwendet. Die beste Antwort wäre, höflich zu erklären, was vor sich geht, und hoffentlich sollten die Dinge in Ordnung kommen.