Xcode 8 Beta 3 Usar problema Swift heredado


Tengo un proyecto Objective-C en Xcode 8 Beta 3. Desde la actualización, cada vez que intento compilar recibo el siguiente error:

Es necesario configurar correctamente"Use Legacy Swift Language Version" (SWIFT_VERSION) para los destinos que utilizan Swift. Utilice el menú [Editar > Convertir > a la sintaxis actual de Swift]] para elegir una versión de Swift o utilice el editor de configuración de compilación para configurar la configuración de compilación directamente.

Alguien Ha encontrado esto? Ya que es un Objetivo-C proyecto no hay configuración de compilación para configurar Swift. También me he asegurado de que ninguna de las dependencias del proyecto o CocoaPods esté usando Swift. La única solución que tengo es usar Beta 2. Alguna idea de cómo podría solucionar este problema?

También debo mencionar que estoy ejecutando OSX 10.12 Beta 2.

Author: Cœur, 2016-07-19

19 answers

Si está utilizando CocoaPods y desea que se corrija automáticamente cada vez que esté haciendo un pod install, puede agregar estas líneas al final de su Podfile:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '3.0'
        end
    end
end

EDITAR: Este problema ahora está solucionado si usa CocoaPods v1.1.1 o posterior. No olvides eliminar la configuración ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES de los objetivos principales de tu proyecto.

 364
Author: Tulleb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-30 13:23:33

Acabo de encontrar una manera de arreglarlo.

Vaya a la configuración de compilación del proyecto o biblioteca y establezca el atributo de versión del compilador Swift "Use Legacy Swift Language Version" de No especificado a Sí o NO.

introduzca la descripción de la imagen aquí

 118
Author: rockdaswift,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-19 08:51:29

He estado ignorando este problema por un tiempo y solo trabajando en otras cosas mientras tanto - finalmente encontré la solución a mi problema.

Dado que mi proyecto es Objective-C, pensé que tal vez uno de los Pods que estoy usando estaba usando Swift, revisé cada Pod y ninguno de ellos lo estaba.

La solución final fue que mi modelo de datos principales se configuró para generar código en Swift a pesar de que los he estado generando manualmente en el menú Archivo > Nuevo > NSManagedObjectSubclass. Todo lo que tenía para hacer era cambiarlo a Objective-C.

pantallazo

 33
Author: Bryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-26 18:48:10

Este problema también es visible en Xcode-8.1 . Cuando añadimos nuevo Destino como Extensión o Widget y la biblioteca de terceros se integra en el nuevo destino con la ayuda de cocopods. Después de Pod install . Podemos enfrentar el mismo error que el anterior .

Cambie Use la Versión Heredada del Lenguaje Swift en cada Configuración de Compilación de Bibliotecas a

No.

introduzca la descripción de la imagen aquí

 18
Author: Shrawan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-08 09:00:20

Si está utilizando Xcode 8 o posterior

  1. Vaya a Configuración de compilación
  2. Find use legacy swift language version
  3. Sí-Swift 2.3
  4. No-Swift 3.0 introduzca la descripción de la imagen aquí
 9
Author: Mohammad Kamran Usmani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-04 10:11:55

Agregue el siguiente código al final del podfile.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['SWIFT_VERSION'] = '3.0'
    end
  end
end
 5
Author: Sunil aruru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-07 04:56:31

Estoy trabajando en un proyecto que ha mezclado objective - c y swift code Anteriormente usé la versión 2.3 de swift y después de actualizar a swift 3 no pude construir el proyecto. Xcode se quejó con el mensaje de error mencionado.

Aparentemente, todavía había alguna versión desactualizada de Swift especificada en mi proyecto.archivo pbxproj. Se especificó swift 3.0.1:

SWIFT_VERSION = 3.0.1;

Considerando que, ya tenía 3.0.2 instalado:

$ xcrun swift -version
Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
Target: x86_64-apple-macosx10.9

Sooo, lo arreglé cambiando la versión de Swift en el archivo project-pbxproj a:

SWIFT_VERSION = 3.0;

Parece que el especificador de versión de nivel de parche era demasiado específico.

 4
Author: leviathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-21 15:13:20

En mi caso solo tengo que hacer las siguientes cosas

Elija project Target = > Vaya a Build setting = > Busque "Swift Language Version" = >dé valor a la versión actual de Swift

Eso es todo lo que ha solucionado mi problema

Seguir Esta Imagen

 4
Author: khusboo suhasini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-14 11:59:48

Tengo el mismo error. Intenté buscar "Use Legacy Swift Language Version", pero no lo encontré. Estoy usando Xcode 8.3.3 Después de navegar demasiado y trabajar alrededor encontré esta solución, y esto funcionó para mí.introduzca la descripción de la imagen aquí

Here are the steps.
1=> select your target from Xcode
2=> go to build setting
3=> search for "Swift Language Version"
4=> change it to swift 3. (or accordingly.)
 4
Author: Aklesh Rathaur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-24 07:23:01

Establezca "Use Legacy Swift Language Version" en " YES " si utiliza una versión antigua de swift en su proyecto o en cualquier tercero de swift. "No" si su proyecto actualiza a la versión actual de swift. si no configura su versión de swift , después de cada actualización e instalación, Pod framework debe especificarlo.

 3
Author: Mohammad Arifuzzaman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-22 07:50:15

En realidad tuve que hacer una búsqueda de "Swift heredado" para poder cambiarlo de no especificado a "Sí" Cuando simplemente me desplacé hacia abajo a la sección descrita anteriormente, no pude cambiarlo. Espero que esto ayude a alguien.

 2
Author: Mountain Man,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-11 21:46:40

Mi proyecto está escrito en Swift. Tengo el mismo error con fastlane. Lo que sucedió fue que mi Xcode se actualizó automáticamente, así que tuve que actualizar mi proyecto a Swift 3.0. Tengo un montón de errores. Arreglar y depurar estaba tomando demasiado tiempo y no valía la pena en ese momento, así que decidí instalar una versión anterior de Xcode. Revirtió mi código a 2.3. Entonces fastlane beta ya no funcionaba. Resulta que necesitaba configurar la herramienta de Línea de comandos en 7.3. introduzca la descripción de la imagen aquí

 2
Author: yoninja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-10 04:05:22

Estaba teniendo este mismo problema y lo resolví haciendo lo siguiente:

En el Proyecto > Configuración de compilación:

Always Embed Swift Standard Libraries = $(inherited) Use Legacy Swift Language Version = YES

Luego en mi Podfile:

config.build_settings['SWIFT_VERSION'] = '3.0'

El uso de estas tres configuraciones eliminó todas las advertencias y me permitió compilar correctamente.

Lo más oscuro y lo que realmente consiguió progreso para la compilación fue cambiar la SWIFT_VERSION en el Podfile de 3 a 3.0 como se sugiere aquí.

 1
Author: Hector Partidas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:57

A partir de XCode 8, puede usar swift 2.3 aunque XCode 8 use swift 3.x como versión predeterminada de swift. Para usar swift 2.3, simplemente active la opción Usar versión Heredada del lenguaje Swift en SÍ desde la configuración de compilación, luego XCode usará Swift 2.3 para ese objetivo del proyecto.

 1
Author: arunjos007,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-01 11:27:26

Antes de probar soluciones complicadas, aquí hay una comprobación básica que debe hacer si es nuevo en Cocoapods y está teniendo este problema.

Es posible que necesite:

  • Abre tu Podfile de nuevo
  • Compruebe que la línea de plataforma no está comentada con un '#'. Finalmente debería verse como algo como:

platform :ios, '10.1' # Put the right version and no #platform here use_frameworks! # For swift pod "MyPod" # Your mean pod :)

  • Guarde su Podfile, Cierre Xcode y Ejecute pod install de nuevo
  • Abre tu proyecto.xcworkspace

Tal vez es solo que.

Si no, puedes ir arriba; -)

 1
Author: Diphaze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-02 12:38:37

Tuve este mismo problema después de actualizar a xcode 8.3.2, pero la opción "Use Legacy Swift Language" se había ido. Esta parece ser la opción para cambiar ahora: Versión Swift Lang

Se usó esta corrección con Alamofire y otras libs y todo funciona bien.

 1
Author: Jorge Irún,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-24 13:48:33

Vaya a la configuración de Compilación del proyecto para el proyecto y el objetivo haga debajo de dos.

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
And
Swift Compiler - Version  = Swift 3

Cambiar a la última Swift 3.

Error resuelto.

Si se ha resuelto su corrección de error, por favor, me gusta.

 1
Author: kiran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-25 06:59:25

En Xcode 9 beta. Vaya a Configuración del Proyecto, Configuración de compilación, busque la versión de idioma de Swift. En Xcode 9 debe especificar si está utilizando Swift 3.2 o Swift 4.

 1
Author: Niall Kehoe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-06 15:58:32

Si cambias ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES a NO todavía no funciona, es porque el problema de xcode, no es tu problema. Siguiendo los siguientes pasos:

1.Cambiar la propiedad ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES para ser YES en el destino de advertencia

2.luego mostrará una advertencia en la barra izquierda que le recomienda cambiar a swift 3.0

3.a continuación, vuelva a NO. Reconstruir el proyecto, el xcode finalmente detectar su cambio a NO!

Problema resuelto en este caso.

 1
Author: Wangdu Lin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-21 07:32:37