2016-03-29 10 views
3

Swift/Obj Cの混合プロジェクトでRestKit 0.26.0を使用しています。 Swiftファイルにリレーションシップマッピングを設定しています。プロジェクトを正常に実行またはビルドすると、すべて正常に動作します。RestKit RKAttributeMapping fromKeyPathアーカイブ上のエラー

しかし、配布用にアップロードするようにアプリケーションをアーカイブしようとすると、アーカイブはRKAttributeMappingとRKRelationshipMappingのattributeMappingFromKeyPath:toKeyPath:withMappingメソッドの問題により失敗します。私はアーカイブとき

は具体的に、私はこのエラーを取得する:このコードブロックのための

'(fromKeyPath: String!, toKeyPath: String!) -> RKAttributeMapping' is not convertible to '(fromKeyPath: String!, toKeyPath: String!) -> RKAttributeMapping!'

let errorMapping = RKObjectMapping(forClass: RKErrorMessage.self) 
     errorMapping.addPropertyMapping(RKAttributeMapping(fromKeyPath: nil, toKeyPath: "userInfo")); 

私が使用したときに、私は同じ/非常に類似したエラーが出ますattributeMappingFromKeyPath:他の場所のtoKeyPathメソッド:

mapping.addPropertyMapping(RKRelationshipMapping(fromKeyPath: "(userId).friends", toKeyPath: "friends", withMapping: friendsMapping)) 

の利回りこのエラー:

'(fromKeyPath: String!, toKeyPath: String!, withMapping: RKMapping!) -> RKRelationshipMapping' is not convertible to '(fromKeyPath: String!, toKeyPath: String!, withMapping: RKMapping!) -> RKRelationshipMapping!' 

は再び、アプリのビルドと実行がエラーや警告を上げると、完全に罰金シミュレータで実行されます。アーカイブの途中で問題が発生した。ビルドフォルダのクリーニング、派生データの削除などの簡単な「常識」のソリューションを試してみました。複数のコンピュータで試してみましたが、すべて同じことをしています。

EDIT:Archiveビルドが自分の開発ビルドとは異なるビルド構成を使用していることに気付きました。アプリを実行するためのビルド設定をArchiveで使用するものに変更すると、同じエラーが発生するため、問題の原因となっているビルド設定で変更されました。

+0

をバック投稿します変更

設定を構築するには、アンラップ程度迅速コンパイラがより厳密になりますか? – Wain

+0

@Wainは安全な賭けのように思えますが、私はdevの設定とリリースの設定をビルド設定の間でビルド設定の違いを変更して、失敗を強制するリリース版に変更しようとしましたが、これまでのダイスはありません。 –

答えて

2

スウィフトコンパイラ最適化レベルを高速、全モジュールから高速に設定することで問題を解決しました。この設定はビルド設定にあります。

2

私もこの問題に遭遇しました。迅速な最適化では、文字列としてfromKeyPathとしてnilを渡すことはできません!デフォルトではnonullを指定します。 RKAttributeMapping.hは、次のようにパラメータをnullableにする必要があります。 +(instancetype)attributeMappingFromKeyPath:(nullable NSString *)sourceKeyPath toKeyPath:(nullable NSString *)destinationKeyPath;最適化レベルが同様に私のために問題を隠し、私はおそらくそれらのいずれかを、私はよりよい解決策を見つけた場合

関連する問題