你应该怎么做(和使用)的iPhone静态库(How SHOULD you make (and use

2019-07-23 11:57发布

AFAICS,任何严重的iPhone开发人员必须和定期使用静态库,否则谴责自己马车,难以维持,笨拙的项目。 但苹果拒绝提供关于这一进程的任何官方的文档(只是循环引用:“不这样做静态,使用动态......我们不允许在iPhone上的动态,使用静态!”)

我花了超过6个月,该试验; 我已经部署在App Store上的多个iPhone应用程序的静态库; 我想出了基于通用二进制代码...当OS 3.x的出来(笑),其立即爆发一个不错的,工作体系; ......我现在有与iPhone OS的所有版本的新系统。

我已阅读关于这一主题在计算器上的相关问题,他们要么不远远不够的静态库的完全使用,或要求您使用一个或多个外部命令行工具,因此IDE的爆发。 什么是在一个IDE中的点,如果你不能得到一切内部工作?

我已经找到这样的作品,完全内部的Xcode的方式。 但我真的很紧张,根据以往的经验...

我很想是否这个时候一些反馈 - 终于来了! - 通过试验和错误,我实际上是正确的。

或者...... 甚至更好 ......我很想找到谁都会告诉我你究竟是如何“应该”去做,苹果是如何预计/想/需要你去做。

该过程中,我有足够令人费解的,我已经写它分为两个博客文章:

  1. 第一篇: 基本假设和问题
  2. 第二篇文章: 方法论,并一步一步的过程

请注意:有很多事情我不知道iPhone和Cocoa编程,我应该; 我知道有很多不对的我在做什么,但我宁愿分享,并可能在比保持安静得到大喊,从来没有学什么我搞砸了。

思考? 改进? 甚至......我是一个十足的傻瓜,还有的是,我傻到不要在我的所有搜索发现一个非常非常容易的路线?

提前致谢...

Answer 1:

您可能会发现本教程从别人谁最近做这个有用:

http://kyleroucis.com/Kyle_Roucis/Blog/Entries/2009/10/7_Custom_Embedded_Static_Library_for_iPhone.html



Answer 2:

这是我错过了,因为我还没有包括在我自己的静态库的任何类别:

您必须包括连接标志“-ObjC”如果你使用类别,否则你的静态库将是“失踪”的一些零零碎碎的,当你尝试在项目中使用它。

我听说有人把这个标志在6米不同的地方,但是这似乎为我的工作之一是:

在库项目(不应用项目,奇怪的),去构建设置,并添加一个用户定义的设置:

OTHER_CFLAGS = -DObjC

...虽然我相信这应该是相反:

其它链接器标记= -ObjC

(NB:这具有自动地设置OTHER_CFLAGS的GUI内的副作用)

另外,我听说有很多人声称它应当在申请项目中去,但他们都嵌入他们的项目一起,没有编制真实静态库,所以我怀疑他们只是很幸运。

另...

的XCode / iPhone OS 3.0似乎有一个bug,你还需要-all_load标记(使用完全按照上面的-ObjC标志)。 有关于使用-all_load标记的3.0 StackOverflow的一些问题,所以看看他们的详细信息 - 我真的不与经验。



Answer 3:

和一些有用的建议,在如何打包结果方面:

您可以从iPhone的静态库引用XIB文件?

注:有趣的是,该评论的作者说,他们无法得到束与静态库的工作。 我也试过了,当我发现框架是行不通的,但发现的Xcode / iPhone SDK是硬编码,以防止你即使使用束以这种方式:(。我想这可能只是我的错误,但如果别人已经尝试和失败过,那么也许不是。



Answer 4:

对不起,迟到了比赛,但我最近有一些帮助建立一个静态库,使人们可以用我的数据结构库在iPhone OS。 见http://cocoaheads.byu.edu/code/CHDataStructures并从Subversion退房看到第一手如何我创建了一个静态库。 我没有去创造一个模拟的版本的麻烦,但它在设备上工作,是不是非常复杂的。



文章来源: How SHOULD you make (and use) static libraries on the iPhone