首试compose ui跨平台

背景

  1. KMM发展自今已经可以在android和iOS平台上,通过kotlin compose来实现部分通用UI适配,以前还一直沉浸在kmm写sdk 逻辑在双方公用的概念上,今天抽空就来学习下用compose开发两端ui。
    补充说明:KMM现在还可以开发桌面应用、服务端应用、H5,贼牛逼了。

如何创建

  1. 现在kmm是可以直接通过下面网址,通过勾选所需要的跨平台,然后填入应用名和应用id,直接生成可运行的跨平台项目,这点做的非常Nice。
    kmm跨平台创建项目网址

项目运行遇到问题

安卓运行遇到问题
  1. 项目需要的AS版本需要2025年后的较新版本,否则运行提示AGP版本兼容问题。
iOS运行遇到问题

问题一:The project at ‘/Users/admin/Library/kotlin_project/KotlinProject/iosApp/iosApp.xcodeproj’ cannot be opened because it is in a future Xcode project file format. Adjust the project format using a compatible version of Xcode to allow it to be opened by this version of Xcode.

上面问题是说,kmm生成的项目所需的版本号大于Xcode的版本号,无法打开。这块iOS在Xcode和编译版本是抓的比较严格的,所以说需要对应版本。

正确解决:升级Mac系统版本,把Xcode升级到最新版本。(我通过升级Mac到26.0.1,XCode版本:Version 26.0.1成功运行iOS应用)

错误解决:将iOS项目降低到对应XCode的版本,从而诞生出问题二。

问题二:The project ‘iosApp’ is damaged and cannot be opened. Examine the project file for invalid edits or unresolved source control conflicts.

上面问题是说,依赖上有冲突,我以为是没有依赖上framework层,所以根据!如何给iOS项目注入Compse framework依赖依赖上compose的生成的ios framework后产生了问题三。

问题三:Link issue on iOS (undefined symbol OBJC_CLASS$_UITextLoupeSession)

上面问题三就很懵逼了,在网上搜了后官方直接说升级Xcode版本,最后还是老老实实全家桶升级好了。
官方回答

kmm项目iOS依赖shell脚本

上面可以看出在根目录中,执行/gradlew :composeApp:embedAndSignAppleFrameworkForXcode 生成framework文件。


生成framework文件

运行后效果

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容