首页 > 编程知识 正文

转移到ios安卓下载,安卓

时间:2023-05-06 17:23:28 阅读:169618 作者:4993

前言kmm是kotlinMultiplatformmobile(kt移动跨平台)的缩写,目前不是正式版本,但可以使用

kmm跨平台的实现方法是将代码划分为三个块:

安卓原生代码

ios原生代码

kotlin共享代码在Android部分将kotlin共享代码编译为jvm文件,并将其作为lib添加到Android本机代码中。 ios是否要将kotlin共享代码编译为native(oc )? 编写代码并将其引入为框架

(图片来源于kt官网)

这确保了跨平台和平台的灵活性,性能比flutter更好

缺点是现在没有发行,使用的人少资料少。 双端本机代码可能会写得更多。 目前跨平台多功能平台(ui )没有ios版,请立即尝试。 一旦出现了跨平台ui,就应该真正实现跨平台

因为前一个环境是macos系统(苹果电脑),编译ios需要使用macos和xcode

安卓studio北极狐版本(2020.3.1 )以上

通过直接下载jdk-mac安装软件包,可以直接在jdk环境中放置环境变量

本文首先在as上安装kmm插件(用于创建kmm demo )

然后使用new project,kmm插件创建

创建成功并完成sync后,打开" androidApp "并指向运行,即可直接运行androidApp

是的,以kmm结束了!

emmm,您是如何运行ios的

选择iosApp

发现出现了一个x

请在这里修改iosApp规则

如果将此处的iosApp.xcworkspace更改为iosApp.xcodeproj,则可以将iosApp同时生成xcworkspace和xcodeproj视为as中项目和模型的差异

我们发现我们在点击运行,报告了错误(但还是保留吧)

因为我是第一次接触ios开发,所以不太清楚什么是具体的问题,但直观上我觉得是编译环境的问题。 因为我使用的是m1的macos,所以可能是缺省的kotlin编译成了用于native的x86,但是我看到了ios配置在kotlin共享模块的gradle配置中,所以让我们稍微修改一下并测试一下

原始配置为:

也许是去了else,因为我们不是ios专业的,现在只有一台m1苹果电脑,所以简单地配置了:如下

再次单击运行,表示未导入共享模块

如果您在这里查看一下,就会发现framework没有引入到xcode项目中,所以请在xcode中打开iosApp项目并导入framework

首先,在xcode中打开项目,单击open a project,然后选择该文件

这个时候xcode什么都没有吗? 我一脸陌生,然后知道必须导入模型,于是:

选择并确认目录中的iosApp.xcodeproj文件后,可以看到左列中包含文件夹

然后去as生成框架吧

双击此命令以生成ios使用的共享框架

首先单击蓝色的iosApp文件以打开配置文件,然后单击此加号

单击add other,然后单击add files,将我们生成的框架导入以下目录

将上面的目录放置在框架路径中

内容: $ { src root }/./shared/build /端庄外套/ios/podReleaseFramework/

配置成功后,再次在as上单击并运行,ios模拟器启动,程序也已运行。 但是,as不知为何崩溃了。 (已发送反馈。 到此为止应该可以正常工作,但现在as崩溃了,但也可以通过xcode运行。 但是,需要简单地进行配置

我们不能直接调用gradle来编译共享kt代码,因为xcode执行的是xcode只能去的东西。 在这种情况下,可以使用xcode脚本功能

将此脚本拖动到顶部以在xcode之前编译。 内容为以下:

JAVA_HOME禁止找到环境变量(如果使用zsh ) if(-f~~/.zshrc ); 避免找到thenecho ' zsh ' source//zshrc fi # Java _ home环境变量(如果使用bash );if(-f(//.bashrc ); thenecho ' bash ' source~~/. bashrcficd ' $ src root ' CD ./#其中Android项目目录名称# KMMsharedmodule是kmm模块。 Gradle project名称https://img.coder yuan.com/1622193265424.png./grad Lew : shared : clean : shared : linkpodreleleaseasefef

如果想提高速度,pps:可以消除:shared:clean。 通常没有状况。 如果有情况,可以手动调用

ppps:当然,此脚本仅在运行xcode时使用。 如果仅在as上运行iosApp,则可以删除此脚本。 否则,共享代码可能会被编译两次而浪费时间

可以使用xcode的执行功能。

办完事。

结语当然,因为我没有使用过xcode开发,所以可能会有配置和书写错误。 如果想请伟大的人指出来

接下来,kmm将来可能会更改api,因此文章的一部分可能会变旧,但会尽快修改

文章的一部分参考这个大人物的文章: kmm (kotlinmultiplatformmobile )入门)2)在现有项目中集成kmm可爱的程序员- CoderYuan.com

最后,EDG牛逼! EDG牛逼! EDG牛逼!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。