我正在开发一个相当简单的OS X应用程序,该应用程序使用几个第三方库(SoX和TwoLAME)进行一些音频转换。 TwoLAME依赖于libsndfile,而SoX依赖于sndfile以及许多其他库。
对于开发,我只是用Homebrew安装了两个库,它负责依赖,然后直接链接到它们(即在/ usr / local / Cellar / ...)。现在我已经准备好部署了,我需要找到一种方法来打包所有内容。
我知道Cocoa中的框架有点含糊不清(假的,动态的等等),但理想情况下我最终会得到一些类型的框架,我可以放入项目中,一切都会工作。
我已经阅读了关于框架的不同文档和教程的很多,并尝试了许多方法,但我似乎缺少一些核心概念,以便将所有这些结合起来。< / p>
我已经能够从那些工作的库中构建框架,在我从源代码编译的意义上,获取静态(.a)库并将其放在带有标题的“假”框架中,并且应用程序将与那些运行。但是,这些静态库仍然引用了我本地路径上的依赖项。因此,例如,如果我从Homebrew中卸载Lame,我框架中的SoX静态库将会失败。
我真的很难弄明白最好的方法干净地将所有这些库及其依赖项放到这个应用程序中。我从头开始构建动态Cocoa库的教程很难用这些预先存在的库的源代码。另一个选项我认为它构建了dylibs然后使用install_name_tool
将路径更改为相对只是通过应用程序发送所有内容并尝试匹配所有内容。
我必须有一些更好的方式让我失望,并且真的很感激任何帮助。