2017-01-16 42 views
1

我試圖打開從我的iOS應用程序的軌道鏈接,但音樂應用程序隨機崩潰。鏈接崩潰的iOS音樂應用程序

我通過iTunes search API獲取曲目網址。

下面是JSON響應提取的例子trackURL:https://itunes.apple.com/us/album/10-bagatelles-op.-5-bagatelle/id253254038?i=253254078&uo=4&partnerId=11

我(在= MYID &)加入我的會員ID和音樂的媒體類型(& MT = 1),與&應用=音樂沿在Apple Music中打開而不是iTunes(這將是& app = itunes)。 我試過它沒有& at和&山參數,它仍然崩潰。我已將該鏈接粘貼到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,夫特3,10.2的iOS,iPhone 6S +也運行iOS 10.2

+0

這是一個簡單的GitHub庫顯示的問題:https://github.com/genedelisa/LinkToMusic –

回答

1

從Apple documentation

跟蹤陷阱[EXC_BREAKPOINT // SIGTRAP]

SWIFT代碼將在運行時遇到意外情況時終止此異常類型,例如:

非零值的非可選類型 af強制強制類型轉換

在我看來,解析您的網址時出現錯誤。你能分享那部分嗎?

+0

例外的是在音樂應用程序,而不是我的應用程序。我使用的URL很好 - 我已經在Safari上試過了,它能正常工作。示例URL位於我的帖子中。 –