我创建了一个新的TVML项目并启动了它。第一个错误是App Transport Security,我通过App Transport Security Settings -> Allow Arbitrary Loads -> YES
修复了
application func
然后我再次运行它,我收到了这个错误:
无法加载启动网址但错误:(null) appController(_:didFailWithError :)调用错误:错误 Domain = TVMLKitErrorDomain Code = 3"(null)"
项目似乎停在这里(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
}
}
):
http://MY-IP-ADDRESS-HERE:9001/
我尝试从" http://localhost:9001/"更改tvBaseURL到{{1}}
但这并没有改变任何事情。
导致此错误的原因是什么?如何解决?
答案 0 :(得分:2)
您应该使用端口号启动服务器
在终端中输入以下命令
ruby -run -ehttpd . -p9001
最后,您的 tvBaseURL 应该导航到这样的服务器文件夹
"http://yourLocalhost:9001/Downloads/TVMLCatalogUsingTVMLTemplates/Server/"
答案 1 :(得分:1)
我也面临同样的问题,我通过改变AppDelegate中的tvBaseURL
解决了这个问题static let tvBaseURL = "http://127.0.0.1:9001/Downloads/TVMLCatalogUsingTVMLTemplates/Server/"
如您所见 - 我必须显示Server文件夹的确切路径。如果你把它放到一些Web服务器上也可以。
希望它可以提供帮助!
答案 2 :(得分:1)
我刚遇到这个问题。您需要密切注意终端输出。
我知道了:
[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)
地址已在使用中-绑定(2)为0.0.0.0:9001
在这一点上,您必须选择其他端口号(如果您决定这样做,请确保服务器的端口和Xcode的项目端口匹配),或者通过ctrl + c
杀死以前的服务器,或者只是杀死它终端窗口。
还请注意,在某些Apple的示例项目中,ruby -run -ehttpd . -p9001
命令将在名为 Server 的文件夹中完成,而对于其他一些示例,则假设是在 App的主菜单中完成文件夹。只需查看README文件即可解决该问题。