Quelque temps après la mise à niveau vers Xcode 9, j'ai découvert que je ne pouvais plus créer un projet basé sur Kitura avec l'instantané Swift 3.1.1 (que j'ai installé via swiftenv).Erreur de compilation Swift 3.1.1: clé inconnue 'SwiftImportAsNonGeneric'
Quand je courais swift build
, un peu de temps dans la construction je recevrais:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.apinotes:8:28: error: unknown key 'SwiftImportAsNonGeneric'
SwiftImportAsNonGeneric: true
^
<unknown>:0: error: could not build Objective-C module 'Foundation'
Il semble qu'il y ait une dépendance entre Swift et Xcode, et Xcode 9 n'est plus compatible avec Swift 3.1.1 (ou plus tôt) instantanés. Je crois que c'est peut-être parce que mon projet utilise Foundation, et Foundation sur Mac est fourni avec Xcode, alors que Linux fait partie de l'instantané Swift (via swift-corelibs-foundation).