0

次のように Xcode プロジェクトをバインドしています。

ここに画像の説明を入力

ここに画像の説明を入力

DevQPSDKCore次に、ディレクトリと参照にコードを含む静的ライブラリを作成し、ライブラリQPSDKCore.frameworkを生成しますlibQupaiSDK.a

最後に、新しい Xamarin バインディング ライブラリを作成しました

ここに画像の説明を入力

libQupaiSDK.linkwith.cs

ここに画像の説明を入力

プロジェクトを実行してエラーを取得します。

MTOUCH: エラー MT5209: ネイティブ リンク エラー: フレームワークが見つかりませんアーキテクチャ arm64 の QPSDKCore
MTOUCH: エラー MT5202: ネイティブ リンクに失敗しました。ビルド ログを確認してください。

を削除するとlibQupaiSDK.a、このプロジェクトは正常に実行されます。

xamarin のログから理由がわかりません。どなたでも助けていただけます。

更新

これら 2 つのライブラリはファット ライブラリです。

$ 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_tdbXamarin.iOS

SDK ソース

4

2 に答える 2

0

ファイルは、ライブラリではなくlibQupaiSDKBinding.aを参照してコンパイルされましたQPSDKCore.frameworkQPSDKCore.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 に答える