【发布时间】: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
【问题讨论】:
-
这是一个显示问题的简单 Github 存储库:github.com/genedelisa/LinkToMusic
标签: ios swift itunes-store