关于图书馆的简短说明:Link of library
我想为iPhone sdk编译swift库(即http://swift.im/git/swift/tag/?id=swift-2.0beta1)。我已经检查了它的文档文件夹和编译方式,但是他们只提到了Windows和Unix的编译步骤(即该页面包含编译文件http://swift.im/download/#apt的链接)。但我没有得到如何为iPhone sdk编译它。他们提到的步骤没有得到。那么,任何人都可以解释一下吗?检查其中一个文件后我才知道应该可以为iPhone编译。
他们提到的另一个问题是它是在GNU通用公共许可证v3下,所以我可以使用商业应用程序专门批准苹果吗?
任何帮助将不胜感激。感谢
答案 0 :(得分:3)
数据Swiften
已经内置了对iOS设备或模拟器构建的支持。我能够构建它,但还没有测试过它。
我将假设您使用XCode 4.4(或足够现代的东西)并定位在iPhone上运行的iOS 5.1> 3GS 即可。另外,我假设您要构建swiften-1.0。
(如果为早期版iPhone构建,请将armv7
更改回下面的armv6
)
为了构建它,需要涉及几个步骤。
在文件编辑器中打开swift-1.0/BuildTools/SCons/SConstruct
,然后:
从
更改第232行 env["XCODE_PLATFORM_DEVELOPER_BIN_DIR"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin"
到
env["XCODE_PLATFORM_DEVELOPER_BIN_DIR"] = "/Applications/Xcode.app/Contents" + "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin"
在第234行中,将armv6
更改为armv7
从
更改第240行 env["XCODE_SDKROOT"] = "/Developer/Platforms/" + sdkPart + ".platform/Developer/SDKs/" + sdkPart + sdkVer + ".sdk"
到
env["XCODE_SDKROOT"] = "/Applications/Xcode.app/Contents" + "/Developer/Platforms/" + sdkPart + ".platform/Developer/SDKs/" + sdkPart + sdkVer + ".sdk"
crt_externs.h
复制到swift-1.0/
(来自Matt Galloway的Compiling Boost for the iPhone)
将crt_externs.h
复制到swift
的目录;在swift-1.0/
时,执行:
cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/usr/include/crt_externs.h .
openssl
swiften
需要openssl
,但iOS没有内置版,因此您必须手动下载和编译它。在终端中执行以下操作:
cd <swift-directory>/3rdParty/OpenSSL
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
这将下载openssl的soruce;为了构建它,我使用了script from GitHub。仍然在<swift-directory>/swift-1.0/3rdParty/OpenSSL
,执行,
wget --no-check-certificate https://raw.github.com/st3fan/ios-openssl/master/build.sh
修改build.sh
- 将第10行从1.0.1b
更改为1.0.1c
。
现在,chmod +x build.sh
,最后是./build.sh
。这需要几分钟时间来构建openssl
。
swiften
你差不多 - 将目录更改为swift
的根目录,然后执行
./scons Swiften allow_warnings=yes target=iphone-device openssl="<swift-directory>/3rdParty/OpenSSL"
这将构建一个库,用于链接针对为设备构建的应用程序;如果您想在模拟器中运行它,请在上面的行中将target=iphone-device
更改为target-iphone-simulator
。可以在libSwiften.a
。
<swift-directory>/Swiften