Visual Studio 2015远程iOS生成服务器设置-安全模式问题

Visual Studio 2015远程iOS生成服务器设置-安全模式问题,ios,cordova,visual-studio-cordova,Ios,Cordova,Visual Studio Cordova,我正在构建一个混合移动应用程序(Cordova),并尝试在iOS上运行我的构建 我已经按照本文中的步骤设置了连接的Mac,当我尝试在visual studio中构建代码时,我可以看到Mac终端正在响应 我的问题是,当我使用remotebuild--secure false启用远程生成服务器时,visual studio输出中会出现以下错误(请注意,终端正在响应visual studio的生成请求,但随后出现错误并失败): 无法建立到的非安全连接。验证生成服务器是否未在安全模式下运行 下面是Mac

我正在构建一个混合移动应用程序(Cordova),并尝试在iOS上运行我的构建

我已经按照本文中的步骤设置了连接的Mac,当我尝试在visual studio中构建代码时,我可以看到Mac终端正在响应

我的问题是,当我使用
remotebuild--secure false
启用远程生成服务器时,visual studio输出中会出现以下错误(请注意,终端正在响应visual studio的生成请求,但随后出现错误并失败):

无法建立到的非安全连接。验证生成服务器是否未在安全模式下运行

下面是Mac终端的活动和输出:

    Last login: Tue Aug 18 19:31:21 on ttys001
IBRAHIM-ALHUSSAINs-Mac-mini:~ IBRAHIMALHUSSAIN$ remotebuild --secure false
remotebuild
Copyright (C) 2014 Microsoft Corporation. All rights reserved.
1.0.1

Warning: No server modules selected. Defaulting to configuration "modules": {"taco-remote": { "mountPath": "cordova"} }
Build Retention initialized with baseBuildDir /Users/IBRAHIMALHUSSAIN/.taco_home/remote-builds/taco-remote/builds, maxBuildsToKeep 20
Initialized BuildManager with baseBuildDir /Users/IBRAHIMALHUSSAIN/.taco_home/remote-builds/taco-remote/builds; maxBuildsInQueue 10; deleteBuildsOnShutdown true; allowsEmulate true; nextBuildNumber 423
Remote build server listening on [http] port 3000
express deprecated req.host: Use req.hostname instead ../../usr/local/lib/node_modules/remotebuild/lib/server.js:257:81
GET /modules/taco-remote 200 14.494 ms - 7
New build request submitted:
/build/tasks?command=build&vcordova=4.3.0&cfg=debug&loglevel=warn
{ 'accept-language': 'en-US',
  host: '192.168.1.10:3000',
  connection: 'close',
  'transfer-encoding': 'chunked' }
POST /cordova/build/tasks?command=build&vcordova=4.3.0&cfg=debug&loglevel=warn - - ms - -
npm ERR! Darwin 14.3.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "taco-remote-multiplexer"
npm ERR! node v0.12.4
npm ERR! npm  v2.13.4
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! syscall getaddrinfo

npm ERR! network getaddrinfo ENOTFOUND registry.npmjs.org
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/IBRAHIMALHUSSAIN/.taco_home/node_modules/taco-remote-multiplexer/latest/npm-debug.log
我记得在某个地方读到,我应该启用一次安全构建,然后禁用它,以便初始化远程服务器安全配置。每当我尝试在安全构建模式下运行时,我都会遇到以下错误:

无法建立到的安全连接。验证生成服务器是否在安全模式下运行

我还尝试通过重新创建PIN、生成和重置证书来解决此问题


如何解决此问题?

可能是因为操作系统有沙盒系统

可能是因为操作系统有沙盒系统

从您包含的控制台输出来看,您的mac无法访问npm存储库:

npm ERR! network getaddrinfo ENOTFOUND registry.npmjs.org
说明

New build request submitted
表示visual studio已成功连接到remotebuild服务器,并已发送要生成的项目。作为构建项目的一部分,remotebuild动态地获取一些npm包,以确保它是经得起未来考验的,并且可以使用多个不同版本的Cordova

如果您不能或不愿意让您的mac看到npm存储库,那么可以提供您自己的替代函数来确定加载哪个包来实际构建项目

我强烈建议不要这样做,但以下是删除该功能的最简单方法:

  • 在可以访问npm的计算机上,“npm install taco remote lib”下载为remotebuild执行cordova构建的默认软件包,然后在该“npm install cordova@”中下载要使用的单个版本。打开taco remote lib/ios/iosBuild.js并替换

    TacoPackageLoader.lazyRequire(“cordova”,“cordova@”+cordovaVersion,buildInfo.loglevele).done(函数打包){ cordova=pkg

  • 并删除您删除的函数末尾的“},函数(err){[…]})”

  • 将整个taco remote lib文件夹复制到mac上,因为它现在是一个独立的实例,专门用于特定的cordova版本
  • 在“myRedirector.js”的某处创建一个新的js文件,并为其提供类似以下内容:
  • 创建一个如下所示的配置文件:
  • 通过运行“remotebuild--config path/to/the/config.json”启动remotebuild
  • 这应该使用自定义请求重定向程序启动remotebuild,该重定向程序使用自定义修改的taco remote lib包来生成所有请求


    这不符合VS为构建指定的cordova版本,因为这需要能够按需从NPM下载这些版本。

    从您包含的控制台输出中,您的mac似乎无法访问NPM存储库:

    npm ERR! network getaddrinfo ENOTFOUND registry.npmjs.org
    
    说明

    New build request submitted
    
    表示visual studio已成功连接到remotebuild服务器,并已发送要生成的项目。作为构建项目的一部分,remotebuild动态地获取一些npm包,以确保它是经得起未来考验的,并且可以使用多个不同版本的Cordova

    如果您不能或不愿意让您的mac看到npm存储库,那么可以提供您自己的替代函数来确定加载哪个包来实际构建项目

    我强烈建议不要这样做,但以下是删除该功能的最简单方法:

  • 在可以访问npm的计算机上,“npm install taco remote lib”下载为remotebuild执行cordova构建的默认软件包,然后在该“npm install cordova@”中下载要使用的单个版本。打开taco remote lib/ios/iosBuild.js并替换

    TacoPackageLoader.lazyRequire(“cordova”,“cordova@”+cordovaVersion,buildInfo.loglevele).done(函数打包){ cordova=pkg

  • 并删除您删除的函数末尾的“},函数(err){[…]})”

  • 将整个taco remote lib文件夹复制到mac上,因为它现在是一个独立的实例,专门用于特定的cordova版本
  • 在“myRedirector.js”的某处创建一个新的js文件,并为其提供类似以下内容:
  • 创建一个如下所示的配置文件:
  • 通过运行“remotebuild--config path/to/the/config.json”启动remotebuild
  • 这应该使用自定义请求重定向程序启动remotebuild,该重定向程序使用自定义修改的taco remote lib包来生成所有请求


    这将不尊重VS为构建指定的cordova版本,因为这需要能够根据需要从NPM下载这些版本。

    在我的情况下,我的mac名称中有“.”。一旦我删除了“'”,它就通过主机名连接了。

    在我的例子中,我的mac电脑名中有“'”。在我删除“'”后,它确实通过主机名连接。

    请提供更详细的答案。你指的是哪个操作系统?Mac还是Windows?如何检查和禁用沙箱系统?请提供更详细的答案。你指的是哪个操作系统?Mac还是Windows?如何检查和禁用沙箱系统?如果使用--secure false,请确保在Visu中将“安全模式”设置为false
    {
        "modules": {
            "taco-remote": {
                "requirePath": "taco-remote",
                "mountPath": "cordova",
                "redirector": "/path/to/myRedirector.js",
            }
        }
    }