swift - descargar - Error de compilación de Xcode 7: "Falló el comando debido a una señal: falla de segmentación: 11"
xcode descargar (25)
Ayer instalé el Xcode 7 oficial y cuando intenté abrir uno de mis proyectos Swift, apareció una alerta que decía que la nueva versión de Xcode quiere actualizar mi código Swift (o algo así). De acuerdo, acepté y después de esto apareció "Command failed due to signal: Segmentation fault: 11"
Error del "Command failed due to signal: Segmentation fault: 11"
Error de "Command failed due to signal: Segmentation fault: 11"
error de compilación (si desea detalles sobre esto, puedo escribir todo el texto del error). ¿Alguien tiene el mismo problema?
Gracias
Editado
Instalé de nuevo Xcode 6.4 y está bien, no hay errores de compilación.
¿Intentó volver a abrir el proyecto y / o volver a agregar su esquema? Lo hice y el error se fue.
Al principio, recomiendo observar el registro de compilación con cuidado para encontrar el archivo que tiene problemas. En mi caso, un valor opcional utilizado en bucle causó un error de Segmentación en el proceso de compilación.
for i in 0..<hoge?.count {
Fijé mi código como el siguiente;
for i in 0..<hoge!.count {
No tengo ningún error ahora. \ (^ O ^) /
El error desapareció al mismo tiempo con la próxima versión de Xcode. Después de algunas investigaciones en foros de Apple, hubo un error con esa versión del "mejor" IDE de todos los tiempos, Xcode. Espera que todas las respuestas ayuden a alguien.
En mi caso, el reparto que tuve que corregir fue similar a la respuesta de Murat Yasar ( https://.com/a/36867502/512403 ), pero el mío tenía dos partes que corregir. El compilador no funcionó con la solución original, así que tuve que modificar mi código aún más:
Mala versión:
let jsonObject: AnyObject? = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments)
Buena version
let jsonObject = try? NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [String: AnyObject]
Tal vez esto puede ayudar a alguien nuevo a estas peculiaridades de Swift.
Estaba intentando escribir el NSData para archivar como código siguiente.
if let currentResumeData = currentUserInfo["NSURLSessionDownloadTaskResumeData"]
{
// the following "do" was giving the above mentioned compile error.
do {
try currentResumeData.writeToFile(fileNameString, options: .DataWritingAtomic)
} catch {}
// the above error code.
}
Después de leer varias respuestas en , lo cambié como debajo, lo que eliminó el error.
if let currentResumeData:NSData = currentUserInfo["NSURLSessionDownloadTaskResumeData"] as? NSData {
{
do {
try currentResumeData.writeToFile(fileNameString, options: .DataWritingAtomic)
} catch {}
}
Como puede ver, el compilador requirió el tipo de variable NSData "currentResumeData" adecuado para llamar al método .writeToFile.
Estoy seguro, esto será útil para los demás.
Estaba tratando de hacer uso de ?? De una manera inteligente cuando esto me sucedió.
Supongo que a Swift no le gusta cuando intentas encadenar múltiples ?? juntos como en, aunque el resaltador de sintaxis no arroja ningún error:
let ageNum = self.ageValue > 0 ?? self.birthday?.ageFromDate() ?? 0
Esto indica que falta algún método / función Required
en su código. En mi caso, estaba usando ObjectMapper y en mi clase se me olvidó incluir el método required init()
que causa este "Command failed due to signal: Segmentation fault: 11"
required init?(_ map: Map) {
}
He aquí cómo lo solucioné: primero, como lo sugieren muchos aquí, lea el registro con atención. En realidad, le dice exactamente el número de línea donde está fallando y por qué está fallando. Simplemente comentando esa línea, se solucionó el problema. En mi caso fue un error de comprobación de tipo. Estoy utilizando Gloss structs para el análisis JSON y parece que a medida que profundiza en la jerarquía JSON, a veces el analizador en línea no reconoce que hay un problema de tiempo de compilación. Cuando construyes el proyecto falla. Lo ideal es que el analizador en línea reconozca el error de comprobación de tipo. Entonces, esto puede ser un problema con Xcode, pero es su código el que lo está rompiendo. Cuando leí muchas de las publicaciones, mi análisis de la siguiente manera ... la causa raíz está relacionada con la verificación de tipos. Cuando intenta asignar tipos incorrectos (opcionales o de otro tipo) y el analizador en línea no lo reconoce en algunos casos. Cuando lo construyes, lo reconoces y causa un error de segmentación. Es nuestro código que está mal a pesar de un error con Xcode que puede solucionarse si leemos los registros con cuidado.
He enfrentado este problema muchas veces al convertir varios proyectos a Swift3.0.
Como este problema parece dinámico, cada uno tiene su propia solución, y no una respuesta universal. Pero en este problema, el problema principal es identificar el lugar para trabajar. Así que lo que estoy siguiendo es el siguiente:
Identificar el método que es responsable de error
Haga clic en el mensaje de error
En mi caso AppDelegate es el responsable.
Para encontrar la línea de error, vaya al final de la descripción del error largo. Encontrará un código como el siguiente:
1. While emitting IR SIL function @_TFC9MyProject11AppDelegate21getNotificationDetailfGSqGVs10DictionaryVs11AnyHashableP___T_ for ''getNotificationDetail'' at /Users/ABC/Documents/BitBucket/iOS/2016/Projects/MyProject/AppDelegate/AppDelegate.swift:153:5
Aquí 153
es la línea de código en AppDelegate.swift
.
func getNotificationDetail(_ launchOptions : [AnyHashable: Any]?) {
if launchOptions != nil {
let dictLaunch = launchOptions! as NSDictionary
NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.openRespectiveNotificationScreen), name: NSNotification.Name(rawValue: WebServiceKey.APPMANAGER_SERVICE_CALL_FINISH), object: nil)
inactiveUserInfo = dictLaunch.object(forKey: UIApplicationLaunchOptionsKey.remoteNotification) as? NSDictionary
}
}
Luego comenta todo el código dentro del método y compila de nuevo. Luego intente descomentar una por una línea, para que finalmente obtenga la línea que genera un error.
Después de encontrar la línea exacta de código, puede corregirlo fácilmente.
En mi código encuentro la última línea de este método generar error.
Así que lo sustituyo por el siguiente código y lo construyo correctamente.
inactiveUserInfo = dictLaunch[UIApplicationLaunchOptionsKey.remoteNotification] as? NSDictionary
Así que lo principal es depurar con cautela. Intente de esta manera, definitivamente resolverá el error fácilmente.
Lea el mensaje de depuración cuidadosamente.
Encontré este error porque usé un solo ''='' en lugar de double ''='' por error en la sentencia if.
if aString.characters.count = 2 {...}
Me enfrenté a este error de compilación en Xcode Versión 7.3 (7D175), proyecto swift. El siguiente es el escenario:
- Declarado "protocolo @objc" en clase swift
- En otra clase que implementa este protocolo, uno de los métodos no opcionales no se implementa
Implementar el método me solucionó el problema. Esta podría ser una de las razones de las personas que enfrentan este problema. Espero que esto ayude
Mira la otra advertencia que ves alrededor.
Mi caso me apuntó a un problema con iOS9 y GoogleAds. Consulte aquí: https://developers.google.com/admob/ios/ios9
La respuesta corta fue deshabilitar la configuración de compilación ENABLE_BITCODE.
Mi error:
ld: ''/pp/src/shared_js/libs/GoogleMobileAdsSdkiOS-7.3.1/GoogleMobileAds.framework/GoogleMobileAds(GADGestureIdUtil.o)'' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
Omg, este es un gran error de Xcode. Sólo lee esto. http://blog.bellebethcooper.com/xcode-bug.html Me hizo sonreír.
El cambio fue engañosamente pequeño, pero esto es lo que era (dentro de mi clase de cliente API, donde realmente obtengo los datos JSON de la API):
Cambié esto:
`let json = try? NSJSONSerialization.JSONObjectWithData(data, options: [])`
a esto:
`let json = try? NSJSONSerialization.JSONObjectWithData(data, options: []) as! [String: AnyObject]`
Esta es una de las experiencias de depuración más frustrantes que he tenido, pero espero que esta publicación ayude a otra persona que tenga el mismo problema. Y si terminaste aquí buscando en Google un error con el que estás luchando y esto no te ayudó, lo siento. Sé exactamente por lo que estás pasando. ¡No te rindas!
Para mí era una función larga que contenía una matriz de datos de prueba.
Para mí, el problema (XCode 7.3.1) estaba usando un operador + = en un elemento del diccionario.
por ejemplo:
func test() {
var myDict:[String:String] = [:]
myDict["key"] = "pig"
myDict["key"] += "dog"
var myArray:[String] = []
myArray.append("pig")
myArray[0] += "dog"
}
Esto causará una falla de segmentación. Elimine el + = en myDict, y todo está bien.
Soy consciente de que se trata de un error (las referencias del diccionario son anulables) pero el compilador no debería cagarse así.
Para mí, el problema fue cambiar cómo verifico si algo era falso. En lugar de:
if object1.hidden == false {
}
cambiar a:
if object1.hidden != true {
}
Para mí, esto fue causado al declarar una estructura en una extensión de clase final:
final class X {
...
}
extension X {
struct Y {
...
}
}
Para mi:
Utilizo Closure como AnyObject, después de usar esta función Cast closures / blocks . Error solucionado.
typealias UserCallBack = () -> Void
...
if let callBack = callBack as? AnyObject {
request?.userInfo["callBack"] = callBack
}
Recibí este error al intentar compilar con Xcode 8.2.1. Estoy usando Cocoa Pods y sospecho que uno de los pods fue el problema, ya que algunos de los archivos del pod fueron referenciados en el largo error de salida del compilador. Después de salir de Xcode y ejecutar la pod update
en el directorio de mi proyecto (a través de Terminal), pude compilar correctamente cuando volví a abrir mi proyecto.
Reinicie xcode. Construcción limpia (cmd + k, cmd + shift + k y carpeta de construcción limpia -> opción + cmd + shift + k) Debería solucionar el problema.
Tengo un proyecto que sucede en el mismo archivo de vez en cuando. Mi solución es:
Vaya al archivo que mencionó la falla de segmentación, comente todas las importaciones, ejecute (la compilación falla obviamente), elimine el comentario de todas las importaciones -> Compila correctamente.
Mis importaciones fueron Firebase y FirebaseAuth si ayuda a alguien.
Tuve el mismo error debido a:
let stringB: String? = stringA.characters.count = 0 ? nil : stringA
La solución fue cambiarlo a:
let stringB: String? = stringA.characters.count > 0 ? stringA : nil
Tal vez esto ayude a alguien ...
Tuve el mismo error en mi proyecto después de actualizar a xCode 7. Decidí eliminar la nueva versión de xCode e instalar xCode 6.4. Después de todo, funcionó bien usando xCode 6.4, así que sugiero que lo haga para comenzar. Por otra parte, siempre debes estar al día, pero también puedes tener ambos xCode 6.4 y 7.0 :) ¡Espero que esto te funcione!
Yo tuve el mismo problema. Xcode 7.2.1. Y seleccionando el error y expandiendo los registros, pude encontrar el error de compilación enterrado entre las rutas largas.
Ver la línea después del "1". En la imagen adjunta. Tiene una referencia a un archivo y una línea. Mirándolo pude encontrar el error.
En mi caso, tuve una asignación de enumeración no válida, moví algo de lógica de una estructura a una enumeración e inyecté este error:
Tuve:
return .Success(dict: dict)
Yo debería:
return .Success(dict)
desafortunadamente, siempre tengo el mismo error que tú. Sugiero que la mejor manera para usted es recrear un nuevo proyecto con Xcode nuevo y trasplantar todo el código a este nuevo proyecto, el problema se resolverá. Por cierto, después de actualizar cualquier lugar como framework o xcode, este error puede ocurrir, la manzana es estúpida.