链接崩溃iOS音乐应用程序

时间:2017-01-16 21:51:30

标签: ios swift itunes-store

我试图从我的iOS应用中打开指向某个曲目的链接,但音乐应用随机崩溃。

我通过iTunes search API获取了跟踪网址。

以下是从JSON响应中提取的示例trackURL:https://itunes.apple.com/us/album/10-bagatelles-op.-5-bagatelle/id253254038?i=253254078&uo=4&partnerId=11

我添加我的会员ID(& at = MYID)和媒体类型(& mt = 1)以及音乐,以及& app =音乐在Apple Music而不是iTunes中打开(这将是&应用程序的iTunes =)。 我没有使用& at和& mt params尝试过它,它仍然会崩溃。我已将链接粘贴到Safari(和Chrome)中,它是一个有效的链接;我看到了合适的页面。

要实际打开网址,请使用

UIApplication.shared.openURL(url)

我也尝试过这种方式:

let svc = SFSafariViewController(url: URL, entersReaderIfAvailable: false)
svc.delegate = self
self.present(svc, animated: true, completion: nil)

有时一切正常 - 音乐应用程序打开,然后进入轨道。它打得很好。然后我回到我的应用程序,尝试另一个链接。和音乐崩溃。我的应用仍在运行。音乐有一个崩溃日志。它说问题是"试图保留解除分配的对象"。我不知道我个人能做些什么。

欢迎任何建议。

Process:             Music [1100]
Path:                /Applications/Music.app/Music
Identifier:          com.apple.Music
Version:             1.0 (3.0)
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.apple.Music [577]
OS Version:          iPhone OS 10.2 (14C92)
Report Version:      104
Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x00000001abd62c88
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [0]
Triggered by Thread:  0
Application Specific Information:
attempted to retain deallocated object

我不认为我尝试过任何不寻常的事情。事实上,我认为这可能是iTunes搜索API的常见用例。

XCode 8.2.1,Swift 3,iOS 10.2,iPhone 6S +也运行iOS 10.2

1 个答案:

答案 0 :(得分:2)

来自Apple documentation

  

跟踪陷阱[EXC_BREAKPOINT // SIGTRAP]

     

如果在运行时遇到意外情况,则Swift代码将以此异常类型终止,例如:

     

具有nil值的非可选类型   强制类型转换失败

我觉得解析你的网址时出错了。你能分享那部分吗?