Lynx 怎么在 Windows 开发 iOS App?宿主工程编译出 ipa
rspeedy 打出页面包,宿主 App 用 CocoaPods 接入 Lynx,在 Windows 上编译装机。
最后更新
Lynx 在 Windows 开发 iOS App,页面照常用 rspeedy 写 ReactLynx,npm run build 打出 main.lynx.bundle;iOS 宿主工程用 CocoaPods 接入 Lynx,KXBuild 编译宿主工程,通过 USB 装到 iPhone 真机调试,Release 构建直接生成 ipa。改了页面只需重新打包 bundle,构建几秒就完成。
Windows 上怎么创建 Lynx 工程并接入 iOS 宿主 App?
1. 创建页面工程并打包
已有 Lynx 页面工程直接执行 npm run build。没有的,用 rspeedy 新建一个 ReactLynx 工程,打包后在 dist 下得到 main.lynx.bundle。
> npm create rspeedy@latest my-lynx -- --template rspeedy-react-ts> cd my-lynx> npm install> npm run build2. 准备 iOS 宿主工程
已有原生 iOS 工程的,按 Lynx 官网「集成到现有 App」在 Podfile 中加入 Lynx、PrimJS、LynxService 等依赖。没有的,从 Lynx 官方示例仓库 integrating-lynx-demo-projects 的 ios/HelloLynxSwift 开始。把上一步的 main.lynx.bundle 复制到宿主工程目录,替换示例自带的同名文件;新工程要把它加进 App 的资源。
之后在 VS Code 中「文件 → 打开文件夹」打开宿主工程目录。
3. 安装依赖
Lynx 的组件发布在它自己的 Specs 仓库,第一次先把这个仓库加到本机,然后在宿主工程目录执行 pod install,之后构建生成的 .xcworkspace,见 CocoaPods。
> pod repo add lynx-family https://github.com/lynx-family/Specs.git> pod install4. 体检
它会检查编译需要的环境,并准备好 iOS 端的工程。
KXBuild 视图标题栏「···」中运行「体检并修复开发环境」。
> kxbuild doctor .\Hello-Lynx.xcworkspaceLynx 页面怎么装到 iPhone 上调试?
5. 编码
页面代码照常在 src/ 下编写,改完执行 npm run build,把 dist/main.lynx.bundle 复制到宿主工程,覆盖原来的文件。宿主工程的 Swift / Objective-C 代码在 VS Code 中有补全和跳转。
6. 调试
USB 连接 iPhone。第一次构建要编译 Lynx 引擎,时间较长;之后只换 bundle 时几秒就构建完。
在 KXBuild 视图中选中设备,按 F5。宿主 App 的原生代码在 VS Code 中断点调试。
执行下面的命令,构建后装到 iPhone 上并启动。
> kxbuild run .\Hello-Lynx.xcworkspace第一次连手机前,Windows 上先从 Microsoft Store 安装并打开「Apple 设备」完成驱动安装;iOS 16 及以上的手机要在 设置 → 隐私与安全性 里打开开发者模式,打开后手机重启一次。完整步骤见 Windows 连接 iPhone 真机调试。
Lynx 在 Windows 怎么打包 iOS 的 ipa 并上架?
7. 发布
先打包最新的 main.lynx.bundle 并复制到宿主工程,再用 Release 配置构建,宿主工程的 build 目录下生成 .ipa。上传到 App Store Connect 见 Windows 上架 App Store。
运行 KXBuild: 生成 App Store ipa(命令面板或工程右键菜单)。
> kxbuild build .\Hello-Lynx.xcworkspace -c Release --export app-store上架用的 ipa 要用 Apple Distribution 证书签名:把你自己的 .p12 证书和 .mobileprovision 描述文件放进 keychain/ 文件夹,之后每次构建自动签名,申请方法见 Windows 给 iOS App 签名。上传用 kxstore(kxstore build upload,Windows、Linux、macOS 都能用),TestFlight 和审核在 App Store Connect 网页上完成。这样 Lynx 在 Windows 开发 iOS App、真机调试到上传审核都在同一台电脑上完成。
常见问题
编译 Lynx 报 "The selected platform is no longer supported by libc++" 怎么办?
新版 iOS SDK 要求部署版本不低于 15.0,而 Lynx 的组件把警告当作错误。在宿主工程的 Podfile 末尾加上下面这段,把低于 15.0 的组件提到 15.0,并让新 SDK 带来的几类警告不再中断编译,然后重新执行 pod install。Podfile 里已有 post_install 的,把中间几行合并进去。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 15.0
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
end
flags = ' -Wno-error=deprecated-declarations -Wno-error=deprecated-implementations -Wno-error=#warnings -Wno-error=unused-result'
config.build_settings['OTHER_CFLAGS'] = '$(inherited)' + flags
config.build_settings['OTHER_CPLUSPLUSFLAGS'] = '$(inherited)' + flags
end
end
end接下来
CocoaPods
Podfile 不用改,pod install 在 Windows 上直接跑,构建生成的工作区。
发布与上架
用 Distribution 证书构建 Release 直接得到 .ipa,用 kxstore(或 Mac 上的 Transporter)传到 App Store Connect,走 TestFlight 和提审;Ad Hoc / 企业分发同一条路。
没找到你的工程类型?
kxbuild是通用编译工具,只要最终能产出 Xcode 工程,KXBuild 就能编。列出来的技术支持只是一些技术领域的应用,遇到问题随时联系我们