お世話になります。
別アプリで使ったサードパーティーのフレームワーク(OtherFW.framework(仮))を使用しているソースを、
スタティックライブラリにして他のアプリに流用しようとしています。
タティックライブラリの作成まではできたのですが、
アプリにライブラリをリンクさせると下記エラーでうまくビルドできません。
プロジェクトの構成は下記のようになっています。
ワークスペース
|-スタティックライブラリのプロジェクト(libMyLibirary.aを作成
|-アプリのプロジェクト
|-Libs(OtherFW.framework設置場所)
lang
1duplicate symbol _OtherFWのクラス名1? in: 2 /スタティックライブラリの生成パス/libMyLibirary.a(MyClassA.o) 3 /スタティックライブラリの生成パス/libMyLibirary.a(MyClassB.o) 4duplicate symbol _OtherFWのクラス名2? in: 5 /スタティックライブラリの生成パス/libMyLibirary.a(MyClassA.o) 6 /スタティックライブラリの生成パス/libMyLibirary.a(MyClassB.o) 7・・・・・・・・ 8duplicate symbol _OtherFWのクラス名41? in: 9 /スタティックライブラリの生成パス/libMyLibirary.a(MyClassA.o) 10 /使用しているフレームワークのパス/OtherFW.framework/OtherFW(OtherFWClassA.o) 11duplicate symbol _OtherFWのクラス名42? in: 12 /スタティックライブラリの生成パス/libMyLibirary.a(MyClassA.o) 13 /使用しているフレームワークのパス/OtherFW.framework/OtherFW(OtherFWClassA.o) 14ld: 71 duplicate symbols for architecture arm64 15clang: error: linker command failed with exit code 1 (use -v to see invocation)>
アプリ側に設定していた「Other Linker Flags」の「-ObjC」を削除するとビルドはできるのですが、
NSClassFromStringをでクラス名を取得していた箇所がnilとなってしまい、期待させる動作ができません。
ar、lipoのコマンドで重複しているオブジェクトを消すと良いと見かけたのですが、
作成したライブラリのオブジェクトで被っているため消せません。
スタティックライブラリのプロジェクト、アプリのプロジェクト両方にOtherFW.frameworkをリンクさせています。
何か方法はないでしょうか・・・
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。