从linux命令行编译IOS程序

我想从Linuxterminal(命令行)编译我的IOS应用程序….是否有可能这样做,如果是的话,那么如何?

是的,这是可能的。

至少你需要:

  1. 汇编程序和链接器:从苹果开源的cctools和ld64。
  2. 编译器:Clang / LLVM
  3. SDK,包括标题和库。
  4. 实用程序:如ldid codesign工具。

第1步:编译器

强烈推荐和测试Clang / llvm> = 3.2。

如果你想从头开始构建clang / llvm,请参考这个链接为你的linux发行版建立一个svn版本。

如果您的发行版已经提供了clang / llvm包,请确保它是3.2版或更高版本。 较低版本可能会正常工作,但未经测试。

对于Ubuntu 13.04和更高版本,已经在repos中提供了clang / llvm,请运行:

$sudo apt-get install gcc g++ clang libclang-dev uuid-dev libssl-dev libpng12-dev libicu-dev bison flex libsqlite3-dev 

要安装一些开发包,应该自动安装与llvm / llvm-dev相关的其他开发包。

第2步:汇编器和链接器

最新的cctools-855和ld64-236.3已经从Apple开源移植到了linux。 移植过程有点复杂,也有很多修改为linux的代码,让我们跳过它。

请查看以下代码:

 svn checkout http://ios-toolchain-based-on-clang-for-linux.googlecode.com/svn/trunk/cctools-porting 

建立它:

 $ sed -i 's/proz -k=20 --no-curses/wget/g' cctools-ld64.sh $ ./cctools-ld64.sh $ cd cctools-855-ld64-236.3 $ $ ./configure --target=arm-apple-darwin11 --prefix=/usr $ make $ make install 

对于Ubuntu 13.04,由于clang / llvm 3.2包使用自定义的库/头文件路径。 在运行configure之前请先设置CFLAGS和CXXFLAGS。

 $export CFLAGS="-I/usr/include/llvm-c-3.2" $export CXXFLAGS="-I/usr/include/llvm-c-3.2" 

第3步:iPhoneOS SDK。

下载部分提供了从xcode中提取的支持ARC的旧iPhone SDK。 你可以直接下载并解压到/ usr / share

对于iOS 4.2: https : //ios-toolchain-based-on-clang-for-linux.googlecode.com/files/iPhoneOS4.2.sdk.tar.xz

对于iOS 5.0: https : //ios-toolchain-based-on-clang-for-linux.googlecode.com/files/iPhoneOS5.0.sdk.tar.xz

对于iOS 6.0: https : //ios-toolchain-based-on-clang-for-linux.googlecode.com/files/iPhoneOS6.0.sdk.tar.xz

对于其他iOS版本,您可能需要按照以下步骤为自己获取SDK。

第4步:公用事业

iphonesdk-utils是iOS开发的实用程序集合,提供以下实用程序:

注意:(其中一些是从互联网上收集并进行了一些修改)

ldid:codesign工具,支持armv7 / armv7s以及其他版本的更改。 链接完成后会被ld64引用。 ios-clang-wrapper:自动查找SDK并构建正确的编译参数。 ios-switchsdk:当存在多个版本的SDK时切换sdk。 ios-pngcrush:png crush / de-crush工具,就像苹果的pngcrush一样。 ios-createProject:项目模板ios-genLocalization:基于clang lexer的iOS应用本地化工具。 ios-plutil:plist编译器/反编译器。 ios-xcbuild:将xcode项目转换为makefile,直接在linux下构建xcode项目。 从https://ios-toolchain-based-on-clang-for-linux.googlecode.com/files/iphonesdk-utils-2.0.tar.gz下载源码包

构建并安装它:

 $./configure --prefix=/usr $make $make install 

建立应用程序

现在你可以建立和安装你的项目,只是做:

 $cd ProjectDir $make $make install IPHONE_IP=<your own device IP 

完整的信息,你可以在这里找到 – https://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en

Barjomet给出的上述解决方案如果不是特立独行的话是正确的,但是如果是Maverics则是解决方案:

1)安装适当的命令行工具2)建立:a)xcodebuild -list -project .xcodeproj b)-xcodebuild -scheme build

有关详细参考,请参阅以下链接:

https://developer.apple.com/library/ios/technotes/tn2339/_index.html