online objective convert ios objective-c swift xcode xcode9

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í:

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

  1. Primer clic en el logo.
  1. Luego haga clic en ''Editar esquema'':
  1. Ahora, en la pestaña de compilación, marque ''Buscar dependencias implícitas'':

Luego haz una limpieza y construye de nuevo.


Tal vez creas un nuevo objetivo, pero no lo agregaste en el podfile


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.