【发布时间】:2009-12-10 01:36:07
【问题描述】:
(除了我们可能会使用框架或动态库这一事实之外,可能以下问题不是 iPhone 特定的。)
我正在为客户构建一个专有的 iPhone SDK,以与他们的 Web 后端集成。由于我们不想将源代码分发给客户,因此我们需要将 SDK 作为静态库分发。这一切都很好,我已经验证我可以将新的 iPhone 应用程序与库链接并将它们安装在设备上。
我担心我们的 SDK 所依赖的第三方库。例如,我们目前正在使用 HTTPRiot 和 Three20(确切的库可能会改变,但这不是重点)。我担心如果客户也在他们的应用程序中使用这些库中的任何一个(甚至可能是不同的版本),这可能会导致冲突。
这方面的最佳做法是什么?有没有办法从我们自己的静态库中排除依赖库的符号(在这种情况下,客户必须手动链接到我们的 SDK 以及 HTTPRiot 和 Three20)?还是有其他既定机制?
我试图在易用性和灵活性/兼容性之间取得平衡。理想情况下,客户只需将我们自己的 SDK 放入他们的项目中并进行最少数量的构建设置更改,但如果它使事情变得更加健壮,那么让客户单独链接多个库可能更有意义。或者我想我们可以分发多个版本的 SDK,无论是否包含第三方依赖项,以涵盖这两种情况。
我希望我的问题是有意义的...主要来自 Ruby 和 Java 背景,我已经很长时间不用处理编译库(传统意义上的)了...;)
【问题讨论】:
标签: iphone static linker dependencies