3

我想知道您是否可以根据 Pods 项目将链接到的 Target 的类型,在 podspec 中定义对静态库的依赖关系。如果目标项目本身是静态库,我需要能够不向静态库添加依赖项。

为什么我需要这个? 我为 cocos2d-iphone v3 构建了一个 podspec,并在个人宠物项目中使用它。当您将其用作可执行文件的依赖项时,它可以完美运行。不幸的是,我组织项目的方式效果不佳:它是一个多平台项目应用程序,包含两个用于 ios 和 osx 可执行文件的 xcode 项目。两者都链接到具有共享代码的静态库(另一个 xcode 项目)。我已经使 cocos2d 成为最后一个静态库的依赖项。不幸的是,cocos2d 依赖于 lib z,它也是静态的。由于您无法链接两个静态库,因此链接阶段失败。错误信息如下:

文件:-lz 不是目标文件(库中不允许)

删除这种依赖很容易,但我希望这个过程对最终用户来说更容易。

我解决此问题的方法是在 podspec 中添加条件,因此仅当项目不是静态库时才添加 lib z。我想这可以通过 pre_install 钩子来完成,但 cocoapods 团队不鼓励他们这样做。

有没有其他方法可以做到这一点?

4

0 回答 0