2017-07-11 9 views
0

フォームIはxamarinの私のPCLアプリのiOS搭載implemenatation上で作業を開始し、私はグーグルでの修正を見つけることができないような問題が発生しました。ネイティブリンクに失敗しました。未定義のシンボルエラーです。 Xamarinは、PCLのiOSのVisual Studio

問題は、Entitlement.plistファイル(iOSプロジェクト> Bundle signing> Custom Entitlements)をリンクした瞬間です。ネイティブリンクのエラーがかなり発生しています。リンカの振舞いを3つの可能性すべてに設定しました。私はまた、異なるリンカの動作、mtouch引数、...プロファイル/ライセンス/プロビジョニングプロファイル/アイデンティティでも、entitlement.plistの空のdictタグでそれを試してみました。

entitlements.plistは、

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>application-identifier</key> 
    <string>myidprefix.com.mycompany.*</string> 
    <key>get-task-allow</key> 
    <false/> 
    <key>keychain-access-groups</key> 
    <array> 
     <string>$(AppIdentifierPrefix)myidprefix.com.mycompany.*</string> 
    </array> 
</dict> 
</plist> 

Error screenshot here

もちろん、私はそれがAndroidのものとは何かを持って伝えることができます(アプリケーションIDのはdev.apple.comからプレフィックスとid)以下のものが含まれています私はAndroidプロジェクトをアンロードして回避することができますが、私のPCLではMono.Androidを使用することは避けられません。私はこれをすべて引き起こしていると思いますか?

助けていただけたら幸いです!

プロジェクト/バージョン情報:

  • マックサーバのホストOS:MacOSのシエラ10.12
  • VS 2015のEnterprise
+0

? – lowleetak

+0

共有クラスで使用するため、私のPortableクラス(共有クラス)ではMono.Androidへの参照があります。もし私がその参照を削除するなら、いくつかの機能はもう働きません。だから私はそれを取り除く余裕がないのです –

答えて

0

私はいくつかの画像を添付する必要があるので、私は答えに入れています。

あなたはPCLにMono.Androidに参照するべきではありません。 PCLはAndroidとiOSで共有され、AndroidとiOSの両方で使用できるコードが含まれている必要があります。別のAndroidクラスライブラリプロジェクトを作成し、Android固有のコードをそこに配置する必要があります。

PCLを使用する代わりに、「共有プロジェクト」タイプを使用することもできます。次に、UI固有コードのコンパイラ指令(#if ANDROID)で共有プロジェクトを制御します。あなたが「私のPCLに私はMono.Androidの使用を避けることができない」の意味は何 enter image description here

+0

私は依存関係サービスを使って問題を回避しようとしています。それはちょっと意図された方法ですが、ある時点でどこかでそれを混乱させてしまいます!あなたの答え/説明は私がこれを実現するのを助けたのでとてもうれしい! –

関連する問題