XCode中的标题搜索路径

我正在重构我在XCode中生成的代码,以便可以将一定数量的静态库分发给我的合作伙伴。

按照Apple教程中的建议使用静态库时,我没有任何问题,他们展示了如何将静态库用作使用库的项目的子项目。

但是,在新项目中使用生成的目标文件(.a)和相应的头文件(.h)时遇到问题。

假设我有一个库lib.a ,头文件为f1.h 我要做的就是创建一个新的文件夹F新项目,并复制到里面Flib.a文件和文件夹includef1.h

- 项目

storyboard.storyboard     
/project
 /images.xcassets
 /Supporfing Files
 ...
 /libs
  lib.a
  /include
    /lib
      f1.h

我有这些问题:

  • 头文件可以通过#import f1.h找到,而不能通过#import lib/f1.h

  • 如果我直接在故事板中使用在静态库中实现的视图控制器,则应用程序将失败,但是如果我创建了一个新的ViewController,并将其扩展到lib中,并在故事板中使用后者,则一切正常。

  • 在应用程序中使用静态库不应该这么困难,所以我显然做错了什么。 你有任何工作流程和设置建议?

    谢谢。


    如果您没有相应的Xcode静态库项目和源代码,则可以按如下方式使用头文件和二进制静态归档文件:

    你的文件夹结构应该是这样的:

    $(LIBRARIES)/release-iphoneos
        libA.a
        libF.a
        /include
            /A
                a1.h
            /F
                f1.h
    

    发布配置(或所有其他)的标题搜索路径应包含此路径:

    $(LIBRARIES)/release-iphoneos/include

    您的iOS搜索路径(不是模拟器)应包含

    $(LIBRARIES)/release-iphoneos

    其中libA.alibF.a是包含armv7,armv7s和arm64的通用二进制文件。

    您也可以为Simulator设置一个库:只需获取Simulator的二进制文件(i386或可能的通用i386 + x86_64)并相应地设置库和页眉搜索路径。 (请注意,您可以在Build Settings编辑器中明确地为每个配置和体系结构设置标题和库搜索路径)。

    您可以按如下方式导入标题:

    #import <F/f1.h>

    除此以外

    如果您有Xcode静态库项目(和源代码),只需按照官方文档中的说明使用和构建一个静态库。

    链接地址: http://www.djcxy.com/p/42641.html

    上一篇: Header search path in XCode

    下一篇: Header search paths with relative path