首页 > 解决方案 > NativeScript - 由于 tns-ios 平台不受支持,apk 构建失败?

问题描述

我对 NativeScript 有点陌生,所以如果这个答案很明显,我很抱歉,但我有点困惑。我开始在 Windows PC 上为 android 构建应用程序。构建 apk 文件或在模拟器中运行它没有问题。

我最终将相同的代码转移到了 mac,这样我就可以更新应用程序的 ios 端,并构建一个 ipa 并在 iPhone 模拟器中运行它。这一切都有效。

现在,我将使用更新的 IOS 代码将相同的代码带回 PC,但运行时tns build android出现以下错误:

npm ERR! notsup Unsupported platform for tns-ios@2.0.0: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! notsup Valid OS:    darwin
npm ERR! notsup Valid Arch:  any
npm ERR! notsup Actual OS:   win32
npm ERR! notsup Actual Arch: x64

如果我故意(并且仅)尝试在 Windows 中构建 apk 文件,为什么 NativeScript 会强迫我在 Mac 上执行此操作?似乎我现在转移到 Mac 的事实迫使我留在 Mac 上?

除了维护两个代码库之外,有没有办法让 NativeScript 在编译 apk 时忽略 IOS 内容?我觉得有些不对劲。我删除了目录platforms node_moduleshooks尝试重建,但我不断收到同样的错误。如果我将代码恢复到将其移至 mac 之前的状态,我可以在 windows 中成功编译 APK 文件。

我在两者之间做的唯一一件事就是添加 firebase 云消息传递——在我迁移到 mac 之前,它实际上存在于 android 版本中,还有一些图像。我想也许火力基地可能会干扰,但我开始using_iosfalsefirebase.nativescript.json但这也没有做任何事情。

我也尝试过tns platform remove ios,但显然它甚至没有添加到 PC 端,这是有道理的,因为你必须有一个 mac 才能添加它。因此,为什么我要为此挠头。

标签: androidiosnativescript

解决方案


我不知道 package.json 中的 tns-ios 版本如何/何时/为什么是 2.0.0,但将其更新到 6.5.2 解决了这个问题。


推荐阅读