相关疑难解决方法(0)

在Objective-C中运行时检测并使用可选的外部C库

我正在构建一个iPhone开发人员可以在他们的项目中包含的SDK.它以编译的".a"形式提供,没有源代码.我们称我的SDK为"AAA".

除了使用AAA之外,他的项目中的客户(我们称之为"BBB")也可以使用名为"CCC"的第三方库 - 它也是预编译的,闭源的.我不卖CCC,这是一家不同的公司.

我的SDK,AAA,可以选择使用CCC来改进产品,使用这些第三方功能.例如,假设CCC是用于加密某些内容的安全SDK.AAA不需要CCC,但如果客户选择在其项目中包含CCC,则会更安全.

现在这里有一个特别棘手的部分 - CCC库,是纯C代码,由C Structs和C函数组成 - 没有任何面向对象的东西.

问题是:

  • 如何编译我的AAA SDK以使用来自CCC的函数/结构,而不在我的项目中包含CCC(不合法允许,并且不想跟上版本更新).
  • 如何检测客户是否在其项目中具有CCC,仅在可用时使用这些额外功能?

c objective-c late-binding static-libraries ios

12
推荐指数
1
解决办法
1606
查看次数

标签 统计

c ×1

ios ×1

late-binding ×1

objective-c ×1

static-libraries ×1