Подтвердить что ты не робот

Ошибка при компиляции статической библиотеки с использованием Swift "неизвестный символ опции" X "в: -Xlinker"

Увидеть эту ошибку при добавлении быстрого файла для компиляции в статическую библиотеку. используя XCode 6.0 (6A215l)

Полная ошибка 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, которая зависит от статической библиотеки. Любая помощь оценивается

4b9b3361

Ответ 1

Обновление: Похоже, что официальная версия Xcode 6 по-прежнему имеет ту же проблему.

Из примечаний к выпуску xcode 6 beta 2:

Невозможно создать статические библиотеки, содержащие код Swift в этой версии

Ответ 2

Я нашел решение. Это крючок, но он работает. Вы должны сделать это как root.

  • Перейдите в каталог каталога привязки по умолчанию

    cd $(xcode-select -p)/Toolchains/XcodeDefault.xctoolchain/usr/bin

  • Переименуйте текущий libtool в old_libtool

    mv libtool old_libtool

  • Создать новый libtool

    touch libtool && chmod +x libtool

  • Вставить текущий script в качестве содержимого нового 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)
    
  • Compile.