我以前在某些应用程序中遇到过此问题(N 4.1)。 现在我正在做另一个应用程序,并且我遇到了同样的问题: 首先,我正在准备构建:
tns build ios --for-device --release --provision MY_Provision
Nativescript正在构建,因此接下来我要在XCode中打开它,并进行一些改动,例如版本号等。 最后,我正在执行“存档”并尝试验证此存档。 结果是错误,在以前用N 4.1编写的应用程序中,我具有相同的功能,但使用另一个插件,现在验证抛出:无效的构建结构-二进制app / rns_modules.fstevents.lib / binding / Release / FILE NAME。 关于此文件夹的许多错误。 因此,我刚刚删除了该目录,并进行了另一个归档和验证-应用程序通过了验证。
所以,我的问题是-我在tns_modules中需要这么多的插件吗? 还是更好的问题-有什么方法可以确定不需要什么? 或者,在构建应用程序时我做错了什么?似乎这里有大量的目录,我想知道是否有某种清理或其他方法?
目前,存储应用程序的唯一方法是先进行验证,检查阻止验证的内容,删除它,然后检查应用程序是否有效(:(),然后重试。 谢谢。
下方的附加文件夹阻止tns_modules内部的验证和目录数量。
pacakge.json:
答案 0 :(得分:3)
NativeScript CLI将在tns_modules中准备(即复制)在package.json的dependencies
部分中声明的所有软件包(及其依赖项)。所有devDependencies
及其依赖项都不会复制到本地Xcode / Android Studio项目中。
因此,仅用于构建应用程序所需的所有软件包都应安装为devDependencies。例如,这样的包是nativescript-dev-webpack
,nativescript-dev-typescript
等。
另外,您似乎已将NativeScript CLI安装为项目的依赖项。默认情况下,应全局安装,即npm i -g nativescript
。如果您省略了-g
标志,npm会将其安装为您项目的依赖项。
您可以尝试:
rm -rf platforms
npm un --save nativescript
检查package.json中其他名称为-dev
的其他软件包,并确保它们位于devDependencies
部分中。
之后运行tns build ios --forDevice
。