AFAICS,任何严重的iPhone开发人员必须和定期使用静态库,否则谴责自己马车,难以维持,笨拙的项目。 但苹果拒绝提供关于这一进程的任何官方的文档(只是循环引用:“不这样做静态,使用动态......我们不允许在iPhone上的动态,使用静态!”)
我花了超过6个月,该试验; 我已经部署在App Store上的多个iPhone应用程序的静态库; 我想出了基于通用二进制代码...当OS 3.x的出来(笑),其立即爆发一个不错的,工作体系; ......我现在有与iPhone OS的所有版本的新系统。
我已阅读关于这一主题在计算器上的相关问题,他们要么不远远不够的静态库的完全使用,或要求您使用一个或多个外部命令行工具,因此IDE的爆发。 什么是在一个IDE中的点,如果你不能得到一切内部工作?
我想我已经找到这样的作品,完全内部的Xcode的方式。 但我真的很紧张,根据以往的经验...
我很想是否这个时候一些反馈 - 终于来了! - 通过试验和错误,我实际上是正确的。
或者...... 甚至更好 ......我很想找到谁都会告诉我你究竟是如何“应该”去做,苹果是如何预计/想/需要你去做。
该过程中,我有足够令人费解的,我已经写它分为两个博客文章:
- 第一篇: 基本假设和问题
- 第二篇文章: 方法论,并一步一步的过程
请注意:有很多事情我不知道iPhone和Cocoa编程,我应该; 我知道有很多不对的我在做什么,但我宁愿分享,并可能在比保持安静得到大喊,从来没有学什么我搞砸了。
思考? 改进? 甚至......我是一个十足的傻瓜,还有的是,我傻到不要在我的所有搜索发现一个非常非常容易的路线?
提前致谢...
您可能会发现本教程从别人谁最近做这个有用:
http://kyleroucis.com/Kyle_Roucis/Blog/Entries/2009/10/7_Custom_Embedded_Static_Library_for_iPhone.html
这是我错过了,因为我还没有包括在我自己的静态库的任何类别:
您必须包括连接标志“-ObjC”如果你使用类别,否则你的静态库将是“失踪”的一些零零碎碎的,当你尝试在项目中使用它。
我听说有人把这个标志在6米不同的地方,但是这似乎为我的工作之一是:
在库项目(不应用项目,奇怪的),去构建设置,并添加一个用户定义的设置:
OTHER_CFLAGS = -DObjC
...虽然我相信这应该是相反:
其它链接器标记= -ObjC
(NB:这具有自动地设置OTHER_CFLAGS的GUI内的副作用)
另外,我听说有很多人声称它应当在申请项目中去,但他们都嵌入他们的项目一起,没有编制真实静态库,所以我怀疑他们只是很幸运。
另...
的XCode / iPhone OS 3.0似乎有一个bug,你还需要-all_load标记(使用完全按照上面的-ObjC标志)。 有关于使用-all_load标记的3.0 StackOverflow的一些问题,所以看看他们的详细信息 - 我真的不与经验。
和一些有用的建议,在如何打包结果方面:
您可以从iPhone的静态库引用XIB文件?
注:有趣的是,该评论的作者说,他们无法得到束与静态库的工作。 我也试过了,当我发现框架是行不通的,但发现的Xcode / iPhone SDK是硬编码,以防止你即使使用束以这种方式:(。我想这可能只是我的错误,但如果别人已经尝试和失败过,那么也许不是。
对不起,迟到了比赛,但我最近有一些帮助建立一个静态库,使人们可以用我的数据结构库在iPhone OS。 见http://cocoaheads.byu.edu/code/CHDataStructures并从Subversion退房看到第一手如何我创建了一个静态库。 我没有去创造一个模拟的版本的麻烦,但它在设备上工作,是不是非常复杂的。