# 原生联调

宿主原生应用是Objective-C/Swift代码,在Xcode中运行。uni-app x应用是uvue/uts代码,在HBuilderX中运行。但两者经常需要联调。

得益于uts的编译产物就是Swift,所以uni-app x可以和原生应用混编运行,联调debug。

# Xcode 配置项目

对宿主原生项目配置,目的是为了加入uni-app x的调试模块,并对uni-app x调试模块所需的依赖进行配置。

  1. 下载uni-app x原生SDK后,将DCloudDebugServe.xcframework添加到原生工程中。

  2. 将原生工程中Target的名称改为UniAppX。如图:

  3. 在工程Info.plist下添加UIFileSharingEnabled节点,值设置为true。如图:

  4. 填写Display Name(建议与manifest.json中name值一致)Build(建议与manifest.json中versionCode一致)Version(建议与manifest.json中versionName值一致)字段。如图:

  5. 在工程Info.plist下添加uniapp-x节点,在节点中配置appid(必须与manifest.json中appid值一致)以及ipatype(在HBuilderX中调试需要设置为1),如图:

# 把宿主应用打包为HBuilderX的自定义基座。

思路:把宿主原生工程打包为ipa,成为自定义基座。然后在HBuilderX中运行uni-app x时,选择这个自定义基座,运行到手机上。

如果您不了解什么是运行基座、标准基座、自定义基座,这些概念,请参考文档

# 原生工程生成自定义基座

检查Target -> Info -> uniapp-x节点下的uniRuntimeVersionHBuilder X版本号是否一致,如有差异建议更新为相同版本。
在Xcode菜单栏中,选择Product -> Archive 根据提示导出ipa文件

# 将自定义基座添加到uni-app x 项目

  1. 将生成的ipa文件重命名为iOS_debug.ipa
  2. iOS_debug.ipa拷贝到uni-app x项目的unpackage/debug目录下
  3. 点击 运行 -> 运行到iOS App基座,勾选使用自定义基座运行

运行成功后,在手机自定义基座中打开uni-app x应用,HBuilderX控制台可以看到运行log。 在HBuilderX中修改uni-app x代码,可以在手机端基座中热刷生效。