본문 바로가기

프로그래밍/Flutter

[flutter] ios plugin 에서 local framework 설정

테스트 환경

cocoapods : 1.12.0
xcode : 14.2

플러그인 ios 네이티브 코드 작성시 로컬 프레임워크인 MyFrameworkA.xcframework 와 MyFrameworkB.xcframework 를 사용하는 경우 아래와 같이 설정한다.

/my_plugin/ios/ 폴더에 프레임워크 각 프레임워크 복사

 

/my_plugin/ios/my_plugin.podspec 수정

podspec dependency 에서 로컬 프레임워크를 지원하지 않으므로, vendored_frameworks 로 관련 프레임워크들을 묶어 주어야 한다.

s.source = { :path => '.' }
s.source_files = 'Classes/**/*'

s.xcconfig = { 'OTHER_LDFLAGS' => '-framework MyFrameworkA -framework MyFrameworkB' }
s.vendored_frameworks = 'MyFrameworkA.xcframework', 'MyFrameWorkB.xcframework'
s.preserve_paths = 'WebRTC.xcframework/**/*', 'ConnectLiveSDK.xcframework/**/*'

 

Runner 샘플

/my_plugin/example/ios/pod install

xcode 로 Runner.xcworkspace 열어서 실행해 빌드 및 구동 확인
빌드 폴더를 보면 Build/Products/Debug-iphoneos/XCFrameworkIntermediates 폴더와 Runner.app/Frameworks 내부에 해당 프레임워크들이 포함되어 있는것을 볼 수 있다.