Actualicé Xcode a 8.1 GM y ahora recibo el siguiente error para SwiftyJSON. Otros marcos importados parecen funcionar. ¿Hay alguna manera de forzar que esto funcione en Swift 3 hasta que SwiftyJSON actualice su marco? Usé Carthage para importar / actualizar marcos. También intenté cambiar de Use Legacy Swift language version
encendido y apagado sin éxito.
El módulo compilado con Swift 3.0 no se puede importar en Swift 3.0.1: Módulos / SwiftyJSON.swiftmodule / arm64.swiftmodule
fuente
Cartfile
para que pueda escribircarthage update
sin que otros desarrolladores necesiten saber / preocuparse por las banderas adicionales?Elimine la aplicación chache de DerivedData y reconstruya. el error puede corregirse.
La ruta DerivedData como esta:
~/Library/Developer/Xcode/DerivedData/
fuente
Asegúrese de haber colocado el nuevo paquete XCode 8.1 GM en su carpeta de Aplicaciones. Nos encontramos con este problema cuando uno de nosotros estaba ejecutando Carthage para actualizar nuestras dependencias, pero no había reemplazado la antigua aplicación XCode 8.0 en la carpeta de aplicaciones (8.1 GM se estaba ejecutando desde el escritorio).
Desea asegurarse de que cuando ejecute lo siguiente en la terminal:
xcrun swift -version
que regreseApple Swift version 3.0.1
.fuente
carthage update --platform iOS --no-use-binaries
y todavía no funciona. Limpié mi proyecto y reinicié Xcode y todavía recibo el error. ¿Algo más que pueda probar?Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) Target: x86_64-apple-macosx10.9
Actualizar el valor predeterminado
Xcode
a uno nuevo en la terminal funcionó para mí.Paso 1: use el siguiente comando para actualizar la versión de Xcode a la última en Terminal. Árbitro
sudo xcode-select -switch <path/to/>Xcode.app
Paso 2: ahora prueba el comando de actualización de carthage
fuente
Solo para dar las últimas actualizaciones:
Carthage lanzó la versión 0.20 el 27 de febrero de 2017.
Carthage ahora solo usa el binario preconstruido si el binario preconstruido disponible es compatible .
Dicho esto, ya no tiene que usar:
--no-use-binaries
para evitar un marco de precompilación incompatible.Así que asegúrese de tener la versión de Carthage mayor que
0.20
y simplemente haga:fuente
--no-use-binaries
? Carthage debería poder detectar si el binario es compatible con su versión del compilador. Si no es compatible, se supone que eliminará automáticamente el binario descargado y creará el marco localmente.Como dijo @zirinisp:
carthage update --platform iOS --no-use-binaries
xcrun swift -version
para ver la versión SwiftXcode->preferences->locations
para borrar los datos derivados y los datos de archivos, lo más importante es cambiar las herramientas de la línea de comandos a "Xcode 8.1
"xcrun swift -version
, puede ver que la versión rápida es 3.0.1Use Legacy Swift Language Version = NO
Espero que te ayude
fuente
Mueva la versión beta / GM si el Xcode a la carpeta / Aplicaciones y asígnele el nombre Xcode-beta
Verifique la salida de:
xcrun swift --version
Al ejecutar este comando en la terminal, su salida debe coincidir con la versión rápida que desea que compile la aplicación, porque Carthage usa la salida de este comando para determinar la versión local de Swift.
Actualice la versión de Xcode a la última en Terminal ejecutando el siguiente comando:
sudo xcode-select -s /Applications/Xcode-beta.app/
Cree las bibliotecas para iOS y evite que Carthage descargue binarios precompilados existentes (pero incompatibles), ejecutando el siguiente comando:
carthage update --platform iOS --no-use-binaries
Limpiar y construir
fuente
Tuve exactamente el mismo problema con la biblioteca
XCTest_Gherkin
, lo que funcionó para mí fue:Product
->Scheme
->XCTest-Gherkin
Product
->Build
Espero eso ayude. Estoy usando Cocoapods.
fuente
En la configuración de compilación de Xcode, asegúrese de que sus rutas de búsqueda de Framework contengan la carpeta de compilación de Carthage adecuada:
$(inherited) $(PROJECT_DIR)/Carthage/Build/iOS
fuente