2016-09-28 7 views
12

MacOS Sierra(10.12)とXcode 8.0(8A218a)にアップグレードした後、MacOS/Cocoaアプリケーション(Objective-Cで書かれています)それは、このフォーマットに従ってください:このmacOSにアップデートした後に "dynamic accessors failing"に関する不明なエラーが発生する

[error] warning: dynamic accessors failed to find @property implementation for 'uniqueId' for entity ABCDInfo while resolving selector 'uniqueId' on class 'ABCDInfo'. Did you remember to declare it @dynamic or @synthesized in the @implementation ? 

[error] warning: dynamic accessors failed to find @property implementation for 'uniqueId' for entity ABCDContact while resolving selector 'uniqueId' on class 'ABCDContact'. Did you remember to declare it @dynamic or @synthesized in the @implementation ? 

[error] warning: dynamic accessors failed to find @property implementation for 'uniqueId' for entity ABCDEmailAddress while resolving selector 'uniqueId' on class 'ABCDEmailAddress'. Did you remember to declare it @dynamic or @synthesized in the @implementation ? 

[error] warning: dynamic accessors failed to find @property implementation for 'address' for entity ABCDEmailAddress while resolving selector 'address' on class 'ABCDEmailAddress'. Did you remember to declare it @dynamic or @synthesized in the @implementation ? 

どれも私が使用しているサードパーティの開発者のライブラリからの私のコードまたはコードではありません、そして、それらの変数名(例:「ユニークID」または「ABCDInfo」)上で検索を行いますそれは私のプロジェクトではないことを示す何かを引き上げません。

私は二回(Issue 1Issue 2)この問題はまた、Appleのデベロッパフォーラムで報告されたことを見ましたが、両方の質問が未解決のまま

私の質問は:何がこれらのエラーメッセージが発生し、どのように私はそれらを修正することができますか? アプリがクラッシュすることはありませんが、何が間違っているのか把握して理解したいと思います。

この構成に多分関連
+0

私は同じ問題を抱えていますが、回答はSwiftを探しています。ありがとう。 – iphaaw

答えて

8

まずで構築されては何@synthesizeをチェックして、@dynamicです:のgetterメソッドとsetterメソッドを生成します

  • @synthesizeあなたのプロパティ
  • @dynamic getterとsetterのメソッド は、クラス自体ではなく( スーパークラスのように、または実行時に提供されるように)実装されていることをコンパイラに伝えます

連絡先では、メール/連絡先フレームワークを使用するすべての人が、使用連絡先の資格でコード化する必要があります。

"連絡先アクセス権"の資格を付与してアプリをサンドボックスにする必要があります。警告は引き続き記録されますが、これは無駄に多くのことを記録するXcode 8の別のバグにリンクしています。

Appleは連絡先(または場所やカレンダー)にアクセスするためにサンドボックス化されていないアプリを受け入れないようです。

あなたのアプリをサンドボックスに保存するには、次の手順を実行します。 あなたのアプリの設定を選択し、App SandBoxを有効にして、使用しているAppデータを選択します。

+0

サンドボックスをオフにする必要があるためApp Store経由でアプリケーションを配布する予定がない場合は、引き続き連絡先資格を有効にしてからplistで手動でサンドボックスの値をNOに戻します。 – cdf1982

1

  • あなたは、おそらく「暗黙的に合成特性を」ONで構築され、アドレス帳のフレームワークにアクセスしています。
  • あなたのソフトウェアは、 '暗黙の合成されたプロパティを' OFFすべてlet'sの
+2

AddressBookフレームワークの "暗黙の合成プロパティ"を無効にするには? –

+0

@ RyanD'souza既にコンパイルされているので、できません。このオプションを有効にする必要があります。 – Sirens

+0

まだエラーメッセージが記録されていました(機能は正常に機能しています) – cdf1982