iOS

CocoaPodsで2つ以上のtargetに同じライブラリーを指定する方法

アプリ本体とウィジェットなど、複数のtargetで同じライブラリーを使いたい時がたまにあります。例えばsqliteを操作するライブラリーとか。

その場合、Cocoapodsで2つのtargetに同じライブラリーを指定すると、pod updateでも開発中でもエラーは出ず、一見問題が無い様に見えます…

が!

いざテストも終わってarchiveをする段で、「同じクラスが複数ありますエラー」が出てarchiveに失敗してしまいます。

なので、複数のtargetで同じライブラリーを使いたいときは次のように記述しましょう!
これでarchiveしてもエラーがでません🎉 (おわり)

# 複数のtargetで使いたいライブラリー群
def shared_libs
    pod 'FMDB'
end

target 'メインアプリとか' do
...
    shared_libs
...
end

target 'ウィジェットとか' do
...
    shared_libs
...
end