友盟 PBItemCollectionServicer connection disconnected & Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

但是用swift 接入友盟登陆或分享时,在授权(我使用的QQ)后跳回出现该问题,在Xcode控制台窗口出现

PBItemCollectionServicer connection disconnected.

并在AppDelegate文件开头处出现

Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

这里写图片描述

Env:

  • Xcode Version 9.3 (9E145)

最后发现是系统回调设置的问题,文档 设置系统回调有一句这样的话(下面是文档中OC 对应的swift code)

func application(_ application: UIApplication, open url: URL,
sourceApplication: String?, annotation: Any) -> Bool {
    print("Open Url: \(url)")
    let result = UMSocialManager.default().handleOpen(url)
    if !result{

    }
    return result
}

注:此方法在swift4.1(Xcode 9.3)已废弃,Objective-C项目不影响。 新浪
平台外的其他平台可在swift项目中使用下面两种回调方法。

看来是此方法在 swift4.1 版本中已经废弃,这样造成没有设置回调,因此会出现上面的错误。坑的是,没有一点有用的报错信息, debug也未能看到什么信息。

哎,害我搜索了好久,浪费了好多时间。 具体来看友盟文档还可以,就是swift部分不是太详细。

解决方案:

将上面的方法改为

func application(_ app: UIApplication, open url: URL, options:    [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
   return UMSocialManager.default().handleOpen(url, options: options)
}

你可能感兴趣的:(Xcode,IOS)