【问题标题】:To output only a single .a static library in a project with cocoapods dependencies在具有 cocoapods 依赖项的项目中仅输出单个 .a 静态库
【发布时间】:2016-03-09 14:19:09
【问题描述】:

我正在尝试构建一个静态库,该库具有在 Podfile 中指定的不同依赖项(例如 AFNetworking)。并且该项目有一个静态库目标,它将生成一个静态库(调用 libMyProject.a)供我们的客户使用。我希望所有 cocoapods 依赖项都包含在最终的静态库中(调用 libMyProject.a)。但是每一个cocoapods的依赖都会产生一个.a文件,我怎样才能把它们一起构建,并且只提供给我们的客户一个库使用。

【问题讨论】:

    标签: ios objective-c dependencies static-libraries cocoapods


    【解决方案1】:

    一旦您创建了包含其他库的静态库,您就有效地绕过了 Cocoapods 管理依赖项的机制。你确定这是你想要做的吗?

    也就是说,鉴于您的静态库,您只需将其放在可访问的位置,以便 Cocoapods 可以下载它,并在您的 pod 文件中包含一个 pod 声明。

    在您的 podfile 中,您还可以声明要从给定库安装的版本。例如,要指定 SomeLibrarySDK 的 4.0 版本,您可以说:

    pod 'SomeLibrarySDK', '~>4.0'

    效果是只有 SomeLibrary SDK 4.0 版会被下载并安装到您的项目中,即使在较新版本发布后也是如此。

    【讨论】:

    • 我不想修改外面的第三个库。
    • 我明白了。您不需要自己打包第三方库,以防止它们被修改。相反,在您的 podfile 中,您可以指定您将从给定库中使用的版本,并且 Cocoapods 不会安装最新版本。
    • 我在答案中举了一个例子。
    • 我想你没明白。如果我使用 SomeLibrarySDK,那么用户可以获取源代码并修改代码以获取我的静态库中的信息。
    • 我明白了。所以在这种情况下,我的第一个建议适用——你将只通过 Cocoapods 应用一个依赖项,这是你自己的无所不包的静态库。您将需要使用一个与您的库相对应的依赖声明。
    猜你喜欢
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多