2015-09-27 3 views
2

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

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 запуска с ошибкой: Error Domain = NSURLErrorDomain Code = -10 04 «Не удается подключиться к локальному хосту» UserInfo = {NSUnderlyingError = 0x137d2dee0 {Ошибка домена = kCFErrorDomainCFNetwork Code = -1004 «Не удалось подключиться к серверу». UserInfo = {. _kCFStreamErrorCodeKey = 61, _kCFStreamErrorDomainKey = 1, NSLocalizedDescription = Не удалось подключиться к серверу}}, NSErrorFailingURLStringKey = http://localhost:9001/js/application.js, _kCFStreamErrorDomainKey = 1, _kCFStreamErrorCodeKey = 61, NSLocalizedDescription = Не удается подключиться к локальному}

Swift Code: класс 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 вар предупреждение = createAlert ("Добро пожаловать в tvOS программирование", "Это будет Awesome!"); // оставляя второй параметр с пустой строкой 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: Разрешить произвольном Нагрузки установлен в YES

ответ

3

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

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

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

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

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

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

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

+0

Это работает! @Jason. Большое спасибо за Вашу помощь. – decipher21

+0

Возможно ли использовать файлы JS/Template из AppleTV непосредственно вместо внешнего сервера? –

+0

Я не уверен - если мы сможем «eval» локальный ресурс, это возможно. Тем не менее, я не думаю, что вы получите преимущества удаленного хостинга, такие как простые обновления, потому что вы можете обойти процесс проверки AppStore. –

0

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

Перед тем, как начать. вы должны проверить эту документацию https://developer.apple.com/library/prerelease/tvos/documentation/General/Conceptual/AppleTV_PG/YourFirstAppleTVApp.html#//apple_ref/doc/uid/TP40015241-CH3-SW1

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

Node.js

  1. Копировать шаблон для рабочего проекта.
  2. cmd + space | открыт терминал
  3. Судо НПМ установить HTTP-сервер -g
  4. кд/Users/"имя_пользователя"/Desktop/tvOS/TVMLCatalogUsingTVMLTemplates
  5. HTTP-сервер -p 7575

ОК Теперь вы должны обновить AppDelegate .swift.

**static let TVBaseURL = "http://localhost:7575/"** 
Смежные вопросы