SDWebImageで画像付きテーブルビューの表示を超高速にしようとしていたときのMEMO。
SDWebImageのセットアップを済ませ、テスト用のシンプルなテストプロジェクトでは動作することを確認。
さて、本番用のアプリプロジェクト(だいぶいろいろ作りこんだもの)で「sd_setImageWithURL」を使おうとすると
[UIImageView sd_setImageWithURL:completed:]: unrecognized selector sent to instance 0x7fba9ac91e60
とかクラッシュしたりとかして使えず。。
の「Add Linker Flag」欄にあるように「”Build Settings”>”Linking” >”Other Linker Flags”」に「-ObjC」と入れろとのこと。=しかしビルド時に大量のエラー発生。
同ページに「-ObjC」の代わりに「-force_load SDWebImage.framework/Versions/Current/SDWebImage」を試せとあるので試す。=以下のエラーが発生
ld: file not found: SDWebImage.framework/Versions/Current/SDWebImage
clang: error: linker command failed with exit code 1 (use -v to see invocation)
「-ObjC」の代わりに「-force_load $(TARGET_BUILD_DIR)/libPods.a」を試せとの情報を見つける。=やはり同様にnot foundのエラー
「$(TARGET_BUILD_DIR)」の代わりに「$(BUILT_PRODUCTS_DIR)」を試せとの情報を見つける。=やはりnot found
ld: file not found: /Users/tshiraishi/Library/Developer/Xcode/DerivedData/・・・/Build/Products/Debug-iphonesimulator/libPods.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
このディレクトリに何があるのかと思い、ファインダーで移動。
そこに「libPods-アプリ名-SDWebImage.a」というのを見つける。
最終的に
「”Build Settings”>”Linking” >”Other Linker Flags”」に
「-force_load $(BUILT_PRODUCTS_DIR)/libPods-アプリ名-SDWebImage.a」
と入れたらビルドできた!のでこれでよしとしておく。(←今ココ)
東京造形大学卒業後、マクロメディア(現アドビ)に入社。QAやテクニカルサポートマネージャーとしてFlash、DreamweaverなどのWeb製品を担当。独立後、2007年に虫カゴデザインスタジオ株式会社を設立。2021年東京三鷹を拠点に。最近は、Unity, Unity Netcode for GameObjects, CakePHP, Laravel, ZBrush, Modo, Adobe Substance 3D, Adobe Firefly, Xcode, Apple Vision Pro, Firebaseにフォーカスしています。モバイルアプリ開発情報を主としたブログ「MUSHIKAGO APPS MEMO」の中の人。