问一个关于 iOS Flutter 的问题

2020-09-09 10:17:36 +08:00
 wtdu1992
由于项目需求,在 Flutter iOS 项目中添加了一些系统的 extension App,比如 share extension,notification extension,Today extension,由于没有找到比较好的插件,因此都是 flutter native +原生 实现,在实现功能的过程中,在 extension app 中也是用了一些常用的三方库,这里同样用 pod 进行管理 ,只需要在 target 下选择 基于 Pod workspace ( debug &release ) 进行编译即可,但是现在发现一个问题,本来在 xcode 环境已经配置好的,但是在 AS ( Android studio ) 中进行编译的时候,每一次都会被重置,导致在 extension app 中 被 import 的 framework 总提示 not found 不通过,项目也跑步起来,很郁闷,这样也导致项目 无法用 code magic 打包,有没有谁遇到过类似问题。
4222 次点击
所在节点    iDev
9 条回复
FaXiaoKe
2020-09-09 10:52:52 +08:00
弄个分支啊,只同步业务代码,不要同步配置和 pods 文件。

我这里 android 和 iOS 核心开发完成后,后期直接分两个代码源管理了。
wtdu1992
2020-09-09 11:12:28 +08:00
@FaXiaoKe 有添加分支,每次要添加新、功能时候,都会创建一个新的分支,在分支上操作,测试稳定以及 code review 通过后, 才会同步到 master,现在的遇到的问题不是这个,是在集成的过程中,我本地编译,以及 日常打包测试(分支代码)的时候遇到的问题,还没有到完成阶段。
0xDatou
2020-09-09 13:04:41 +08:00
没有做过 flutter,但是听你的意思是 AS 跑完,sdk 没了是吧?如果只是这样的话每次切重新 pod install 先用着?
wtdu1992
2020-09-09 14:42:41 +08:00
@0xDatou 并不是没有了 ,你 pod install 之后肯定是在本地的,只需要在 build Phases ---> link lib 中 添加相关你需要使用的 framework 就可以,在 build 时候回动态根据 path 去链接,现在出现的问题是在 AS 中 build 就会报错,提示 被 import 的 framework not found
0xDatou
2020-09-09 15:03:59 +08:00
是我落伍了还是理解有问题。。 我印象中 cocoapods 默认只支持 Xcode 的吧?做 flutter 用 AS 的配置项也能 cocoapods 也能用?
shily
2020-09-09 16:13:20 +08:00
在 ios/Podfile 的文件里 target 'Runner' do 节点下添加
pod 'SnapKit', '~> 4.0.0'
目前我们使用的这用方式,没遇见啥问题啊
wtdu1992
2020-09-09 17:34:27 +08:00
@0xDatou Flutter 也有包管理工具 ,在 flutter 环境 有一个配置文件,当你配置好相关 lib 信息,在 run 或者 build 时候 会自动去链接原生的一些库,这里 flutter 目前只支持 CocoaPods 进行包管理,具体原理,感兴趣可以去看看实现方案。
wtdu1992
2020-09-09 17:42:47 +08:00
@shily 是的 ,除了 pubspec.yaml 文件中配置的 lib 之外,比如自己要做 native 方案,这时候用到三方库时,我也是这么做得 ,没问题,我现在实在 share extension 使用 framework,因此 我在 target list 的 project 选项中,也就是 Runner 下,选择右侧的 info ---->configurations ,将 debug & release 中 extension app 手动改为 Pod.Runner.Debug/Release,然后在 extension app target 的 build Phases 中导入 对应的 framework,这时候你再到 extension app 环境去使用对应的库,应该是没问题的,但我这里很奇怪,在 AS 和终端命令中运行会报错 ,找不到库
chisj
2022-08-30 16:26:51 +08:00
很好奇楼主最后有没有解决? 解决了的话最好回复下问题原因,以及解决方法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/705394

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX