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

Описание:

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

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

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

Не удалось загрузить URL-адрес запуска с ошибкой: (null) appController(_:didFailWithError:) вызван с ошибкой: Error 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/.

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

Вопрос:

Что вызывает эту ошибку и как ее решить?


person kemicofa ghost    schedule 19.08.2016    source источник
comment
Разве as? не должно быть as!?   -  person Daniel Storm    schedule 19.08.2016
comment
проверьте мой ответ! Если поможет - не забудьте отметить как решающий ответ   -  person moonvader    schedule 11.10.2017
comment
@moonvader Я задал этот вопрос довольно давно и с тех пор не работал над ним. Таким образом, я не знаю, решает ли ваш ответ проблему, и у меня нет времени проверять. Если вы получите больше голосов в будущем, я обязательно отмечу это как правильное. Ваше здоровье.   -  person kemicofa ghost    schedule 11.10.2017


Ответы (3)


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

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

ruby -run -ehttpd . -p9001

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

"http://yourLocalhost:9001/Downloads/TVMLCatalogUsingTVMLTemplates/Server/"
person Naveen Paulsingh    schedule 29.11.2018

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

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

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

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

person moonvader    schedule 07.10.2017

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

Я получил:

[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 нужно выполнять в папке с именем Сервер, а в других — просто в главной папке приложения. Просто загляните в файл README, чтобы понять это.

person Honey    schedule 15.03.2019