Отклонение приложения iPhone для использования ICU (расширения Unicode)
Я получил следующую почтовую форму Apple, учитывая мое заявление:
Спасибо за отправку вашего обновления в toομοθεσία в App Store. В ходе проверки вашего приложения мы обнаружили, что оно использует частные API, что является нарушением раздела 3.3.1 Лицензионного соглашения программы для разработчиков iPhone; "3.3.1 Приложения могут использовать документированные API только в порядке, установленном Apple, и не должны использовать или вызывать какие-либо частные API". Хотя ваша заявка не была отклонена, было бы целесообразно решить эту проблему в следующем обновлении. В ваше приложение включены следующие непубличные API: u_isspace ubrk_close ubrk_current ubrk_first ubrk_next ubrk_open Если вы определили методы в своем исходном коде с теми же именами, что и вышеупомянутые API, мы предлагаем изменить имена ваших методов, чтобы они больше не конфликтовали с Частные API Apple, чтобы избежать пометки вашего приложения будущими представлениями. Пожалуйста, решите эту проблему в следующем обновлении до Νομοθεσία. С уважением, команда разработчиков iPhone App
Функции, упомянутые в этом письме, используются в библиотеке ICU (Международные компоненты для Unicode). Хотя мое приложение не отклонено на данный момент, я не чувствую себя в безопасности для будущего моего приложения, потому что оно в значительной степени зависит от протокола Unicode и, в частности, от этих компонентов. Другое дело, что я не вызываю эти функции напрямую, но они вызываются пользовательской сборкой sqlite (с включенными расширениями FTS3).
Я что-то здесь упускаю? Какие-либо предложения?
3 ответа
Я бы порекомендовал не публично высказываться об этой проблеме (которая только навредит вам в долгосрочной перспективе), а вежливо отвечать на указанный вами адрес электронной почты для обзора приложений, объясняя, что вы используете пользовательскую сборку SQLite, которая ссылается на структуру ICU. Учитывая, что это стандартная сторонняя платформа, я бы сказал, что это не частные API Apple, которые вы используете. Возможно, они просто переусердствовали во включении символов в свои программы сканирования.
Если вы не можете убедить их в обратном, вы можете подумать о переходе с SQLite с FTS3 на что-то вроде BNRPersistence Аарона Хиллегаса, в котором добавлен быстрый полнотекстовый поиск.
Хм... возможно, что Apple также использует компоненты ICU. Лучшим ответом было бы вежливо объяснить, что происходит, и, надеюсь, все должно быть в порядке.
Если у них возникают проблемы с подключением к системному ICU, почему бы просто не импортировать исходный код ICU в ваш проект?