链接崩溃iOS音乐应用程序



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

我通过iTunes搜索API获取曲目URL。

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

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

为了真正打开URL,我使用

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

来自Apple文档:

跟踪陷阱[EXC_BREAKPOINT//SIGTRAP]

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

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

在我看来,解析您的url时出错。你能分享那部分吗?

相关内容

最新更新