我正在绑定像这样的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(build 44)
Xcode 8.1(8B62)
BTW,-lz
dylib
或tdb
中的Xamarin.iOS
?
答案 0 :(得分:0)
文件libQupaiSDKBinding.a
已编译为引用QPSDKCore.framework
,而不是QPSDKCore.a
库
您需要做的是从绑定项目中删除QPSDKCore.a
文件并正确引用QPSDKCore.framework
(请参阅topic on embedding frameworks)。
基本上,将QPSDKCore.framework
复制到Qupai.iOS
项目文件夹并编辑.csproj文件,添加以下行:
<ItemGroup>
<NativeReference Include="QPSDKCore.framework">
<IsCxx>False</IsCxx>
<Kind>Framework</Kind>
</NativeReference>
</ItemGroup>
重新加载项目后,您将看到您的框架作为参考项目,您将能够编译并运行该应用程序。
请注意左侧的.csproj和右侧的本机参考的更改。
必须说你的错误有点神秘,如果你的帖子没有包含有关XCode部分的细节,我将无法找到解决方案。
答案 1 :(得分:0)
我对MicroBlink库有同样的问题。再次下载库后错误消失了。
看看这个Link
此错误与没有框架(二进制)的事实有关 在存储库中找到。
存储库包含BlinkID SDK(本机)的git子模块。 BlinkID SDK具有存储在git lfs(大文件存储)上的二进制文件。
所以我们建议以下
brew install git-lfs
git lfs install
注意:如果你 没有安装Homebrew,请按照此处的说明操作: http://brew.sh
克隆存储库并使用克隆的repo而不是常规
下载。克隆很重要,因为存储库包含
子模块。
git clone git@github.com:BlinkID/blinkid-xamarin.git
获取所有子模块
cd blinkid-xamarin
git submodule init
git submodule update --recursive
之后,尝试BlinkIDiOSBinding项目,如果有,请告诉我们 工作:)