Собственная ошибка компоновки: среда не найдена для архитектуры 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
?
2 ответа
Файл libQupaiSDKBinding.a
была составлена ссылка QPSDKCore.framework
не QPSDKCore.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 (хранилище больших файлов).
Поэтому мы рекомендуем следующее
- установить GIT LFS
brew install git-lfs
git lfs install
Примечание: если у вас не установлен Homebrew, следуйте инструкциям здесь: http://brew.sh/
клонируйте репозиторий и используйте клонированное хранилище вместо обычной загрузки. Клон важен, потому что репозиторий содержит подмодули.
git clone git@github.com:BlinkID/blinkid-xamarin.git
Получить все подмодули
cd blinkid-xamarin
git submodule init
git submodule update --recursive
После этого попробуйте проект BlinkIDiOSBinding и сообщите нам, работает ли он:)