【问题标题】:links crashing iOS Music app链接崩溃的 iOS 音乐应用程序
【发布时间】:2017-01-16 21:51:30
【问题描述】:

我正在尝试从我的 iOS 应用打开指向曲目的链接,但音乐应用随机崩溃。

我通过 iTunes search API 获得曲目 URL。

这是从 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=music 以在 Apple Music 而不是 iTunes 中打开(即 &app=itunes)。 我已经在没有 &at 和 &mt 参数的情况下尝试过它,但它仍然崩溃。我已将链接粘贴到 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

【问题讨论】:

标签: ios swift itunes-store


【解决方案1】:

来自苹果documentation

跟踪陷阱 [EXC_BREAKPOINT // SIGTRAP]

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

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

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

【讨论】:

  • 音乐应用中的例外,而不是我的应用。我使用的 URL 很好 - 我已经在 Safari 中尝试过了,它可以工作。我的帖子中有一个示例网址。
猜你喜欢
  • 2019-10-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 2016-12-14
  • 2012-04-11
  • 1970-01-01
  • 2012-03-27
相关资源
最近更新 更多