【问题标题】:Cocoa Touch Framework with third-party static libraries and frameworks带有第三方静态库和框架的 Cocoa Touch Framework
【发布时间】:2016-02-12 20:32:00
【问题描述】:

我正在开发一个 Cocoa Touch 框架,它使用了几个第三方静态库和框架。对于其中一些,我有一个源代码。对于其他人,我不是。 问题是当使用我的框架的人想要使用相同的第三方静态库和框架时,他会遇到如下控制台日志:

Class <ClassName> is implemented in both <Path to my framework> and <Path to my app>. One of the two will be used. Which one is undefined.

我的框架是用 Objective-C 编写的。

如何将第三方库和框架完全隐藏在我自己的动态框架中,让使用我的框架的开发者也可以使用相同的第三方静态库和框架而不会发生任何冲突?

【问题讨论】:

    标签: ios objective-c xcode cocoa-touch frameworks


    【解决方案1】:

    您在日志中看到的错误是您为框架的目标和应用程序的目标编译第三方库的源文件的结果。您很可能会在 Compile Sources 构建阶段看到两个目标的源文件。

    要解决此问题,请从应用程序的 Compile Sources 构建阶段删除文件,因为没有必要将它们放在那里。没有必要为您的应用程序链接/编译已经链接/编译到您的框架中的库。

    【讨论】:

    • 我新建了一个动态框架,里面有第三方静态框架。之后,我创建了一个新的 XCode 项目并将我的动态框架添加到其中。一切正常。之后,我向这个项目添加了相同的第三方静态框架,我看到了有关重复类的控制台日志。我没有使用源文件,我使用的是已经编译好的框架
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多