iOS
编译lame
报错:
Building for 'iOS-simulator' , but linking in object file (/Users/mac/.pub-cache/git/flutter_plugin_record-d11120b8be154e38c6e36fc895ec6ea8c612375c/ios/lame-ios.framework/lame-ios[arm64][2](VbrTag.o)) built for 'iOS'
这一看lame
官网,好家伙,最后一个版本 2017 年发布的,你搁哪儿给我扯蛋呢?
编译 Apple 全平台的framework
编译真机 (arm64): xcodebuild -project lame.xcodeproj \ -sdk iphoneos \ -arch arm64 \ -configuration Release \ build \ CONFIGURATION_BUILD_DIR=../build/ios
编译模拟器 (x86_64 + arm64-simulator) xcodebuild -project lame.xcodeproj \ -sdk iphonesimulator \ -arch x86_64 -arch arm64 \ -configuration Release \ build \ CONFIGURATION_BUILD_DIR=../build/simulator
这样../build/io
s 和../build/simulator
里会各自生成一个静态库libmp3lame.a
回到项目根目录执行:
xcodebuild -create-xcframework \ -library build/ios/libmp3lame.a \ -headers include \ -library build/simulator/libmp3lame.a \ -headers include \ -output build/lame-ios.xcframework
最终你会在build/
目录得到:
lame-ios.xcframework
修改 flutter_plugin_record.podspec 配置 # # To learn more about a Podspec see http: # #use_frameworks! Pod::Spec.new do |s| s.name = 'flutter_plugin_record' s.version = '0.0.1' s.summary = 'A new Flutter plugin.' s.description = <<-DESC A new Flutter plugin. DESC s.homepage = 'http://example.com' s.license = { :file => '../LICENSE' } s.author = { 'Your Company' => 'email@example.com' } s.source = { :path => '.' }# s.swift_version = '4.2' s.source_files = 'Classes/**/*.{h,m}' s.public_header_files = 'Classes/**/*.h' # s.vendored_libraries = 'Classes/libopencore-amrnb.a' s.dependency 'Flutter' s.framework = "AVFoundation" s.vendored_frameworks = 'LAME.xcframework' <-- 注意这里 ... s.ios.deployment_target = '8.0' end
引用 注意引用的地方:
/Users/mac/flutter_plugin_record/ios/LAME.xcframework/ios-arm64/LAME.framework/Headers/lame.h