WatchConnectivity sendMessage:replyHandler:当链接器有标志 -ObjC 时不工作

WatchConnectivity sendMessage:replyHandler: don't work when linker have flag -ObjC

我有一些带有外部库的项目,该项目对这些库使用 -ObjC 链接器标志。没有 -ObjC 项目将崩溃。现在我想添加对 Watch OS 2 的支持。但是我有问题:直到链接器有标志 -ObjC 方法 -sendMessage:replyHandler: return 错误如

Error Domain=WCErrorDomain Code=7014 "Payload could not be delivered." UserInfo={NSLocalizedDescription=Payload could not be delivered.}

我无法删除这个标志 (-ObjC),但是有了它我的手表就不能工作了。如果用户点击按钮,我需要将一些信息发送到我的 iPhone。通过另一种方式发送信息,我也遇到了问题。系统将消息添加到队列中并永久保存。有人有想法吗?

我找到原因了!它是 Appodeal 框架 v0.10.2,我附加了 Applodeal v0.10.3,现在我的手表代码运行良好。

链接器标志不应影响 WatchKit 连接。这里有几个故障排除过程。

  1. 您必须确保在接收消息的设备上实现了委托方法。

-(void)session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message

  1. 在您的评论中,您说您发送的数据是一个简单的字典。 WatchKit 连接不允许您发送自定义 class 对象。

  2. 同时尝试重新启动您的模拟器或设备。特别是对于模拟器,Watchkit 连接经常失败。重建并重新启动会有所帮助。

这些是人们(或我)在 Wathkit 连接方面常犯的错误。任何代码都不应阻止 Watchkit 连接。请仔细阅读 Apple 的文档,了解有关委托和协议的细节。如果您有任何问题,请告诉我。祝你好运!

T_T没解决T_T

只有从现在开始修复它的方法,出现错误时打开 ios 应用程序一次。可能是他们说的初始化过程