2012-11-30 53 views
7

这个问题对于Xcode专业人员来说很容易,但对于MonoTouch开发人员来说,这似乎无法解决。 :-)Xcode:如何正确构建静态库项目?

我正在使用Xcode 4.5,我想要将iOS 5.1及更高版本和iOS Simulator 5.1及更高版本作为目标。

我在这里有一个库项目,它带有一个名为“DemoLib”的预建二进制文件(没有扩展名,大小为11MB)。该库是模拟器和iOS 5.1+的胖库。 我可以毫无问题地使用该库。 但是,如果我自己尝试构建库,则最终会生成一个“DemoLib.a”文件(注意扩展名和30MB的大小)。我怎样才能获得相同的构建结果?与没有扩展名的文件相比,.a文件是什么? 我试图在Xcode中构建“运行”和“归档”项目。两者都导致相同的30MB .a文件。 我期待在Xcode中可以选择“DEBUG”或“RELEASE”构建的下拉列表,后者可以创建更小的库。

+0

如果有一篇关于如何从MonoTouch用户的角度来做到这一点的文章将是很好的。 – jonathanpeppers

+0

我对MonoTouch一无所知,但我曾经作为Xcode的新用户解决了类似的问题。看起来你想在编译时创建一个静态链接,而不在构建中包含二进制文件。请指出您使用的Xcode版本,因为答案各不相同。 –

+0

@jonathanpeppers是的,它会的。对于Xcode怪胎来说,经历重大的痛苦似乎很自然,请参阅此项目:https://github.com/jverkoey/iOS-Framework - 对于不习惯Xcode的人来说,似乎几乎不可能理解为什么它是如此困难。 – Krumelur

回答

0

它是否带有Makefile?创建一个新目标,将目标的构建设置设置为Makefile中的内容,然后将项目设置为依赖于新目标。

带有.a的文件是一个静态库,这意味着它不依赖于外部,它需要的所有代码都在内部编译。我认为没有任何扩展通常意味着动态库,这意味着它将取决于系统中存在的一些依赖关系来链接。也许这就是为什么.a更大。我认为Xcode默认会建立静态,因为iOS不允许使用动态库。

构建内容的下拉列表位于您的方案中。 Command + shift + <查看您的方案。在该方案中,您可以编辑每种建筑方法将使用的环境。

3

当然,如果没有看到框架的项目文件,我永远不会说。话虽如此,这里有一个很好的指导来创建和编译iOS框架:https://github.com/jverkoey/iOS-Framework

使用上述指南,您应该能够从头开始重新创建您的框架项目,添加您拥有的文件并正确编译它。

希望这会有所帮助! :)

+0

该指南非常有帮助,谢谢! –

相关问题