ios - older - FBSOpenApplicationErrorDomain error 1
xcode sdk (13)
Tuve el mismo error después de actualizar Xcode a v7.0. Después de unas pocas horas luchando, descubrí que había una configuración de variable de entorno vacía que pasar para la acción Ejecutar en mi esquema activo (no tengo idea de por qué estaba allí). La eliminación de esta variable de entorno vacía resolvió el problema de inmediato.
Estoy tratando de ejecutar mi aplicación iOS que se migró de Swift 1.2
a Swift 2.0
en Xcode 7 usando el simulador de iPhone (cualquiera), me aparece el siguiente error:
La operación no pudo ser completada. (FBSOpenApplicationErrorDomain error 1.)
Ya traté de restablecer la configuración y el contenido del simulador, salir de Xcode, limpiar proyecto, etc.
Este error no es (creo) nada que ver con un SDK de Facebook. Estoy obteniendo esto y no tengo ningún SDK de Facebook en absoluto.
Lo que encontré es que aunque Xcode no muestra ningún motivo para el error, fue que el registro del simulador sí lo hace.
Cuando obtenga este error, el simulador se ejecutará, así que cambie a él, y luego desde el menú "Depurar", seleccione "Abrir registro del sistema ...".
Una vez que el registro esté en pantalla, recorra hasta su final y debería ver mucha más información (incluido un seguimiento de la pila si tiene suerte) sobre lo que salió mal.
En mi caso, fue una excepción lanzada porque faltaba un archivo activo o no se pudo encontrar.
En mi caso lo resuelvo como.
Solo descarte la aplicación en la que está trabajando si se ejecuta en modo de fondo.
funciona para mí y espero que funcione para usted.
- Simulador-> Restablecer contenido y configuración
- Salir del simulador
- Ejecute los casos de prueba nuevamente
Estoy bastante seguro de que este problema puede estar relacionado con el ATS en iOS 9.
Asegúrese de haber seguido los pasos proporcionados por el equipo de FB para que su SDK funcione en iOS 9. Notas de la versión .
EXPLICACIÓN
Seguridad de transporte de la aplicación
"App Transport Security es una característica que mejora la seguridad de las conexiones entre una aplicación y servicios web. La característica consiste en los requisitos de conexión predeterminados que se ajustan a las mejores prácticas para conexiones seguras. Las aplicaciones pueden anular este comportamiento predeterminado y desactivar la seguridad del transporte".
"Todas las conexiones que usan las API NSURLConnection, CFURL o NSURLSession usan el comportamiento predeterminado de la Seguridad de transporte de aplicaciones en aplicaciones creadas para iOS 9.0 o posterior, y OS X v10.11 o posterior. Las conexiones que no cumplan con los requisitos fallarán".
Fuente: Apple - App Transport Security Technote
Esto significa que si intenta realizar una conexión en una aplicación creada para iOS 9.0 o posterior, o OS X v10.11 o posterior, y esa conexión no cumple con los requisitos de ATS, la conexión fallará.
Solución
Hay dos soluciones para este problema.
Recomendado
Asegúrese de que sus conexiones cumplan con los requisitos impuestos por ATS.
"Solución temporal"
Inhabilite el ATS en su aplicación para permitir conexiones que no se ajusten a esto.
Esta puede ser una solución temporal porque como ahora puede desactivar el uso del ATS en su aplicación, en futuras versiones esta opción puede eliminarse y se verá obligado a utilizar ATS como característica de seguridad predeterminada.
SDK de FACEBOOK
Facebook para ganar algo de tiempo y permitir que su usuario continúe usando su SDK en iOS 9.0 y OS X 10.11. Escogieron la "Solución Temporal" y debido a eso tienes que hacerlo.
- Deshabilitar ATS de su aplicación.
- o incluya en la lista blanca servidores de Facebook para solicitudes de red.
Para hacer lo posterior, debe agregar lo siguiente a su objetivo .plist
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>facebook.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>fbcdn.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>akamaihd.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
Además, es posible que deba realizar otros cambios. Si usa alguno de los cuadros de diálogo de Facebook (por ejemplo, Iniciar sesión, Compartir, Invitaciones a la aplicación, etc.) que pueden realizar una aplicación, cambie a las aplicaciones de Facebook.
En una aplicación de tvOS, puede ir al simulador y eliminar la aplicación allí y luego volver a ejecutar el programa.
Este error ocurre cuando una ejecución previa de la aplicación todavía está activa en el fondo, incluso si hizo clic en "Detener" en Xcode. Intente matar manualmente la aplicación en el simulador en sí: cmd + shift + H dos veces para abrir las aplicaciones en ejecución, arrastre su aplicación para matarla. Nota cmd + shift + H es el atajo para ir a la pantalla de inicio. Entonces comience la nueva ejecución y debería funcionar bien :)
Si las otras correcciones no funcionan
Pasó por estos intentos:
- Forzar salir de la aplicación en el simulador
- simulador de reinicio
- aplicación eliminada del simulador
- Disabled App Transport Security globalmente (no recomendado)
- Desactivado todos los modos de fondo que siempre se devuelve, evitando las sesiones de depuración.
Esta fue mi solución
Parece que el administrador de esquemas habilita un campo sin argumentos que causó mi problema.
Product menu > Scheme > Edit Scheme > Run > Arguments > Environment Variables
Si hay una marca de verificación allí con un campo vacío al lado, desmarquela.
Obtenía el código de error "1". Espero que esto funcione para ti también.
Después de muchas dificultades, creo que el problema es que podrías estar intentando ejecutar la aplicación que se ejecuta en segundo plano. Detener la aplicación de xcode en realidad no la detiene (Extraño a la derecha), tiene que presionar la tecla de inicio que es cmd + shift + h dos veces, encontrar su aplicación y matarla. Todavía estoy tratando de encontrar una forma mejor de hacerlo, ya que es tedioso, pero al menos esto funcionará temporalmente.
En mi caso, pude resolverlo usando un simulador diferente. Sucedió de manera consistente con el simulador de iPhone 4S
, pero una vez que cambié al simulador de iPhone 6 Plus
, el error desapareció.
Menú de productos> Esquema> Editar esquema> Ejecutar> Argumentos> Variables de entorno Si hay una marca de verificación allí con un campo vacío al lado, desmarquela.
Obtenía La operación no se pudo completar (error "1"). Se solucionó simplemente desmarcarla
Salir (Comando + Q) del simulador y lanzarlo de nuevo resolvió el problema.
Recibí este error usando Xamarin iOS, Visual Studio para Mac 7.2, compilando para iPad 2, iOS 9.3. La solución fue cambiar las arquitecturas soportadas de la construcción de iOS a i386 + x86_64 , en Proyecto -> Opciones -> Construir iOS -> Arquitecturas compatibles .