canOpenUrl: esta aplicación no puede consultar el esquema de instragram

93

Estoy tratando de agregar la URL de Instagram a mi aplicación en iOS9, sin embargo, recibo la siguiente advertencia:

-canOpenURL: failed for URL: "instragram://media?id=MEDIA_ID" - error: "This app is not allowed to query for scheme instragram"

Sin embargo, he agregado lo siguiente a LSApplicationQueriesSchemesmi info.plist;

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>instagram</string>
    <string>instagram://media?id=MEDIA_ID</string>//this one seems to be the issue
</array>

¿Cualquier ayuda es muy apreciada?

EDITAR 1

Este es el código que estoy usando para abrir Instagram:

 NSURL * instagramURL = [NSURL URLWithString:@"instragram://media?id=MEDIA_ID"];//edit: note, to anyone copy pasting this code, please notice the typo OP has in the url, that being "instragram" instead of "instagram". This typo was discovered after this StackOverflow question was posted.
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
    //do stuff
}
else{
    NSLog(@"NO instgram found");
}

basado en este ejemplo.

DevC
fuente
5
¿Es porque escribiste instragram en lugar de instagram?
James P
2
@JamesP se abofetea a sí mismo, ¿cómo me perdí eso, pero lo arreglé y el problema persiste?
DevC

Respuestas:

204
  1. Su LSApplicationQueriesSchemesentrada solo debe tener esquemas. No tiene sentido la segunda entrada.

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>instagram</string>
    </array>
  2. Lea el error. Está intentando abrir la URL con un error tipográfico en el esquema. Fije su referencia a instragramen su llamada a canOpenURL:.

rmaddy
fuente
1
Es vergonzoso, leí el mensaje de error unas 30 veces y seguí mirándolo. El error ya desapareció. El primer punto también es correcto, no hubo necesidad de la segunda entrada.
DevC
15
Es como intentar revisar tu propio trabajo. No funciona. Sigues viendo lo que esperas que sea, no lo que realmente es.
rmaddy
6

Ponga solo <string>instagram</string>. No es necesaria la ruta completa, sino la base de la URL del esquema.

Andr3a88
fuente
5

Para Facebook que lo necesita:

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fbauth</string>
        <string>fbauth2</string>
        <string>fb-messenger-api20140430</string>
        <string>fbapi20130214</string>
        <string>fbapi20130410</string>
        <string>fbapi20130702</string>
        <string>fbapi20131010</string>
        <string>fbapi20131219</string>
        <string>fbapi20140410</string>
        <string>fbapi20140116</string>
        <string>fbapi20150313</string>
        <string>fbapi20150629</string>
        <string>fbshareextension</string>
    </array>
Ofir Malachi
fuente
5
Esto no tiene nada que ver con la pregunta.
rmaddy
esto no responde a la pregunta real
Gulfam Khan
2
facebook posee instgram .. tos
Ezos