【问题标题】:iPhone - Static libraries, purpose of "Copy Headers"?iPhone - 静态库,“复制标题”的目的?
【发布时间】:2012-04-10 23:38:53
【问题描述】:

我正在创建一个库,尽管通过打包我的所有代码并将所有头文件放在一个文件夹中然后压缩文件夹和静态库,它工作得非常好,我只是无法弄清楚Build Phases 下的“Copy Headers”部分。

我已阅读所有这些链接:

Using open source static libraries

Creating static libraries for iOS

How to create universal static libraries

Stackoverflow: copy headers: public vs private vs project

但是我仍然没有看到设置复制标头的意义,我意识到您可以在构建设置>打包下设置私有和公共路径,并且头文件将在构建后转到该文件夹​​。但这有什么意义?,这与不设置单个副本头文件有什么不同,而是简单地抓取 .a 文件,抓取我所有的头文件并将它们放在一个文件夹中?另外设置复制项目标头的目的是什么?因为它们根本不包含在目标中?。

【问题讨论】:

    标签: iphone xcode4.2 static-libraries header-files


    【解决方案1】:

    据我所知,将标题添加到“复制标题”阶段的“公共”部分与将它们复制到发布文件夹中完全相同。

    我使用它是为了方便,因为我使用运行脚本自动执行库打包过程(感谢this StackOverflow question如果你想提供通用库,你应该阅读它)。

    通过这样做,我只需将我的新公共标头添加到“复制标头”阶段的“公共”部分,以便使用这部分脚本将它们自动部署到我的发布文件夹中:

    #########
    #
    # Added: StackOverflow suggestion to also copy "include" files
    #    (untested, but should work OK)
    #
    if [ -d "${CURRENTCONFIG_DEVICE_DIR}/usr/local/include" ]
    then
    mkdir -p "${CREATING_UNIVERSAL_DIR}/headers"
    # * needs to be outside the double quotes?
    cp "${CURRENTCONFIG_DEVICE_DIR}/usr/local/include/"* "${CREATING_UNIVERSAL_DIR}/headers"
    fi
    

    我还注意到,归档时(产品 -> 归档)会将这些标头复制到包中,因此 Apple 的第一步可能是提供一种构建静态库的干净方法。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      在生成存档时,复制标头阶段现在可以工作吗? Apple 的文档表明该功能不起作用,他们建议改用 Copy Files 构建阶段。这在最近的 Xcode 版本中是否已修复? https://developer.apple.com/library/ios/#technotes/iOSStaticLibraries/Articles/creating.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-29
        • 2010-10-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多