Я работаю с созданным мной статическим фреймворком (созданным с помощью набора инструментов iOS-Universal-Framework Карла Стенеруда), который я собираюсь распространять.Статический фреймворк немного удобнее, чем просто использование статических заголовков lib + - мне нравится возможность просто вставить фреймворк и сразу начать его использовать, вместо того, чтобы делать что-то вроде установки соответствующих путей поиска заголовков.
Однако я вижу какое-то странное поведение.Несколько тестовых / примеров приложений, которые я создал с помощью этой инфраструктуры, аварийно завершают работу с « Плохой системный вызов: 12 » или « Задание, похоже, аварийно завершилось: недопустимая инструкция: 4 » при запускена устройствах iOS, на которых приложение было развернуто через ipa .
Сам код в порядке.Сбой не происходит, когда вместо фреймворка используется статическая библиотека.Также не происходит сбой, если приложение развернуто через отладчик в XCode, даже когда используется конфигурация выпуска сборки.
Сбой только происходит при развертывании через ipa и когдабиблиотека связана как статическая структура.
Интересно, что соответствующие записи трассировки стека в журнале аварий, ведущие к аварии (EXC_CRASH или EXC_BAD_INSTRUCTION), не могут быть символизированы.
В одном случаеМне удалось отследить падение до точки, где вызывается статическая функция C.Удалив ключевое слово «static» по прихоти, я смог остановить сбой.
К сожалению, это не серебряная пуля - я также вижу сбой настатический вызов функции C.
Но во всех случаях происходит сбой при вызове функции C.
Итак, мой вопрос таков: кто-нибудь еще видел это раньше?Есть теории?Это может быть ошибка LLVM?Какой-то волшебный флаг компилятора / компоновщика мне не хватает?Есть ли у Apple намеренно только половина поддерживаемых статических платформ, потому что есть проблемы?Нужно ли мне просто отказаться от своего плана распространения фреймворка вместо статической библиотеки и различного детрита?
Заранее большое спасибо,
Майкл