tvOS - не удается подключиться к локальному хосту

Я тестирую некоторый код tvOS, и он отлично работает на симуляторе, однако на Dev Kit, работающем под управлением бета-версии 2, я получаю следующую ошибку:

2015-09-27 11: 10: 29.797 RWDevCon [272: 46267] SSSQLiteDatabase: не удалось открыть базу данных, сброс настроек: [23, /var/mobile/Library/Cookies/com.apple.itunesstored.2.sqlitedb] _CFURLRequestCopyStorageSession устарел, 2015-09-27 11:10:29.810 RWDevCon[272:46267] ITML: настройка [1] для игнорирования HTTP-кэша 2015-09-27 11:10:34.886 RWDevCon[272:46267] ITML: настройка [3] уровня журнала 2015-09-27 11:10:34.887 RWDevCon[272:46267] ITML: не удалось загрузить URL-адрес запуска с ошибкой: домен ошибки = код NSURLErrorDomain =-1004 "невозможно подключиться к локальному узлу" UserInfo={NSUnderlyingError=0x137d2dee0 {ошибка домена =kCFErrorDomainCFNetwork Код =-1004 "Не удалось подключиться к серверу." UserInfo={ _kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1, NSLocalizedDescription= Невозможно подключиться к серверу.}}, NSErrorFailingURLStringKey = http://localhost:9001/js/application.js, _kCFStreamKeyFirectory.dll подключиться к localhost}

Код Swift: класс AppDelegate: UIResponder, UIApplicationDelegate, TVApplicationControllerDelegate {var window: UIWindow?

var appController: TVApplicationController? /
static let TVBaseURL = "http:/
static let TVBootURL = "\(AppDelegate.TVBaseURL)js/application.js" /

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {

    window = UIWindow(frame: UIScreen.mainScreen().bounds)

    /
    let appControllerContext = TVApplicationControllerContext()

    /
    guard let javaScriptURL = NSURL(string: AppDelegate.TVBootURL) else {
        fatalError("unable to create NSURL")
    }

    appControllerContext.javaScriptApplicationURL = javaScriptURL
    appControllerContext.launchOptions["BASEURL"] = AppDelegate.TVBaseURL

    /
    appController = TVApplicationController(context: appControllerContext, window: window, delegate: self)

    return true
}

}

**JavaScript/server code:**
App.onLaunch = function(options) {

// 1 var alert = createAlert ("Добро пожаловать в программирование на tvOS", "Это будет потрясающе!"); // оставляя второй параметр с пустой строкой navigationDocument.presentModal (alert); }

// 2
var createAlert = function(title, description) {

var alertString = `<?xml version="1.0" encoding="UTF-8" ?>
<document>
<alertTemplate>
<title>${title}</title>
<description>${description}</description>
<button><text>OK</text></button>
</alertTemplate>
</document>`

var parser = new DOMParser();
var alertDoc = parser.parseFromString(alertString, "application/xml");

return alertDoc

}

Запуск сервера:

python -m SimpleHTTPServer 9001

NB: для параметра Разрешить произвольные нагрузки установлено значение ДА

2 ответа

Решение

Devkit - это еще один компьютер в вашей сети, и вы не можете разместить сервер JSTVML в самом комплекте. Вам нужно разместить его на внешнем сервере (в данном случае ваша машина разработки - это внешний сервер).

Убедитесь, что ваш devkit и компьютер для разработки находятся в одной сети.

Настройте свой js-код для доступа к компьютеру, указав IP-адрес.

Пример: http://192.168.1.21:9001/js/application.js (делая вид, что 192.168.1.21 это IP-адрес вашего сервера разработки и 9001 это порт.)

Вы должны быть в состоянии проверить это, сначала зайдя в браузер (чтобы убедиться, что ваш компьютер для разработки возвращает .js файл правильно).

Как только вы узнаете, что "сервер" работает, настройте свой javascript для доступа к этому удаленному местоположению.

Надеюсь это поможет.

Или Вы можете использовать Node.js

Прежде чем ты начнешь. Вы должны проверить эту документацию https://developer.apple.com/library/prerelease/tvos/documentation/General/Conceptual/AppleTV_PG/YourFirstAppleTVApp.html

Во-вторых. Все что тебе нужно. Вы можете найти шаблон проекта ниже по этой ссылке. https://developer.apple.com/library/prerelease/tvos/samplecode/TVMLCatalog/Introduction/Intro.html

Node.js

  1. Скопируйте шаблон рабочего стола этого проекта.
  2. CMD + пробел | открытый терминал
  3. sudo npm установить http-сервер -g
  4. cd / Users / "имя пользователя" / Desktop / tvOS / TVMLCatalogUsingTVMLTemplates
  5. http-сервер -p 7575

Хорошо, теперь вы должны обновить файл AppDelegate.swift.

**static let TVBaseURL = "http://localhost:7575/"**
Другие вопросы по тегам