从linux命令行编译IOS程序

时间:2015-01-22 09:20:56

标签: ios linux command-line

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

2 个答案:

答案 0 :(得分:11)

是的,这是可能的。

至少你需要:

  1. 汇编程序和链接程序:来自apple opensource的cctools和ld64。
  2. 编译器:Clang / LLVM
  3. SDK,包含标题和库。
  4. 实用程序:例如ldid codesign工具。
  5. 第1步:编译器

    强烈推荐并测试

    Clang / llvm> = 3.2。

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

    如果您的发行版已经提供了clang / llvm软件包,请确保它是3.2版本或更高版本。较低版本可能有效,但尚未经过测试。

    对于Ubuntu 13.04及更高版本,已在回购中提供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 opensource移植到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版本,您可能需要按照these steps为自己获取SDK。

    第4步:实用程序

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

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

    ldid:codesign工具,支持armv7 / armv7s以及orig版本的其他更改。链接完成后,它将被ld64所涉及。 ios-clang-wrapper:自动查找SDK并构造适当的编译参数。 ios-switchsdk:存在多个版本的SDK时切换sdk。 ios-pngcrush:png crush / de-crush工具,就像Apple的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

    下载源代码tarball

    构建并安装它:

    $./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

答案 1 :(得分:-3)

Barjomet给出的上述解决方案是正确的,如果它不是特立独行者,但如果是Maverics,那么以下是解决方案:

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

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

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