web-dev-qa-db-ja.com

クラスPLBuildVersionは両方のフレームワークに実装されています。

iOS 10/Xcode 8 GM以下のものを入手してビルドしてください。Xcode7ではこれまでにありませんでした。

objC [25161]:クラスPLBuildVersionの両方/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices(0x12049a910)に実装されています/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices(0x1202c4210)どちらか一方が使用されます。どれが未定義です。

(注:シミュレータでのみ発生するようです。実際のデバイスには表示されません)。

224
FlatDog

本旨

主な考え方は簡単です:

あなたのアプリ(またはPodsなどの依存関係)が、依存関係として明示的(または暗黙的)なPhotoLibraryServices.frameworkまたはAssetsLibraryServices.frameworkを使用するフレームワークを使用している場合、Xcodeは警告します(どちらか一方のみを使用している場合でも)それはPhotos/PhotosUI.frameworkAssetsLibrary.framework、あるいは他のものかもしれません(私は依存関係の完全なリストを持っていませんが、それは可能です)。

何が問題ですか?

PLBuildVersionという名前のクラスは、PhotoLibraryServices.frameworkAssetsLibraryServices.frameworkの両方で定義されています。 Objective-Cではクラス名は一意です(同じ名前で2つのクラスを定義することはできません)。したがって、実行時にどちらが使用されるかは未定義です。

しかし、両方のクラスが同じメソッドとフィールドを持っているので(これを逆アセンブラでチェックして)、両方とも同じソースからコンパイルされていると私は推測します。

レーダー はすでに送信されています。

143
Roman Ermolov

のAppleの従業員からの回答によると - Appleの開発者フォーラム

あなたはリストされたクラスソースのどちらも制御しません、それであなたがすることができるか、またはするべきである何もありません - バグを報告すること以外は。

52

私は警告を取り除く方法を見つけることができませんでしたが、アプリがクラッシュしないようにしたい場合は、あなたがカメラ、フォトライブラリなどにアクセスしている理由の説明を提供する必要があります。

以下をInfo.plistファイルに入力してください。

写真

キー:Privacy - Photo Library Usage Description値:$(PRODUCT_NAME) photo use

カメラ

キー:Privacy - Camera Usage Description値:$(PRODUCT_NAME) camera use

より多くの情報はここにあります: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

46
Nick Meehan

UIWebViewを使用するだけでこのエラーが発生する可能性があります。私の解決策は、私のUIWebViewの使用をWKWebViewに置き換えることでした。

12
matt

Answers on Fabricを自分のプロジェクトに追加した後にこれを実現しました。

派生データを削除すると、私にはうまくいきました。 (XCodeのaltコマンドkをシフト)

1年後に編集します。

派生データを削除した後は、必ずXCodeを終了してからもう一度起動してください。

関係のないケースでは、派生データを削除してもXCodeの派生データのメモリキャッシュがクリアされないという印象があります。

5
Gerd Castan

IOSシミュレータをリセットすることでこれが解決しました。シミュレータ - >コンテンツと設定のリセット.

2
Eric Mentele

私の場合、この警告は2番目のxcodeプロジェクトを開いてシミュレータで2番目のアプリを実行した後に表示され始めました。最初のアプリに戻った後、警告が表示され始めました。 SimulatorとXcodeを終了してプロジェクトを再開しました。その後警告は消えた。それでも解決しない場合は、他の答えに進みます。 Xcodeは本当にうるさいことがあります。

0
Alexander Luna