ios - convert - use swift class in objective c
Xcode 9: no se pudo emitir el encabezado precompilado (12)
@Li Yakun Esta es la solución si tiene más de un objetivo en el proyecto, cada nuevo objetivo en podfile debe tener:
target ''NEWTARGET'' do
# Comment the next line if you''re not using Swift and don''t want to use dynamic frameworks
use_frameworks!
# Pods for MAINTARGET
shared_pods
end
Esta pregunta ya tiene una respuesta aquí:
- Error al emitir el encabezado precompilado para unir las respuestas del encabezado 10
Tengo un proyecto en Objective-C y también en swift al tomar MyProjectName-Bridging-Header.h
también configuré el encabezado de puente de Objective-C. También he agregado ''MyprojectName-Swift.h'' en el archivo .pch.
Esto funciona bien en xcode 8.2 pero cuando compilo mi proyecto desde xcode 9, obtengo el siguiente error.
no pudo emitir el encabezado de la licencia en el momento del trabajo en el correo electrónico. Bridging-Header.h ''
Por favor, ayúdame con esto. ¡Gracias!
Añadiendo mi propia situación al bucle.
En mi archivo de encabezado puente, las etiquetas dicen que agregué una importación
#import "File.h"
Dentro del archivo de encabezado de File.h
, había un tipo referenciado desde una importación que estaba dentro de Prefix.pch, tenía que agregar el #import que faltaba en mi Archivo.h
Además, si tiene múltiples objetivos, tenga en cuenta que debe incluir su #import
en cada archivo.
Cuando reciba este error en el terminal al ejecutar el comando xcodebuild, asegúrese de pasar -workspace YourWorkspace.xcworkspace
Descubrí que accidentalmente abrí el archivo ProjectName.xcodeproj en lugar del archivo ProjectName.xcworkspace .
Abra el archivo xcworkspace , el proyecto comenzará a funcionar de nuevo!
En mi caso, tuve el mismo error de compilación con errores adicionales como "Tipo desconocido" en uno de mis archivos de proyecto, así que simplemente agregué esto al archivo problemático y lo resolví instantáneamente.
#import <UIKit/UIKit.h>
Finalmente tengo la solución de este problema. En mi proyecto, la ruta del Prefix Header
no está claramente definida. Antes el camino era
$ (SRCROOT) /MyPrefixHeaderFile.pch
MyPrefixHeaderFile.pch
está en otra carpeta dentro de la carpeta del proyecto, así que actualizo la ruta del Prefix Header
a
$ (SRCROOT) /FolderName/MyPrefixHeaderFile.pch
Lea esto si está utilizando cocoapods en el proyecto. Acabo de actualizar el destino de la implementación a iOS 10 u 11 en mi caso después de actualizar los pods y xcode para que la primera compilación sea exitosa. Así que el problema estaba dentro del podfile donde tenia linea
platform :ios, ''11.0''
y mi objetivo de implementación en el proyecto era 9.0 después de cambiar mi podfile a plataforma para
platform :ios, ''9.0''
proyecto fue arreglado
Puedes probar esta solución. He resuelto el mismo problema de esta manera.
Producto> Esquema> Editar esquema> Seleccione "Crear" en el menú de la izquierda> Buscar dependencias implícitas
- Primer clic en el logo.
- Luego haga clic en ''Editar esquema'':
- Ahora, en la pestaña de compilación, marque ''Buscar dependencias implícitas'':
Luego haz una limpieza y construye de nuevo.
También asegúrese de que su importación de "ProductModuleName-Swift.h" esté en su archivo .m, y no en su archivo .h.
en mi punto de vista, resolví simplemente cambiar el orden de las declaraciones de importación y la compilación funciona bien.