Facebook iOS Safari "No se puede abrir el error de página" al autenticar al usuario con inicio de session único

Estoy girando en círculos con este problema, y ​​parece que Facebook tiene algunos boletos abiertos con respecto a él, pero quería ver si alguien tenía el mismo problema que tengo y encontré una solución temporal o mejor.

Descargué la "DemoApp" de Facebook, y puedo poner mi appId en su info.plist como tal: fb1234567890 (donde 1234567890 es mi appId). Puede autenticar al usuario realizando varias tareas a Safari, ingresando mis cnetworkingenciales, permitiendo el acceso de mi aplicación y luego networkingirigiendo a "DemoApp" con mi session (y puedo solicitar mi información).

AHORA, estoy tratando de integrar la funcionalidad de DemoApp en mi aplicación actual.

Puedo acceder a la pantalla de inicio de session e ingresar mis cnetworkingenciales. Me permite dar acceso a mi request a mi información personal. Hago clic en allow y Safari procesa una nueva request y luego devuelve el post de error : Safari cannot open the request because the address is invalid en la URL: http://www.facebook.com/connect/uiserver.php

SIN EMBARGO, si tengo instalado DemoApp en mi simulador y mi propia aplicación, cambiará BACK a DemoApp con mi session iniciada. Si desinstalo DemoApp e bash de nuevo con mi aplicación, obtendré el error de Safari.

¿QUÉ PUEDO HACER PARA RESOLVER ESTO? Cualquier ayuda sería genial; Estoy golpeando mi cabeza aquí. 🙁

Mi info.plist :

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLName</key> <string></string> <key>CFBundleURLSchemes</key> <array> <string>fb1234567890</string> </array> </dict> </array> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleDisplayName</key> <string>${PRODUCT_NAME}</string> <key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string> <key>CFBundleIconFile</key> <string></string> <key>CFBundleIdentifier</key> <string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>${PRODUCT_NAME}</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>1.0</string> <key>LSRequiresIPhoneOS</key> <true/> <key>NSMainNibFile</key> <string>MainWindow</string> </dict> </plist> 

La input CFBundleURLTypes es incorrecta. Debe tener un aspecto como este:

 <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb1234567890</string> </array> </dict> </array> 

Tuve una experiencia muy similar. Descubrí que los cambios de plist que estaba haciendo simplemente no estaban absorbidos por el simulador, incluso después de una construcción limpia. Pude hacerlos cambiar cambiando la configuration del Hardware-> Dispositivo a algo diferente, y luego de nuevo. De alguna manera, esto parece haber causado que los cambios de plist se registren con el sistema operativo en el simulador, mientras que nada más que hice tuvo ese efecto. No estoy seguro de si esta es la forma "correcta" de hacerlo, o si algo en la configuration de compilation está dañado, pero esto, para mí, funcionó alnetworkingedor del problema exacto que estás describiendo.

Las respuestas de Mark me dirigieron en la dirección correcta, pero mi problema fue un poco diferente. Por alguna razón, el plist se ve así:

 <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb1234567890 [defaults setObject:[facebook expirationDate] forKey:@&quot;FBExpirationDat</string> </array> </dict> </array> 

Acabo de eliminar los datos después de la identificación y se solucionó:

 <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb1234567890</string> </array> </dict> </array>