Как безопасно подключить AVKit к https? - PullRequest
0 голосов
/ 03 мая 2019

Я реализовал AVKit, URL-адрес, с которого я вызываю видео, с моего сайта использует https.Когда я запускаю приложение через XCode, все работает нормально, но когда я архивирую приложение для выпуска, оно не будет показывать видео.Я реализовал NSAppTransportSecurity, NSExceptionDomains и NSIncludesSubdomains.Это ошибка, которую я получаю,

startConfigurationWithCompletionHandler: Не удалось получить прокси удаленного объекта: Ошибка Domain = NSCocoaErrorDomain Code = 4097 "подключение к службе с именем com.apple.rtcreportingd" UserInfo = {NSDebugDescription = подключение кслужба с именем com.apple.rtcreportingd}.

Я использую Xcode 10.2 Swift 5 У меня был URL-адрес в файле констант, принудительно развернутый, с тех пор я поместил их в свой makeView с помощью оператора guard.У меня есть пользовательская ячейка с видеопроигрывателем внутри ячейки.

У меня есть поиск по максимуму и минимуму, Apple говорит, что нужно внедрить plist-код и настроить его так, как я.

Я попытался использовать другой URL-адрес, поэтому я использовал пример Apples AVKit с теми же результатами.

Все, что я прочитал, говорит, что plist нуждается в коде AppTransportSecurity, который я уже реализовал и до сих пор использую.невозможно подключиться к видео, когда приложение заархивировано и готово к выпуску.

// plist sourceCode

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>example.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
            <false/>
        </dict>
    </dict>
</dict>

// TableViewDataSource

func tableView(_ tableView: NSTableView, viewFor tableColumn:    NSTableColumn?, row: Int) -> NSView? {

     guard let videoOne = URL(string: "https://example.com/video.mov") else {return nil}

    let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "videoCell"), owner: nil) as? VideoCell
    switch row {
    case 0:

        cell?.titleLabel.stringValue = "title 1"
        cell?.playerView.player = AVPlayer(url: videoOne)
        return cell
   default:
      break

Когда приложение было заархивировано для распространения, видео должно воспроизводиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...