serialize - El módulo compilado con swift 3.0 no se puede importar en Swift 3.0.1
swiftyjson decode (9)
- Mueva la versión beta / GM si la 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 la Terminal ejecutando el siguiente comando:
sudo xcode-select -s /Applications/Xcode-beta.app/
-
Crea las bibliotecas para iOS y evita que Carthage descargue archivos binarios precompilados existentes (pero incompatibles), ejecutando el siguiente comando:
carthage update --platform iOS --no-use-binaries
-
Limpiar y construir
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?
Utilicé Carthage para importar / actualizar marcos.
También intenté cambiar la
Use Legacy Swift language version
On y Off en vano.
El módulo compilado con Swift 3.0 no se puede importar en Swift 3.0.1: Módulos / SwiftyJSON.swiftmodule / arm64.swiftmodule
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 en el escritorio).
Desea asegurarse de que cuando ejecute lo siguiente en la terminal:
xcrun swift -version
que devuelva
Apple Swift version 3.0.1
.
Elimine la aplicación chache de DerivedData y reconstruya. El error puede ser reparado.
La ruta DerivedData como esta:
~/Library/Developer/Xcode/DerivedData/
En la Configuración de compilación de Xcode, asegúrese de que las Rutas de búsqueda de Framework contengan la carpeta Carthage Build adecuada:
$(inherited)
$(PROJECT_DIR)/Carthage/Build/iOS
Justo como dijo @zirinisp:
-
Puede usar el siguiente comando:
carthage update --platform iOS --no-use-binaries
-
Usando el siguiente comando:
xcrun swift -version
para ver la versión Swift -
Haga esto:
Xcode->preferences->locations
para borrar los datos derivados y los datos de archivos, lo más importante para cambiar las herramientas de línea de comandos a "Xcode 8.1
" -
Usando el siguiente comando:
xcrun swift -version
, puede ver que la versión swift es 3.0.1 -
Establecer
Use Legacy Swift Language Version = NO
Espero que te ayude
La actualización de
Xcode
predeterminado 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 la Terminal. Ref
sudo xcode-select -switch <path/to/>Xcode.app
Paso 2: ahora prueba el comando de actualización de Cartago
carthage update --platform iOS
Solo para dar las últimas actualizaciones:
Cartago lanzó la versión 0.20 el 27 de febrero de 2017.
Carthage ahora solo usa el binario de precompilación si el binario de precompilación disponible es compatible .
Dicho esto, ya no tiene que usar:
--no-use-binaries
para evitar un marco de compilación previo incompatible.
Así que asegúrese de tener una versión de cartago
superior a
0.20
y simplemente haga lo siguiente:
carthage update --platform iOS
SwiftyJson se está descargando precompilado por Carthage. La descarga precompilada es con Swift versión 3.0. Eso hace que el compilador se queje de que la versión no es correcta. Usando el siguiente comando:
carthage update --platform iOS --no-use-binaries
SwiftyJson (y todos los demás marcos dentro de Carthage) se compilarán localmente utilizando la versión local de Swift (3.0.1) y el compilador ya no se quejará.
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.