Ios 你能用条件依赖关系制作一个Podspec吗?

Ios 你能用条件依赖关系制作一个Podspec吗?,ios,macos,cocoapods,podspec,Ios,Macos,Cocoapods,Podspec,我想知道您是否可以根据Pods项目要链接到的目标类型,在podspec中定义对静态库的依赖关系。 如果目标项目本身是静态库,我需要能够不向静态库添加依赖项 为什么我需要这个? 并将其用于个人宠物项目。当您将它用作可执行文件的依赖项时,它可以完美地工作。不幸的是,它没有像我组织我的项目那样运作良好: 这是一个多平台的项目应用程序,包含两个用于ios和osx可执行文件的xcode项目。两者都链接到带有共享代码的静态库(另一个xcode项目)。我已经将cocos2d作为最后一个静态库的依赖项。 不幸的

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

为什么我需要这个? 并将其用于个人宠物项目。当您将它用作可执行文件的依赖项时,它可以完美地工作。不幸的是,它没有像我组织我的项目那样运作良好: 这是一个多平台的项目应用程序,包含两个用于ios和osx可执行文件的xcode项目。两者都链接到带有共享代码的静态库(另一个xcode项目)。我已经将cocos2d作为最后一个静态库的依赖项。 不幸的是,cocos2d对libz有依赖关系,libz也是静态的。由于无法链接两个静态库,链接阶段将失败。错误消息如下所示:

文件:-lz不是对象文件(库中不允许)

删除这种依赖关系很容易,但我更希望最终用户能够更轻松地完成这个过程

我解决这个问题的方法是在podspec中添加一个条件,这样只有当项目不是静态库时才添加libz。我想这可以通过预安装挂钩来实现,但cocoapods团队不鼓励这样做


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

我不理解“由于无法链接两个静态库,链接阶段失败”。什么意思?Pods项目文件被编译为一个静态库,依赖于libz。我的SharedCode库也被编译为静态库,当链接到Pods库时,它会因此失败。很抱歉,我无法提供更准确的错误消息,但我目前正在工作。@特洛伊木马程序我已经用我得到的错误更新了答案