ios facebook xamarin url-scheme

ios - SDK de Facebook: aplicación no registrada como esquema de URL



xamarin url-scheme (8)

Estoy usando el Facebook SDK encuentra here , y estoy probando la muestra que se proporciona (en la carpeta FacebookiOSSample ).

Si simplemente reemplazo la AppId aquí con mi AppId específica, entonces ya no puedo compartir. (Lo reemplacé tanto en el archivo AppDelegate como en el archivo info.plist ). Ahora recibo el siguiente error:

FBSDKLog: uso no válido de FBAppCall, fb **** no está registrado como un Esquema de URL. ¿Estableció ''FacebookUrlSchemeSuffix'' en su lista?

De lo contrario, esto funciona bien con AppId original de la muestra que apunta a algo llamado IFaceTouch .

¿Qué podría estar mal con la configuración de mi aplicación? ¿Cómo registro mi AppId ?


1- En Xcode, haga clic derecho en el archivo Info.plist de su proyecto y seleccione Abrir como -> Código fuente.

2- Inserta el siguiente fragmento XML en el cuerpo de tu archivo justo antes del último elemento </dict> .

<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb{your-app-id}</string> </array> </dict> </array> <key>FacebookAppID</key> <string>{your-app-id}</string> <key>FacebookDisplayName</key> <string>{your-app-name}</string> <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-share-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array>

3- Reemplace {su-id-de-aplicación}, y {su-nombre-de-la-aplicación} con el ID y el nombre de la aplicación de su aplicación que se encuentran en el Tablero de la aplicación de Facebook.


Hoy resolví este error simplemente eliminando espacio de FacebookDisplayName .

asegúrate de no tener espacio en FacebookDisplayName


Sigue estos tres pasos:

  1. Cree una clave llamada FacebookAppID con un valor de cadena y agregue allí la ID de la aplicación.
  2. Cree una clave llamada FacebookDisplayName con un valor de cadena y agregue el Nombre para mostrar que configuró en el Tablero de aplicaciones.
  3. Cree una clave de matriz llamada tipos de URL con un único subelemento de matriz llamado Esquemas de URL . Dale un solo elemento con tu ID de aplicación con el prefijo fb. Esto se utiliza para garantizar que la aplicación reciba la URL de devolución de llamada del flujo de OAuth basado en la web.

El .plist terminado debería verse más o menos así:

Enlace de origen:


Vaya a este Link Seleccione su aplicación, y configure su info.plist


Yo también estaba enfrentando el mismo problema. Entonces hizo esto:

<dict> <key>CFBundleURLSchemes</key> <array> <string>fb154510174913175</string> <string>fbauth2</string> // add this line to remove the error </array> </dict>

y el problema está solucionado ahora.


hay otra sección debajo de la información - Tipos de URL

compruebe que los valores allí, en el campo Esquemas de URL , coincidan con el valor en los tipos de URL -> Esquemas de URL en la lista de propiedades anterior. (y también coincide con FacebookAppID)


Para iOS 9

Si tiene un error: ''LSApplicationQueriesSchemes''

Basado en la respuesta Bear with me , también deberás agregar esas líneas:

<key>LSApplicationQueriesSchemes</key> <array> <string>fbauth2</string> </array>

Mira this

Deberías terminar con esas líneas al final de tus archivos .plist:

<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb2R3234544534554</string> </array> </dict> </array> <key>FacebookAppID</key> <string>2R3234544534554</string> <key>FacebookDisplayName</key> <string>stevejeff</string> <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> <key>LSApplicationQueriesSchemes</key> <array> <string>fbauth2</string> </array> </dict> </plist>

* Si usa v4.6.0 o superior del SDK, solo necesita agregar: * (Gracias mohsinj )

<key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array>


En términos de claves sin procesar y valores, debe tener CFBundleURLTypes y CFBundleURLSchemes. ¡Espero que ayude!