You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin Multiplatform共享代码调用原生Swift函数获取FCM Token失败问题求助

Kotlin Multiplatform共享代码调用原生Swift函数获取FCM Token失败问题求助

大家好,我正在给Kotlin Multiplatform项目集成Firebase Cloud Messaging,Android端的实现一切顺利,但iOS这边卡在了调用原生Swift函数获取FCM Token的环节,试了好几种方法都没搞定,想请各位帮忙看看问题出在哪!

现有代码情况

共享模块代码

我在共享模块里定义了一个expect函数:

expect suspend fun getFCMToken(): String?

Android端实现

Android侧用actual实现了这个函数,测试下来完全正常,能顺利拿到Token。

iOS端Swift实现

iOS项目里我已经完成了FCM的基础配置,然后写了对应的Swift函数:

@objc static func getFCMToken() -> String? {
   return Messaging.messaging().fcmToken
}

尝试过的解决方法

我试过两种方式让共享代码调用这个Swift函数,但都没成功:

  • 把这个Swift函数封装到一个类里,然后在iosMain的Kotlin代码里尝试调用这个类的方法
  • 配置了桥接Header,确保Kotlin能访问到Swift代码

现在还是没法让共享模块的expect函数关联到iOS端的这个实现,有没有大佬知道哪里出问题了?

备注:内容来源于stack exchange,提问作者Salint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 14:55:32