前提
XcodeでiOSとmacOS向けのアプリを作成しています。Mac Catalystを利用してリソースを共有しています。
オープンソースのライブラリをCocoaPodsで導入し利用しています。
Podfileの書き方に詳しい方教えてください。
実現したいこと
CPUアーキテクチャによって対応するライブラリが異なるため、同じビルドターゲットであっても異なるデバイス向けにビルドした場合は別々のライブラリを利用したいと考えています。例えば、macOS向けにはVLCKit, iOS向けにはMobileVLCKitというライブラリを利用したいです。
下記のようなPodfileを書くと、iOS向けのビルドでは成功しますが、Mac向けのビルドでは失敗します。
Podfile
1use_frameworks! 2target ‘DemoPlayer’ do 3 pod 'MobileVLCKit' 4end
これはMobileVLCKitがIntel macOS向けではないためで、本来VLCKitの方を利用する必要があります。
解決策の一つとしては下記のようにビルドターゲットをデバイス毎に分けてPodfileを書く方法が考えられます。
Podfile
1use_frameworks! 2target ‘DemoPlayer_iOS’ do 3 pod 'MobileVLCKit' 4end 5target ‘DemoPlayer_macOS’ do 6 pod 'VLCKit' 7end
ただ、この方法ではビルドターゲットの管理が煩雑になってしまいます。
これまでMac Catalystを利用して他のライブラリをすべて共有できているため、できるだけ同じターゲット構成のままで維持したいです。
発生している問題・エラーメッセージ
Mac向けのビルドでは下記のメッセージでMobileVLCKitのビルドに失敗します。(ARMアーキテクチャ対応なので当然ですが…)
warning: [CP] Unable to find matching .xcframework slice in '/Users/xxxxxx/Documents/CSVideoPlayer-master/Pods/MobileVLCKit/MobileVLCKit.xcframework MobileVLCKit framework ios-arm64_i386_x86_64-simulator ios-arm64_armv7_armv7s' for the current build architectures (x86_64).
試したこと
Podfileの書き方を色々と検索しましたが、ビルドターゲット毎にライブラリを分けるぐらいしか見つからず、CPUアーキテクチャでライブラリを分ける方法が見つかりませんでした。
補足情報(FW/ツールのバージョンなど)
Xcode 13.4.1
CocoaPods 1.10.1
あなたの回答
tips
プレビュー