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

lde*_*uca 7 frameworks ios npm ios-frameworks

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

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

frameworkname.framework
|
- Headers (dir)
- frameworkname
- Versions (dir)
    |
    -A (dir)
    -Current (dir)
Run Code Online (Sandbox Code Playgroud)

我将此模块发布到私有npm服务器.当我安装npm模块时,框架已损坏.我知道了:

frameworkname.framework
|
- Headers (dir) MISSING
- frameworkname MISSING
- Versions (dir)
    |
    -A (dir)
    -Current (dir) MISSING
Run Code Online (Sandbox Code Playgroud)

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

sil*_*vsk 1

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

例如,对于具有以下结构的框架 FFF:

./FFF -> Versions/Current/FFF
./Headers -> Versions/Current/Headers
./Versions
./Versions/A
./Versions/A/FFF
./Versions/A/Headers
./Versions/Current -> A
Run Code Online (Sandbox Code Playgroud)

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

framework=FFF && rm $framework Headers && mv Versions/A/{$framework,Headers} . && rm -rf Versions
Run Code Online (Sandbox Code Playgroud)

将结构更改为:

./FFF
./Headers
Run Code Online (Sandbox Code Playgroud)