2017-01-16 4 views
1

Я пытаюсь открыть ссылку на трек из моего приложения iOS, но приложение Music случайно разбивается.ссылки crashing Приложение iOS Music

Я получаю URL-адрес трека через iTunes search API.

Вот пример trackURL извлекается из ответа JSON: https://itunes.apple.com/us/album/10-bagatelles-op.-5-bagatelle/id253254038?i=253254078&uo=4&partnerId=11

добавить свой партнерский идентификатор (& в = MyId) и тип носителя (& т = 1) для музыки, наряду с & приложения = музыка к откройте в 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 

Я не думаю, что я пытаюсь что-то необычное. На самом деле, я думаю, что это, вероятно, общий прецедент для API поиска iTunes.

XCode 8.2.1, Swift 3, IOS 10,2, iPhone 6S + также работает IOS 10.2

+0

Вот простое репо Github, которое отображает проблему: https://github.com/genedelisa/LinkToMusic –

ответ

1

От компании Apple documentation:

Трассировка Trap [EXC_BREAKPOINT // SIGTRAP]

Swift код будет завершаться с этим типом исключения, если во время выполнения встречается непредвиденное состояние, такое как:

не факультативный тип с нулевым значением af принудительное преобразование принудительного типа

Похоже, что возникает ошибка в анализе вашего URL-адреса. Можете ли вы поделиться этой частью?

+0

Исключением является приложение «Музыка», а не мое приложение. Я использую URL-адрес - я пробовал его в Safari, и он работает. Пример URL-адреса в моем сообщении. –

Смежные вопросы