XCode 6.0(6A215l)を使用して、静的ライブラリにコンパイルするためのSwiftファイルを追加するときにこのエラーが表示される
完全なlibtoolエラー:Libtool DerivedData/SwiftTest/Build/Products/Debug-iphonesimulator/libstatic.a normal i386 cd /Users/al/dev/ios/SwiftTest2 export IPHONEOS_DEPLOYMENT_TARGET=8.0 export PATH="/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode6-Beta.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static -Arch_only i386 -syslibroot /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk -L/Users/al/dev/ios/SwiftTest2/DerivedData/SwiftTest/Build/Products/Debug-iphonesimulator -filelist /Users/al/dev/ios/SwiftTest2/DerivedData/SwiftTest/Build/Intermediates/SwiftTest.build/Debug-iphonesimulator/static.build/Objects-normal/i386/static.LinkFileList -ObjC -L/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphonesimulator -Xlinker -rpath -Xlinker /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphonesimulator -Xlinker -force_load -Xlinker /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a -Xlinker -sectalign -Xlinker __Swift -Xlinker __ast -Xlinker 4 -Xlinker -sectcreate -Xlinker __Swift -Xlinker __ast -Xlinker /Users/al/dev/ios/SwiftTest2/DerivedData/SwiftTest/Build/Intermediates/SwiftTest.build/Debug-iphonesimulator/static.build/Objects-normal/i386/static.swiftmodule -o /Users/al/dev/ios/SwiftTest2/DerivedData/SwiftTest/Build/Products/Debug-iphonesimulator/libstatic.a
ここでサンプルプロジェクトを作成しましたが、完全に新しいプロジェクトでエラーが発生します: https://github.com/amleszk/SwiftTest/tree/cd94ca21d817fed336b1a3bfc774a13608e0d1ca
プロジェクトのチェックアウトを再現し、静的ライブラリに依存するSwiftTestターゲットをビルドします。助けていただければ幸いです
更新: Xcode 6の公式リリースにも同じ問題が残っているようです。
Xcode 6 beta 2リリースノートから:
このリリースでは、Swiftコードを含む静的ライブラリをビルドすることはできません
私は解決策を見つけました。これはフックですが、動作します。これをルートとして実行する必要があります。
デフォルトのツールチェーンbinディレクトリに移動します
cd $(xcode-select -p)/Toolchains/XcodeDefault.xctoolchain/usr/bin
現在のlibtoolの名前をold_libtoolに変更します
mv libtool old_libtool
新しいlibtoolを作成
touch libtool && chmod +x libtool
現在のスクリプトを新しいlibtoolのコンテンツとして挿入します
#!/usr/bin/python
import os
import subprocess
import sys
args=[]
for arg in sys.argv[1:]:
if arg != '-Xlinker' and arg != '-add_ast_path' and not arg.endswith('swiftmodule'):
args.append(arg)
args.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), 'old_libtool'))
subprocess.check_call(args)
コンパイル。