node.js - VS 2015 TACO - 在 Xcode 8/iOS 10 上构建失败

标签 node.js visual-studio-2015 xcode8 visual-studio-cordova taco

以下是我遇到并修复的问题:

  1. 代码签名:下载 xcode8.js Hook 并将以下内容添加到 build.json,按照 http://www.dpogue.ca/articles/cordova-xcode8.html :

    "ios": {
        "debug": {
            "developmentTeam": "VZ4B5XSP9U"
        },
        "release": {
            "developmentTeam": "VZ4B5XSP9U",
            "codeSignIdentity": "iPhone Developer"
        }
    }
    
  2. 在我的 Mac 上,删除了 ~/.taco_home/node_modules/taco-remote-lib/2.2.1.../2.2.0文件夹,每https://github.com/Microsoft/remotebuild/issues/5 .

  3. 在我的 Mac 上,尝试卸载并重新安装 remotebuild 以及不同版本的 nodenpm(0.12.9 和 4.6 ,以及各自的 npm 版本)。

  4. 在 Visual Studio 中,尝试更改 objective-c ordova 版本:6.3.1、6.2、6.1.1,然后返回到 5.4.1。

无论我做什么,构建都会永远陷入extracted - 从上传的构建请求中提取的应用内容building - Updating platform

早些时候,当我尝试在 Mac 上的 Xcode 中打开 Xcode 项目时,它成功构建了应用程序并将其部署到设备上。然后我在使用 WebRTC(使用cordova-plugin-iosrtc)时遇到了问题,它给了我隐私侵犯异常。我尝试按照 App crashes with __CRASHING_DUE_TO_PRIVACY_VIOLATION__ when trying to access contacts 添加 cordova-custom-config 插件和适当的 Cocoa 键(NSCameraUsageDescriptionNSMicrophoneUsageDescription) ,然后它就完全停止工作了。

任何人都可以告诉我应该使用哪些组件的最新版本才能使其再次工作吗?一些消息来源建议在 Mac 上使用 Node 0.12.9,其他消息来源建议使用 0.12.7;大多数人声称,对于 Cordova >= 5.3.3,任何 Node 版本都应该足够,但是使用 Node 4.6 也不起作用。

预先感谢您的帮助!

更新:按照 Jordan 的建议执行 brew 更新等后,远程部署可以正常工作,但构建将项目的“常规”选项卡下的“主界面”设置设置为“NSMainNibFile~ipad”,这会导致应用程序在启动时崩溃,直到我在 Xcode 中打开项目并清除该字段,然后增量构建会创建一个正常运行的应用程序。

最佳答案

这是 Apache Cordova 6.3.1 的一个已知问题,对于 Visual Studio 工具,我们一直在致力于修复此问题。要暂时解决此问题,您需要执行以下步骤:

  • 添加developmentTeam属性(property)ios在项目的 build.json 中build设置文件(示例如下)。
  • 设置build.json文件的 codeSignIdentity属性为静态值 iPhone Developer .
  • 设置before_compile Hook 您的项目以复制 developmentTeam属性(property)进入项目的platforms/ios/cordova/build.xcconfig文件。

该项目的build.json文件应如下所示:

{ "ios": { "debug": { "developmentTeam": "DEVELOPMENT_TEAM_NAME" }, "release": { "developmentTeam": "DEVELOPMENT_TEAM_NAME", "codeSignIdentity": "iPhone Developer" } } }

为了简化流程,Darryl Pogue发布了sample hook这对项目的 build.xconfig 进行了必要的更改文件基于build.json如上所示的示例。要使用此 Hook ,请复制示例 xcode8.js文件到您项目的 hooks文件夹,然后修改项目的config.xml使用以下代码在编译步骤之前执行它:

<platform name="ios"> <hook type="before_compile" src="hooks/xcode8.js" /> </platform>

创建发行版本

此时,Cordova 构建过程开始工作,您可以运行、测试和调试您的应用程序。不幸的是,该应用程序未使用分发所需的正确开发证书进行签名。为了使用分发证书对它们进行签名,您需要按照以下中的说明创建应用程序的存档:Uploading Your App to iTunes Connect .

iOS 10

为 iOS 10 构建 Cordova 应用程序的开发人员可能会遇到以下错误:

Http 404: Error mounting developer disk image Http 500: No devices found to debug. Please ensure that a device is connected and awake and retry.

这是由于 Mac 开发环境需要更新多个模块造成的。要解决此问题,请在 Mac OS 上打开终端窗口并发出以下命令:

brew update && brew upgrade libimobiledevice --HEAD && brew upgrade ios-webkit-debug-proxy ideviceinstaller

关于node.js - VS 2015 TACO - 在 Xcode 8/iOS 10 上构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40091788/

相关文章:

git - Visual Studio 2015 : Git Diff Tool Window is empty

ios - 旋转后 Swift inputAccessoryView 未连接到键盘

javascript - 如何在lodash中删除数组中的对象

Node.js path.join 移除前导句点

c++ - OpenCV 错误 : Assertion failed using calcHist

C++ traits类检测成员函数: compiler error in MSVC 2015 RC

objective-c - 在Sprite Kit iOS 10 Xcode 8中,还有比这更好的播放环境声音的方法吗?

ios - 如何在 xcode 8 中创建没有开发者帐户的 ipa 文件

mysql - 错误 : ER_BAD_FIELD_ERROR: Unknown column 'asd123' in 'field list' in node js

angularjs - 在 Protractor 2.0 中,在 beforeAll 中调用 clear() 行为不当