【问题标题】:MultipeerConnectivity does not work as expected on iOS 14MultipeerConnectivity 在 iOS 14 上无法按预期工作
【发布时间】:2021-01-10 09:39:15
【问题描述】:

MCBrowserViewController 被调用时

-[MCBrowserViewController advertiser:didNotStartAdvertisingPeer:]: unrecognized selector sent to instance

抛出错误信息。

MCAdvertiserAssistant尝试开始做广告时

-[MCAdvertiserAssistant advertiser:didNotStartAdvertisingPeer:]: unrecognized selector sent to instance

抛出错误信息。

受到打击,无法继续。我的业务依赖于MultipeerConnectivity 框架。

任何帮助将不胜感激。

【问题讨论】:

    标签: ios swift multipeer-connectivity ios14


    【解决方案1】:
    let assistant = MCAdvertiserAssistant(serviceType: "tictactoe", discoveryInfo: nil, session: session)
    let browser = MCBrowserViewController(serviceType: "tictactoe", session: session)
    

    在 info.plist 中插入以下字段:

    1. 隐私 - 本地网络使用说明
    2. 具有以下初始化的 Bonjour 服务:_tictactoe._tcp 和 _tictactoe._udp

    【讨论】:

    • 这些值究竟是什么?_tictactoe._tcp 和 _tictactoe._udp
    • 感谢您的回答,实际上这个解决方案并不能解决问题。顺便说一句,模拟器中没有发生问题。
    • 这些是您在创建广告商和浏览器时使用的标识符。
    • 我应该使用什么值?
    • 如何创建 MCBrowserViewController 和 MCAdvertiserAssistant?你能展示你的代码吗?
    【解决方案2】:

    我在实现MultipeerConnectivity 时也遇到了一些问题。经过一番研究找到了解决办法.. 我所做的是

    1. 我关注了https://www.hackingwithswift.com/example-code/networking/how-to-create-a-peer-to-peer-network-using-the-multipeer-connectivity-framework这个。
    2. Info.plist 中添加了Bonjour services(值-_*serviceType*._tcp)和Privacy - Local Network Usage Description
    3. 删除了SceneDelegate相关的东西,如Opt out of UISceneDelegate/SwiftUI on iOS

    清理并构建。

    注意:我正在使用 Xcode12 和 iOS14。

    【讨论】:

    • 崩溃已修复,但连接现在被拒绝。你有什么想法吗?
    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2014-10-20
    • 2013-05-27
    相关资源
    最近更新 更多