代码之家  ›  专栏  ›  技术社区  ›  drekka

包装iphone/ipad静态库的最佳方式是什么?

  •  3
  • drekka  · 技术社区  · 16 年前

    我有几个静态的电话/ipad库正在开发中。我要找的问题是最好的方法来包装图书馆。我的目标是使在其他项目中使用这些库变得容易,并在构建中包含正确的库,同时将问题降到最低。

    为了使它更有趣,我目前为每个库构建了4个版本,如下所示

    • ARMV6/ARMV7版本(设备)
    • i386发布(模拟器)
    • ARMV6/ARMV7调试(设备)
    • i386调试(模拟器)

    发布版本和调试版本之间的区别在于调试版本包含许多nslog(…)代码,这些代码使人们能够看到内部发生的情况,以帮助调试。

    当前,当我构建整个项目时,我会将库排列为两个目录,如下所示:

    release
        lib-device.a
        lib-simulator.a
    debug
        lib-device.a
        lib-simulator.a
    

    这可以正常工作,除了当包含在项目中时,这两个路径都被添加到库搜索路径中,并且将目标从一个切换到另一个是一种痛苦。或者我有两个目标。

    我正在考虑的另一种选择是这样更改目录:

    release
        device
            lib.a
        simulator
            lib.a
    debug
        device
            lib.a
        simulator
            lib.a
    

    在使用xcode is时,似乎所有xcode都使用项目的lbrary引用来获取库文件的名称,然后在库路径中查找。因此,通过使用当前构建的类型和目标设备参数化库路径,我可以有效地自动切换。

    你们觉得呢?有更好的办法吗?

    CIAO 德里克

    2 回复  |  直到 16 年前
        1
  •  3
  •   IlDan    15 年前

    前段时间我写了一篇文章:

    Managing static versioned libraries in OS X

    基本思想是构建一个包含不同库版本的目录树并在它们之间进行切换,但是也许您可以根据自己的问题调整这个思想。

        2
  •  0
  •   drekka    16 年前

    经过反复的尝试,我现在正在构建静态框架。这让生活变得更轻松。

    现在我已经提出了一组脚本,为我执行一组类似于maven构建的函数。他们清理、编译、记录和打包api。