iOS приложение отклонены - частная символ Маха инициализации рутины


Недавно обновление одного из наших приложений было отклонено, поскольку мы, возможно, используем частные API. забавная вещь: приложение состоит только из простого uiwebview, который загружает приложение sencha touch javascript (local), и обновление только изменило некоторые javascript, без собственного кода вообще.

По запросу apple раскрыла, что это приложение, возможно, использует следующие частные условные обозначения:

  • __восстановить_dwarf2_зарегистрировать_разделы
  • _cthread_init_routine
  • mach_init_routine

Поскольку единственный "рукописный" код этого приложения составляет ~5 строк (получить html-код и baseurl + передать его в uiwebview), мы понятия не имеем, откуда это происходит.

Любая помощь / подсказки будут очень признательны.

Обновление: вовсе не вина Apple - это было приложение sencha jsbuilder mac, которое было случайно добавлено в проекты ресурсы

1 2

1 ответ:

Для меня это выглядит как низкоуровневый процесс управления. __keymgr_dwarf2_register_sections может быть как-то связано с отладкой, хотя немного гугля предполагает, что это может быть связано с обработкой исключений.

Я бы предположил, что ваши старые и новые версии отличаются некоторыми деталями компиляции: проверьте конфигурацию сборки и флаги компилятора, а также версии компилятора и glibc тщательно, с особым упором на отладку и обработку исключений.

Можно попробовать скомпилировать исходный код в старая версия с вашей текущей настройкой, а затем с помощью strings | grep, чтобы увидеть, содержит ли он какой-либо из оскорбительных символов. Если это так, то это дымящийся пистолет, указывающий на изменение в процессе сборки.