CocoaPodsのsubspec
を使えば、プロジェクト内に簡単にサブプロジェクトを作ることができる。AWAREFramework v1.7からこの機能を使って、Info.plistに追加設定が必要なプラグインをコア部分と切り離し可能にした。
基本情報
subspec 'Main' do |sp| sp.source_files = 'Classes/Main' end subspec 'Sub' do |sp| sp.source_files = 'Classes/Sub' sp.pod_target_xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => 'LOCAL=1'} end
spec.default_subspec = 'Main'
と設定すれば、
pod 'ShareKit' pod 'ShareKit/Sub'
のように使える。また、.pod_target_xcconfig
を使えば、任意のフラグをCocoaPodsのコンパイラに渡すことができるので、不必要なコードを消したり、サブプロジェクト毎に設定の変更ができる。ちなみに、
AWAREFrameworkでの実装
実際のAWAREFramework-iOSの.podspec
はこちら。
https://github.com/tetujin/AWAREFramework-iOS/blob/master/AWAREFramework.podspec
ライブラリの使い方は、以下のサイトに記述している。
AWAREFrameworkでは、Info.plist
に追加記述が必要な以下のセンサをプラグイン化した。
- Bluetooth
- Motion Activity (Pedometer and Activity Recognition)
- HealthKit
- Calendar (Calendar and CalendarESM)
- Contact
- Microphone (Ambient Noise and Conversation )
プラグインをインポートする時は、以下のようにインポートできる。
pod 'AWAREFramework' pod 'AWAREFramework/Microphone' pod 'AWAREFramework/MotionActivity' pod 'AWAREFramework/Bluetooth' pod 'AWAREFramework/Calendar' pod 'AWAREFramework/Contact' pod 'AWAREFramework/HealthKit'
これでAppStoreへのリリースが楽になるはず。これまでは、使っていないライブラリについても説明を追加する必要があった。この実装で、これらの問題は解決するはず。
参考資料
- https://guides.cocoapods.org/syntax/podspec.html#subspec
- https://guides.cocoapods.org/syntax/podspec.html#pod_target_xcconfig
Categories: