Я создаю то, что, как я надеюсь, будет простым приложением для macOS, которое будет локально хранить видео, выбранное с помощью кнопки всплывающего окна.
Приложение представляет собой два окна: 1) AVPlayerView и 2) простую панель управления, которая позволяет пользователю выбирать и воспроизводить отмеченные видео в другом окне.
Все это очень хорошо работает в XCode. Когда выбран сохраненный URL-адрес, он превращается в AVAsset, который затем превращается в AVPlayerItem. Следующий процесс, который я успешно пробовал (в Xcode) двумя способами: создать 1) PublishSubect или 2) PublishSubject. В контроллере представления для окна AVPlayerview я подписываюсь на тему публикации панели управления и либо обновляю проигрыватель AVplayerView с помощью AVPlayerItem
destinationVC.videoSubject.subscribe(
onNext: { [weak self] item in
self?.player.replaceCurrentItem(with: item)
}
).disposed(by: bag)
или аналогичным образом вкалываю плеер. Любой из этих вариантов работает безупречно, когда я запускаю приложение в XCode. Проблема, с которой я сталкиваюсь, заключается в том, что когда я архивирую его для запуска приложения на моем компьютере, когда я выбираю видео для воспроизведения, приложение вылетает.
Я изолировал эту задачу от фонового потока в надежде лучше уловить ошибку, но полученный отчет о сбое не имеет для меня особого смысла:
Thread 2 Crashed:: Dispatch queue: Background
0 [myinfo].STSVideoPlayer 0x000000010e655476 closure #1 in closure #1 in VideoViewController.prepare(for:sender:) + 134 (VideoViewController.swift:40)
1 [myinfo].STSVideoPlayer 0x000000010e655499 thunk for @escaping @callee_guaranteed () -> () + 25
2 libdispatch.dylib 0x00007fff6e6d56c4 _dispatch_call_block_and_release + 12
3 libdispatch.dylib 0x00007fff6e6d6658 _dispatch_client_callout + 8
4 libdispatch.dylib 0x00007fff6e6dbc44 _dispatch_lane_serial_drain + 597
5 libdispatch.dylib 0x00007fff6e6dc5d6 _dispatch_lane_invoke + 363
6 libdispatch.dylib 0x00007fff6e6e5c09 _dispatch_workloop_worker_thread + 596
7 libsystem_pthread.dylib 0x00007fff6e930a3d _pthread_wqthread + 290
8 libsystem_pthread.dylib 0x00007fff6e92fb77 start_wqthread + 15
Я здесь явно выше головы. Любое понимание, которое вы могли бы получить, было бы очень признательно!