Recientemente actualicé xcode a la versión 9. Antes de eso, en Xcode 8.x, cada vez que lo hago pod update
, me muestra un código de actualización para convertir el código a Swift 3 y, al hacerlo, resuelve los errores. Pero ahora me está dando este error:
La configuración de compilación "Swift Language Version" (SWIFT_VERSION) debe establecerse en un valor admitido para los objetivos que usan Swift. Esta configuración se puede establecer en el editor de configuraciones de compilación.
Para este error, lo intenté Build Settings > Swift Language Version
y fue Swift 3.2 Pero como la llamada de actualización ha reinstalado algunos de los pods como Alamofire y dice que instale Xcode 8.x para convertir el código a Swift 3, entonces necesito instalar un versión adicional con el último Xcode? Si es así, ¿cómo puedo instalar Xcode 8 con Xcode 9?
Respuestas:
Respuesta a su pregunta:
puede descargar Xcode 8.x desde el Portal de descarga de Apple o Descargar Xcode 8.3.3 (o ver: Dónde descargar la versión anterior de Xcode ), si tiene una cuenta de desarrollador premium (id de Apple). Puede instalar y trabajar con Xcode 9 y Xcode 8.x en un sistema único (mac). (Asegúrese de ser
Command Line Tools
compatible con ambas versiones de Xcode, para trabajar con el terminal (consulte: Cómo instalar la 'Herramienta de línea de comandos' )Sugerencia: Cómo migrar su código Versiones Swift compatibles con Xcode 9 (Swift 3.2 o 4)
Xcode 9 permite la conversión / migración de
Swift 3.0
aSwift 3.2/4.0
solamente. Entonces, si la versión actual del idioma Swift de su proyecto es inferior a 3.0, debe migrar su código en la versión compatible con Swift 3 usando Xcode 8.x.Este es un mensaje de error común que muestra Xcode 9 si identifica el lenguaje Swift por debajo de 3.0 durante la migración.
Swift 3.2 es compatible con Xcode 9 y Xcode 8 tanto.
Convierta su código fuente de Swift 2.0 a 3.2 usando Xcode 8 y luego continúe con Xcode 9 (Swift 3.2 o 4).
Para facilitar la migración de su código, siga estos pasos: (le ayudará a convertir a la última versión de swift compatible con su herramienta Xcode)
fuente
Para los proyectos de Objective C creados con Xcode 8 y que ahora se abren en Xcode 9, muestra el mismo error que se menciona en la pregunta.
Para solucionarlo, presione el botón + en Configuración de compilación y seleccione Agregar configuración definida por el usuario como se muestra en la imagen a continuación
Luego, en la nueva fila creada, agregue
SWIFT_VERSION
como clave y3.2
como valor como se muestra a continuación.Corregirá el error de los proyectos del objetivo c.
fuente
Recibí esto después de crear un nuevo proyecto de Objective-C en Xcode 10, después de agregar un archivo de modelo de Core Data al proyecto.
Encontré dos formas de solucionar esto:
El modelo contiene un archivo de "contenido" con esta línea:
En hay una
sourceLanguage="Swift"
entrada. Cámbielo asourceLanguage="Objective-C"
y el error desaparecerá.Para encontrar el archivo "contenido", haga clic derecho en
.xcdatamodeld
en Xcode y haga "Mostrar en Finder". Haga clic con el botón derecho en el archivo (Finder) real y seleccione "Mostrar contenido del paquete"Además: cambiar el idioma del modelo evitará que Xcode genere archivos de subclase de objetos administrados en Swift.
fuente
Esto puede suceder cuando agregó Core Data a un proyecto existente.
Compruebe el archivo :
<Nombre> / <Nombre> .xcdatamodeld / <Nombre> .xcdatamodel / contenido
.
Este archivo contiene una entrada "sourceLanguage" que (de forma predeterminada) podría haberse configurado como "Swift". Cámbielo a "Objective-C".
fuente
Simplemente hago clic en el último botón de conversión rápida y configuro la configuración de compilación de destino de la aplicación-> Versión de idioma Swift: swift 4.0,
Espero que esto ayude.
fuente
Esta solución funciona cuando nada más funciona:
Pasé más de una semana para convertir todo el proyecto y encontré una solución a continuación:
Primero, desintegre la dependencia de los cocopods del proyecto y luego comience a convertir el proyecto a la última versión rápida.
Vaya al Directorio de proyectos en la Terminal y escriba:
Esto desintegrará los cocopods del proyecto y no quedarán rastros de CocoaPods en el proyecto. Pero al mismo tiempo, no eliminará el xcworkspace ni los podfiles. Está bien si están presentes.
Ahora tienes que abrir xcodeproj (no xcworkspace) y obtendrás muchos errores porque has llamado a los métodos de dependencia de cocoapods en tus proyectos principales.
Entonces, para eliminar esos errores, tiene dos opciones:
Una vez que se eliminan todos los errores, puede convertir el código a la última versión rápida.
A veces, si obtiene errores extraños, intente limpiar los datos derivados y vuelva a intentarlo.
fuente
tal vez necesite descargar toolchain. Este error ocurre cuando no tiene la versión correcta del compilador rápido.
fuente
En mi caso, todas las advertencias desaparecieron después de que cambié directamente la versión rápida de 2.xa 4.0 en la configuración de compilación, excepto dos advertencias.
Estos advertencia relacionada con
myprojectnameTests
ymyprojectnameUITests
carpeta. No me di cuenta y pensé que estaba relacionado con la inmigración directa de Xcode 7 a Xcode 9 y pensé que no podría resolver este problema y que debería instalar la versión perdida de Xcode 8.En mi caso, eliminé estas carpetas y todas las advertencias desaparecieron, pero puedes volver a crear esta carpeta y contiene usando esto:
file > new > target > (uitest or unittest extensions)
y use este artículo para crear casos de prueba: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/04-writing_tests.html
fuente