0

我正在绑定一个这样的 Xcode 项目:

在此处输入图像描述

在此处输入图像描述

然后,我创建了一个静态库,包含DevQPSDKCore目录和引用中的代码QPSDKCore.framework,生成库libQupaiSDK.a

最后,创建了一个新的 Xamarin 绑定库

在此处输入图像描述

libQupaiSDK.linkwith.cs

在此处输入图像描述

运行项目报错:

MTOUCH:错误 MT5209:本机链接错误:找不到架构 arm64 的 QPSDKCore
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)

顺便说一句,-lzdylib还是tdbXamarin.iOS

SDK 源码

4

2 回答 2

0

该文件libQupaiSDKBinding.a是参考编译的QPSDKCore.framework,而不是QPSDKCore.a

.a 文件引用框架

您需要做的是QPSDKCore.a从绑定项目中删除文件并QPSDKCore.framework正确引用(请参阅关于嵌入框架的主题)。

基本上,复制QPSDKCore.frameworkQupai.iOS项目文件夹并编辑 .csproj 文件添加以下行:

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

重新加载项目后,您将看到您的框架作为参考项目,您将能够编译和运行应用程序。

请注意左侧的 .csproj 和右侧的原生引用的变化。

在建议的更改后运行您的应用程序

必须说您遇到的错误有点神秘,如果您的帖子没有包含有关 XCode 部分的详细信息,我将无法找到解决方案。

于 2016-12-06T05:43:18.200 回答
0

我对 MicroBlink 库有同样的问题。再次下载库后错误消失了。

看看这个链接

此错误与存储库中未找到框架(二进制)有关。

该存储库包含 BlinkID SDK(本机)的 git 子模块。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 项目,让我们知道它是否有效 :)

于 2017-07-11T16:59:01.397 回答