Собственная ошибка компоновки: среда не найдена для архитектуры arm64

Я связываю проект Xcode следующим образом:

введите описание изображения здесь

введите описание изображения здесь

Затем я создал статическую библиотеку, содержащую код в DevQPSDKCore справочник и справочник QPSDKCore.framework, производит библиотеку libQupaiSDK.a

Наконец, создана новая библиотека связывания Xamarin

введите описание изображения здесь

libQupaiSDK.linkwith.cs

введите описание изображения здесь

Запустите проект, получите ошибку:

MTOUCH: ошибка MT5209: собственная ошибка компоновки: каркас не найден QPSDKCore для архитектуры arm64
MTOUCH: ошибка MT5202: сбой собственного связывания. Пожалуйста, просмотрите журнал сборки.

Когда я удаляю libQupaiSDK.aэтот проект успешно запущен

Я не могу получить причину из журналов xamarin, любое тело может помочь мне, спасибо.

Обновление:

Эти две библиотеки - толстые библиотеки.

$ lipo -info libQupaiSDK.a  
Architectures in the fat file: libQupaiSDK.a are: i386 armv7 x86_64 arm64  
$ lipo -info QPSDKCore.a  
Architectures in the fat file: QPSDKCore.a are: armv7 i386 x86_64 arm64 

Xamarin Studio 6.1.2 (сборка 44)
Xcode 8.1 (8B62)

КСТАТИ,-lz является dylib или же tdb в Xamarin.iOS?

SDK Source

2 ответа

Решение

Файл libQupaiSDKBinding.a была составлена ​​ссылка QPSDKCore.frameworkне QPSDKCore.a библиотека

каркас ссылок на файл.a

Что вам нужно сделать, это удалить QPSDKCore.a файл из обязательного проекта и ссылка QPSDKCore.framework правильно (см. тему по встраиванию фреймворков).

В основном, скопируйте QPSDKCore.framework к Qupai.iOS Папка проекта и отредактируйте файл.csproj, добавив следующие строки:

  <ItemGroup>
    <NativeReference Include="QPSDKCore.framework">
      <IsCxx>False</IsCxx>
      <Kind>Framework</Kind>
    </NativeReference>
  </ItemGroup>

После перезагрузки проекта вы увидите ваш фреймворк как эталонный проект и сможете скомпилировать и запустить приложение.

Обратите внимание на изменение в.csproj слева и родную ссылку справа.

запуск вашего приложения после предложенных изменений

Должен сказать, что у вас была какая-то загадочная ошибка, и если бы ваше сообщение не содержало подробностей о части XCode, я бы не смог найти решение.

У меня была такая же проблема для библиотеки MicroBlink. и ошибка исчезла после повторной загрузки библиотеки.

Посмотрите на эту ссылку

Эта ошибка связана с тем, что в репозитории нет каркаса (двоичного).

Репозиторий содержит подмодуль git для BlinkID SDK (нативный). BlinkID SDK хранит двоичные файлы в git lfs (хранилище больших файлов).

Поэтому мы рекомендуем следующее

  1. установить GIT LFS
    brew install git-lfs
    git lfs install

Примечание: если у вас не установлен Homebrew, следуйте инструкциям здесь: http://brew.sh/

  1. клонируйте репозиторий и используйте клонированное хранилище вместо обычной загрузки. Клон важен, потому что репозиторий содержит подмодули.
    git clone git@github.com:BlinkID/blinkid-xamarin.git

  2. Получить все подмодули

    cd blinkid-xamarin
    git submodule init
    git submodule update --recursive

  3. После этого попробуйте проект BlinkIDiOSBinding и сообщите нам, работает ли он:)

Другие вопросы по тегам