ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何用 create-android-project 脚本一键将 iOS 工程转换为 UIKit-cross-platform Android 工程

如何用 create-android-project 脚本一键将 iOS 工程转换为 UIKit-cross-platform Android 工程 如何用 create-android-project 脚本一键将 iOS 工程转换为 UIKit-cross-platform Android 工程【免费下载链接】UIKit-cross-platformCross-platform Swift implementation of UIKit, mostly for Android项目地址: https://gitcode.com/gh_mirrors/ui/UIKit-cross-platform想用一套 Swift 代码同时跑通 iOS 和 AndroidUIKit-cross-platform就是一个专为 Android 打造的 UIKit 跨平台实现它让你用熟悉的 UIKit API 编写界面并借助create-android-project脚本把现有的 iOS 工程一键转换成可运行的 Android 工程。本文就带你从零开始完成这次一次编写、两端运行的转换之旅。转换前需要准备什么iOS 工程改造清单脚本本身是一键的但为了让代码能在 Android 上顺利编译iOS 工程需要先满足几个前提。这份清单请逐项检查删除Main.storyboard并移除Info.plist中对它的引用删除SceneDelegate.swift同时移除Info.plist中的Application Scene Manifest配置块改造AppDelegate.swift去掉UIApplicationMain注解把类声明为final并在application(_:didFinishLaunchingWithOptions:)中手动创建UIWindow和根控制器新增main.swift文件调用UIApplicationMain完成应用启动。这些准备工作的详细说明和示例代码都整理在 docs/PREPARE_IOS_PROJECT.md 中照着改即可不需要理解底层原理。一键转换的具体步骤运行 create-android-project 脚本工程改造完成后就可以开始转换了。整个流程只需要三步第一步获取 UIKit-cross-platform在 iOS 工程根目录下克隆本项目推荐放到名为UIKit的子目录中git clone https://gitcode.com/gh_mirrors/ui/UIKit-cross-platform UIKit cd UIKit git submodule update --init --recursive第二步运行转换脚本回到 iOS 工程根目录执行./UIKit/create-android-project脚本会自动读取*.xcodeproj/project.pbxproj中的PRODUCT_BUNDLE_IDENTIFIER据此判断目标工程名和包名无需任何手动输入。第三步用 Android Studio 打开转换完成后工程根目录下会出现一个android文件夹用 Android Studio 打开它连接设备后点击 Run 即可看到你的 Swift 界面跑在 Android 上 脚本自动完成哪些工作包名替换与工程生成你可能好奇一键背后究竟发生了什么其实核心逻辑非常清晰主要做了四件事生成构建配置从模板复制 CMakeLists.txt让 CMake 与 Ninja 能编译 Swift 源码创建 JNI 入口在源码目录生成androidMain.swift注册AppDelegate作为 Android 端应用入口搭建 Android 壳工程复制整套 Gradle 工程并根据 Bundle ID 自动替换com.example包名把 MainActivity.kt 放到正确的包路径下自动改写路径把模板中指向示例工程的相对路径统一调整到你的UIKit目录。整个过程对应的脚本就一个文件项目根目录下的 create-android-project感兴趣的开发者可以直接阅读逻辑非常直白。环境配置要点让编译一次通过转换只是第一步要跑起来还需配好构建环境。以下是避坑要点安装CMake≥ 3.16和Ninja它们是编译 Swift 原生代码的基础工具安装Android Studio并在 SDK Manager 中安装 API Level 29 及以上的平台安装NDK 27.1.12297006注意勾选 Show Package Details 才能看到该版本并按要求创建符号链接手机或模拟器需为arm64-v8a架构工程默认只编译该 ABI。这些细节在 docs/FAQs.md 和 README 中有更完整的说明。常见问题排查编译失败怎么办新手最容易遇到两类问题这里提前给出解法报错ninja: error: ... missing and no known rule to make it说明 CMake 缓存过期请在 Android Studio 中执行 Build → Refresh Linked C Projects然后重新构建提示android目录已存在脚本出于安全考虑不会覆盖已有目录删除旧的android文件夹后重新运行即可。小结通过create-android-project脚本iOS 工程转换为UIKit-cross-platform Android 工程的成本被压缩到了极致改造一次 AppDelegate、执行一条命令、点击一次运行。无论你是想降低双端开发成本还是想尝鲜 Swift 跨平台方案这条路径都值得一试。下一步你可以在 Android Studio 中逐步验证界面渲染、手势交互与动画效果体验一套 UIKit 代码两端原生体验的乐趣 【免费下载链接】UIKit-cross-platformCross-platform Swift implementation of UIKit, mostly for Android项目地址: https://gitcode.com/gh_mirrors/ui/UIKit-cross-platform创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表