Проблема с архитектурой iOS Security.framework arm64

#ios #xcode #frameworks #arm64 #security.framework

#iOS #xcode #фреймворки #arm64 #security.framework

Вопрос:

Я пытаюсь скомпилировать приложение на устройстве iPhone 6 под управлением iOS 11.4.

Это приложение использует мой собственный фреймворк, скомпилированный для архитектур armv7 и arm64 (подтверждено lipo -info) и предназначенный для iOS8 .

В этой платформе я использую kSecImportExportPassphrase, SecPKCS12Import и kSecImportItemIdentity из Security.framework iOS.

При компиляции в Xcode 10.2 я получаю эту ошибку:

Ошибка Xcode 10.2

Если кто-нибудь получит представление о том, что происходит?

Похоже, Security.framework не скомпилирован для arm64, что совершенно невозможно.

С уважением.

Ответ №1:

Пара вещей, которые нужно попробовать:

  1. Установите для архитектур armv7 armv7s, Build Active Architecture Only значение NO, для каждой цели в проекте, включая каждую из модулей:

ARCHS = armv7 armv7s

VALID_ARCHS = armv6 armv7 armv7s arm64

  1. Очистите проект, выключите Xcode, затем найдите свое приложение в ~/Library/Developer/Xcode/DerivedData/ и переместите его в корзину, затем очистите его.

Комментарии:

1. Привет, Аллен, спасибо за твой ответ. Я попробовал ваши решения. Это все еще не работает, но на этот раз у меня такое же сообщение об ошибке, но для архитектуры armv7.

2. Поскольку Apple теперь требует поддержки 64-разрядной версии для всех развертываний, давайте попробуем что-нибудь еще. Избавьтесь от всего, кроме arm64 in ARCHS и VALID_ARCHS . И установите Build Active Architecture Only значение YES .

3. Та же проблема, что и раньше. Я установил значение arm64 в ARCHS и VALID_ARCHS и установил Build Active Architecture Only значение YES для моей платформы и моего приложения.

4. У меня есть еще одна идея: проверьте местоположение фреймворка в разделе «Связанные фреймворки и библиотеки». Убедитесь, что оно указывает на SDK-версию фреймворка, а не где-либо еще.