此文章用于记录Kraken开发过程,所以适合有iOS原生开发经验和hybrid开发经验的朋友。
随着Flutter开发的热门,弊端也凸显,大家希望用更简单和更轻量的方式来进行开发,最好能用flutter渲染,用js开发,于是出现了tresh和kraken等。
对thresh感兴趣的可查看:「链接」
由于前期使用了Weex,而Kraken有很多相似之处,所以我们这次选择了Kraken。
大部分情况下,我们没有精力来重新开发,希望在现有项目上加入混合开发模式,所以现在着重说一说如何向现有原生项目添加Kraken支持。新建kraken和flutter项目的教程很多,查看官网文档即可。
使用Kreken需要引入的库包含对Flutter的支持库和Kreken的库,可直接引入工程或者用Pod进行库管理,建议使用Pod管理方便后续多个项目使用。
具体方法可参考文章:
Flutter 中文文档 – Flutter 中文资源 | 将 Flutter module 集成到 iOS 项目
一.需要添加Flutter支持的库
Flutter.framework
App.framework
FlutterPluginRegistrant.framework
二.添加Kreken相关库
kraken.framework
connectivity.framework
device_info.framework
kraken_bridge.framework
Reachability.framework
shared_preferences.framework
vibration.framework
将要遇到的问题是,从Flutter和Kraken官网拿到的是xcframework,可使用如下命令在framework同一级目录将xcframework转换成兼容模拟器和真机的framework:
framework_name=【framework名】 && \
release_sim_framework=./$framework_name.xcframework/ios-x86_64-simulator/$framework_name.framework && \
release_sim_lib=$release_sim_framework/$framework_name && \
release_os_framework=./$framework_name.xcframework/ios-arm64_armv7/$framework_name.framework && \
release_os_lib=$release_os_framework/$framework_name && \
# lipo -remove arm64 $release_sim_lib -o $release_sim_lib && \
lipo -create -output $framework_name $release_sim_lib $release_os_lib && \
cp -R $release_os_framework ./$framework_name.framework && \
rm -rf ./$framework_name.framework/$framework_name && \
mv $framework_name ./$framework_name.framework/$framework_name && \
rm -rf $framework_name
在Podfile中加入引用:
inhibit_all_warnings!
platform :ios, '9.0'
target 'Kraken_Example' do
pod 'libKraken', :path => '/Users/xxx/libKraken'
end
build能顺利通过,则此时原生引用已经告一段落。
Kraken支持Vue/React/Rax,对于前端和App开发人员来说是一种福利,三种开发者的创建方法见官网:
编译Kraken
在Kraken根目录下执行yarn build或者npm run build后,在dist目录下会生成一个app.js文件:

此时Kraken项目创建也成果告一段落,篇幅问题,如何使用js文件将在下一篇文章中继续。

如若转载,请注明出处:https://www.dasum.com/174723.html