Mach-O, но неправильная архитектура AFNetworking 3.0 - PullRequest
0 голосов
/ 16 января 2020

Кто-нибудь знает об ошибке «Mach-O, но неправильная архитектура»? Я построил пользовательский фреймворк (который включает в себя несколько других SDK внутри него) и пытаюсь интегрироваться в клиентский проект. Я могу использовать / получать доступ к методам пользовательского фреймворка в клиентском приложении, когда я работаю в симуляторе, но при работе на устройстве происходит сбой приложения. Любые предложения будут действительно полезны. Спасибо

Вот журнал: -

dyld: библиотека не загружена: @ rpath / AFNetworking.framework / AFNetworking Ссылка на: / private / var / Containers / Bundle / Application / 644C95E8-6CFD-48BB-861E-7BCECB08FE43 / abc_client.app / Frameworks / XYZ_ iOS .framework / XYZ_iOS Причина: не найдено подходящего изображения. Обнаружил: Неправильная архитектура архитектура

1 Ответ

1 голос
/ 16 января 2020

При сборке для платформы Какао Elements позволяет выбирать сборку для разных архитектур ЦП, в зависимости от целевых устройств и версий операционной системы, которые вы хотите sh поддерживать. Elements позволяет создавать так называемые «универсальные двоичные файлы», или «толстые двоичные файлы», которые могут включать в себя исполняемый код для нескольких платформ (например, 32-разрядных и 64-разрядных). source

Ошибка означает, что в вашей среде отсутствуют архитектуры.

Список архитектур в структуре:

Существует два инструмента терминала:

  1. file

file /path/to/MyFramework.framework/MyFramework source

Пример вывода:

path/to//MyFramework.framework/MyFramework: Mach-O universal binary with 5 architectures
path/to//MyFramework.framework/MyFramework (for architecture x86_64):   Mach-O 64-bit dynamically linked shared library x86_64
path/to//MyFramework.framework/MyFramework (for architecture i386): Mach-O dynamically linked shared library i386
path/to//MyFramework.framework/MyFramework (for architecture armv7):    Mach-O dynamically linked shared library arm
path/to//MyFramework.framework/MyFramework (for architecture armv7s):   Mach-O dynamically linked shared library arm
path/to//MyFramework.framework/MyFramework (for architecture arm64):    Mach-O 64-bit dynamically linked shared library
  1. lipo

lipo -info / usr / lib / libiodb c .a source


  • При запуске на устройстве фреймворк должен включать архитектуру arm64 или armv7
  • При запуске на симуляторе инфраструктура должна включать x86_64 архитектура

Решение

  • Проверьте, есть ли какие-либо изменения в архитектурах в Podfile
  • Проверьте, есть ли какие-либо изменения в настройках сборки проекта для ключей архитектур.
...