Не удалось загрузить URL-адрес запуска с ошибкой: Ошибка Domain=TVMLKitErrorDomain Code=3 "(null)"

Описание:

Я создал новый проект TVML и запустил его. Первой ошибкой была App Transport Security, которую я исправил через Info.plist:

App Transport Security Settings -> Allow Arbitrary Loads -> YES

Затем я запустил его снова, и я получаю эту ошибку:

Не удалось загрузить URL-адрес запуска с ошибкой: (null) appController(_:didFailWithError:) вызван с ошибкой: Ошибка Domain=TVMLKitErrorDomain Code=3 "(null)"

Проект вроде бы на этом останавливается (application func в AppDelegate.swift):

   appControllerContext.launchOptions["BASEURL"] = AppDelegate.tvBaseURL
   print(launchOptions) //returns nil
   //error on following line
   if let launchOptions = launchOptions as? [String: AnyObject] {
        //does not enter here
        for (kind, value) in launchOptions {
            appControllerContext.launchOptions[kind] = value
        }
    }

Что я пробовал:

Я попытался изменить tvBaseURL с " http://localhost:9001/" на http://MY-IP-ADDRESS-HERE:9001/

но это ничего не изменило.

Вопрос:

Что является причиной этой ошибки и как ее решить?

2 ответа

Вы должны запустить сервер с номером порта

введите следующую команду в терминале

ruby -run -ehttpd . -p9001

И, наконец, ваш tvBaseURL должен перейти в папку на сервере, как это

"http://yourLocalhost:9001/Downloads/TVMLCatalogUsingTVMLTemplates/Server/"

Я также столкнулся с той же проблемой, я решил ее, изменив tvBaseURL в AppDelegate

static let tvBaseURL = "http://127.0.0.1:9001/Downloads/TVMLCatalogUsingTVMLTemplates/Server/"

Как видите - я должен показать точный путь к папке на сервере. Это также работает, если вы поместите его на какой-либо веб-сервер.

Надеюсь, что это может помочь!

Я просто столкнулся с этой проблемой. Вы должны обратить пристальное внимание на вывод терминала.

Я получил:

[2019-03-15 12:28:43] INFO  WEBrick 1.3.1
[2019-03-15 12:28:43] INFO  ruby 2.3.7 (2018-03-28) [universal.x86_64-darwin17]
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/socket.rb:205:
in `bind': Address already in use - bind(2) for 0.0.0.0:9001 (Errno::EADDRINUSE)

Адрес уже используется - bind(2) для 0.0.0.0:9001

На этом этапе вам либо нужно выбрать другой номер порта (если вы решите сделать это, то убедитесь, что порт вашего сервера и порт вашего проекта XCode совпадают), либо убить предыдущий сервер с помощью ctrl + c или просто убить это окно терминала.

Также обратите внимание, что в некоторых примерах проектов Apple ruby -run -ehttpd . -p9001 команда должна быть сделана в папке с именем Server, а для других она просто должна быть сделана в главной папке приложения. Просто посмотрите в файл README, чтобы понять это.

Другие вопросы по тегам