从 linux 命令行编译 IOS 程序
Compile IOS program from linux commandline
我想从 linux 终端(命令行)编译我的 IOS 应用程序....
是否可以这样做,如果可以,那么怎么做?
是的,有可能。
至少你需要:
- 汇编器和链接器:来自苹果开源的 cctools 和 ld64。
- 编译器:Clang/LLVM
- SDK,包括 headers 和库。
- 实用程序:例如 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.
我想从 linux 终端(命令行)编译我的 IOS 应用程序.... 是否可以这样做,如果可以,那么怎么做?
是的,有可能。
至少你需要:
- 汇编器和链接器:来自苹果开源的 cctools 和 ld64。
- 编译器:Clang/LLVM
- SDK,包括 headers 和库。
- 实用程序:例如 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.