Xcode:如何正确构建静态库项目?

时间:2012-11-30 19:50:00

标签: objective-c xcode xamarin.ios

这个问题对于Xcode专业人员来说很容易,但对于MonoTouch开发人员来说似乎无法解决。 : - )

我正在使用Xcode 4.5,我想要定位iOS 5.1及以上版本以及iOS模拟器5.1及更高版本。

我在这里有一个库项目,它带有一个名为“DemoLib”的预构建二进制文件(没有扩展名,大小为11MB)。该库是Simulator和iOS 5.1+的胖库。 我可以毫无问题地使用该库。 但是,如果我自己尝试构建库,我最终得到一个“DemoLib.a”文件(请注意扩展名和30MB的大小)。如何获得相同的构建结果?与没有扩展名的文件相比,什么是.a文件? 我试图在Xcode中构建项目“for running”和“for archiving”。两者都产生相同的30MB .a文件。 我期待在Xcode中有一些下拉,其中可以选择“DEBUG”或“RELEASE”构建,后者可以创建较小的lib。

2 个答案:

答案 0 :(得分:3)

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

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

希望这有帮助! :)

答案 1 :(得分:0)

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

带有.a的文件是一个静态库,这意味着它不依赖于任何外部资源,它所需的所有代码都在其中编译。我认为没有扩展通常意味着动态库,这意味着它将取决于系统上存在的一些依赖关系。也许这就是.a如此大的原因。我认为Xcode默认会构建静态,因为iOS不允许使用动态库。

构建内容的下拉列表在您的方案中。命令+移+ LT;查看您的计划。在该方案中,您可以编辑每个建筑方法将使用的环境。