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
相关产品推荐
相关产品推荐

