从 linux 命令行编译 IOS 程序

Compile IOS program from linux commandline

我想从 linux 终端(命令行)编译我的 IOS 应用程序.... 是否可以这样做,如果可以,那么怎么做?

是的,有可能。

至少你需要:

  1. 汇编器和链接器:来自苹果开源的 cctools 和 ld64。
  2. 编译器:Clang/LLVM
  3. SDK,包括 headers 和库。
  4. 实用程序:例如 ldid 协同设计工具。

第一步:编译器

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

如果您想从头开始构建 clang/llvm,请参考此 link 为您的 linux 发行版构建 svn 版本。

如果你的发行版已经提供了clang/llvm个包,确保它是3.2或以上版本。较低版本可能有效但未经测试。

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

$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 步:汇编程序和 linker

最新的 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 包使用自定义的 libraries/headers 路径。请在 运行 配置之前先设置 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 版本,您可能需要按照 these steps 获取您自己的 SDK。

第 4 步:实用程序

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

注:(部分内容整理自网络。)

ldid :协同设计工具,具有 armv7/armv7s 支持和原始版本的其他更改。 link 完成后,它会被 ld64 调用。 ios-clang-wrapper : 自动查找SDK并构建合适的编译参数。 ios-switchsdk : 存在多版本SDK时切换sdk。 ios-pngcrush: png crush/de-crush 工具,比如 Apple 的 pngcrush。 ios-createProject:项目模板 ios-genLocalization : iOS 基于 clang 词法分析器的应用程序本地化工具。 ios-plutil:plist compiler/decompiler。 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 给出的上述解决方案如果不是小牛队是正确的,但如果是小牛队则以下是解决方案:

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

详细参考可以参考以下link:

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