npm发布模块包括iOS框架。当npm安装该模块时,iOS框架已损坏

时间:2015-03-31 20:08:53

标签: ios frameworks npm ios-frameworks

这是最奇怪的问题,只发生在npm模块中的一个iOS框架上(我注意到)。

点击框架(在npm发布之前),我看到:

frameworkname.framework
|
- Headers (dir)
- frameworkname
- Versions (dir)
    |
    -A (dir)
    -Current (dir)

我将此模块发布到私人npm服务器。当我安装npm模块时,框架已损坏。我明白了:

frameworkname.framework
|
- Headers (dir) MISSING
- frameworkname MISSING
- Versions (dir)
    |
    -A (dir)
    -Current (dir) MISSING

阅读http://www.raywenderlich.com/65964/create-a-framework-for-ios后,看起来丢失的文件是符号链接。有没有其他人见过这种行为?如何防止符号链接在npm过程中丢失?

1 个答案:

答案 0 :(得分:1)

丢失的文件是符号链接,不幸的是,npm不支持符号链接。作为解决方法,您可以将链接替换为其目标(并删除目标以防止重复)。

E.g。对于具有以下结构的框架FFF:

./FFF -> Versions/Current/FFF
./Headers -> Versions/Current/Headers
./Versions
./Versions/A
./Versions/A/FFF
./Versions/A/Headers
./Versions/Current -> A

您可以从框架目录中运行以下命令(在bash中):

framework=FFF && rm $framework Headers && mv Versions/A/{$framework,Headers} . && rm -rf Versions

将结构更改为:

./FFF
./Headers