CaiJingLong / kikt-blog-comment

0 stars 0 forks source link

posts/flutter/exists/add-flutter-to-ios/ #23

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

把flutter作为framework添加到已存在的iOS中 | caijinglong的博客

把flutter作为framework添加到已存在的iOS中

https://www.kikt.top/posts/flutter/exists/add-flutter-to-ios/

huainanzi commented 3 years ago

求助,这个生成的framework不能在真机上运行。该怎么解决?

CaiJingLong commented 3 years ago

求助,这个生成的framework不能在真机上运行。该怎么解决?

这个是比较早的文章了,不一定适用于现在 现在的话 官方应该有自己的方案

ericzhou2008 commented 3 years ago

用Module的方式插件flutter工程,然后用flutter build ios-framework来生成framework,此命令生成的会把所有的framework生成到一块就不用到处找中间文件,而且一次把Debug,Profile,Release三种环境都生成好

CaiJingLong commented 3 years ago

@ericzhou2008 是的, 所以我才说这个是早期的文章, 那会儿所有的东西都需要自己搞定, 现在flutter命令就搞定了

ericzhou2008 commented 3 years ago

@ericzhou2008 是的, 所以我才说这个是早期的文章, 那会儿所有的东西都需要自己搞定, 现在flutter命令就搞定了

iOS端有没有搞热更新,谷歌百度搜了一圈,只有美团的方案最完美,可惜我们现在flutter工程已经3.0,里面有很多不能转DSL,比如转换不支持语法弹(箭头函数就不能用了,每个页面组件都需要改),还不支持await和as这对已存在flutter工程简直就是暴击,有好几千处都需要把await改成future.then的方式

CaiJingLong commented 3 years ago

@ericzhou2008 是的, 所以我才说这个是早期的文章, 那会儿所有的东西都需要自己搞定, 现在flutter命令就搞定了

iOS端有没有搞热更新,谷歌百度搜了一圈,只有美团的方案最完美,可惜我们现在flutter工程已经3.0,里面有很多不能转DSL,比如转换不支持语法弹(箭头函数就不能用了,每个页面组件都需要改),还不支持await和as这对已存在flutter工程简直就是暴击,有好几千处都需要把await改成future.then的方式

iOS端做不了纯粹的热更新 DSL的方案吧, 需要很大的技术投入

ericzhou2008 commented 3 years ago

@ericzhou2008 是的, 所以我才说这个是早期的文章, 那会儿所有的东西都需要自己搞定, 现在flutter命令就搞定了

iOS端有没有搞热更新,谷歌百度搜了一圈,只有美团的方案最完美,可惜我们现在flutter工程已经3.0,里面有很多不能转DSL,比如转换不支持语法弹(箭头函数就不能用了,每个页面组件都需要改),还不支持await和as这对已存在flutter工程简直就是暴击,有好几千处都需要把await改成future.then的方式

iOS端做不了纯粹的热更新 DSL的方案吧, 需要很大的技术投入

之前看到别人用JIT模式做的热更新,最近去看那人的博客和GitHub都删了,不知道为什么 DSL的美团团队已经实现了,要项目立项的时候开始就没问题,因为DSL不支持语法糖(比如箭头函数都不支持=>),await和as也不支持,我们的项目已经做完了,都3.0版本了,现在改工作量巨大,改完还要重新测试验证一遍,测试同学也不答应

NarutoYq commented 3 years ago

vendored_frameworks = 'ios_frameworks/*.framework' 不是更简单?

huainanzi commented 3 years ago

可以再咨询下flutter集成的问题吗?你们如何将iOS release的包在模拟器上跑起来的。我通过lipo 将x86的framework整合到release的framework上。跑是跑起来。但是涉及到flutter的页面。打不开。各位大佬有没有解决方案。

CaiJingLong commented 3 years ago

vendored_frameworks = 'ios_frameworks/*.framework' 不是更简单?

嗯, 所以说是边学边写的

CaiJingLong commented 3 years ago

可以再咨询下flutter集成的问题吗?你们如何将iOS release的包在模拟器上跑起来的。我通过lipo 将x86的framework整合到release的framework上。跑是跑起来。但是涉及到flutter的页面。打不开。各位大佬有没有解决方案。

个人还是建议真机运行, 如果lipo后还是无法运行, 需要去flutter的issue里找找解决答案, 如果没有, 则可以开新的issue询问

huainanzi commented 3 years ago

开了issue.也没有得到答案。因为我们主要是想非flutter开发能不依赖flutter环境,但是release不能解决模拟器开发的问题。采用lipo整合是我看到有大佬这样搞过。但是大佬没有回答。所以来请教下各位。😀

CaiJingLong commented 3 years ago

原生的一些framework lipo是常有的事 但 flutter 的 framework 没有 lipo 过, 怕的是官方没有提供模拟器的release, 如果有, 理论上应该没啥问题, 但是没有试过, 只是瞎说的

如果是flutter.framework没有成品针对模拟器的x86, 那可能需要自己下载engine, 然后自己编译, 那个还是挺费劲的