5

关于图书馆的简短描述:图书馆链接

我想为 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 下,所以我可以将它用于商业应用程序,特别是苹果批准它吗?

任何帮助,将不胜感激。谢谢

4

1 回答 1

3

FiguresSwiften已经内置了对 iOS 设备或模拟器构建的支持。我能够构建它,但还没有测试它。

我将假设您是 z XCode 4.4(或足够现代的东西)并以在 iPhone > 3GS 上运行的 iOS 5.1 为目标。另外,我假设您想要构建 swiften-1.0。(如果为早期的 iPhone 构建,请改armv7armv6下方)

为了构建它,涉及几个步骤。

修复路径和 SDK 版本

swift-1.0/BuildTools/SCons/SConstruct在文件编辑器中打开,然后:

  1. 将第 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"

  2. 在第 234 行,更改armv6armv7

  3. 在第 239 行,将“4.0”更改为“5.1”
  4. 将第 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.hswift-1.0/

(来自 Matt Galloway 的iPhone 编译提升

复制crt_externs.hswift'目录;在 中时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 的源代码;为了构建它,我使用了来自 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.1b1.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-devicetarget-iphone-simulator上面的行。库文件libSwiften.a可以在<swift-directory>/Swiften.

于 2012-09-14T12:27:02.160 回答