Puoi usare l'ID app Facebook in più app per iOS, ad esempio le versione gratuita e quella a pagamento della tua app.
Definisci un parametro per il suffisso dello schema URL, "FacebookUrlSchemeSuffix" nel file ".plist" della tua app.
Nota: il suffisso funziona solo con caratteri alfabetici.
Lo zip dell'SDK comprende un "FacebookSDKStrings.bundle" contenente le stringhe localizzate per le risorse dell'SDK. Includi il bundle nella tua app e abilita Base Internationalization (Internazionalizzazione di base) come descritto nella documentazione Apple.
Puoi scaricare le versioni precedenti dell'SDK nell'area download per iOS.
Dal momento che la finestra di condivisione nativa fa parte dell'app Facebook per iOS, non può essere eseguita su un simulatore. Usa un dispositivo fisico per testare la finestra di condivisione nativa. Stiamo cercando di rendere possibile il test della finestra di condivisione nativa sul simulatore.
Assicurati che le istruzioni di importazione siano corrette e presenti nella parte superiore di ogni file quando provi a usare le classi dell'SDK di Facebook. Ad esempio:
#import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKShareKit/FBSDKShareKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h>
Quando usi i framework in Objective-C, le classi che usano le categorie per estendere le classi esistenti non vengono caricate automaticamente.
Quando provi a chiamare un metodo esteso in queste classi, riceverai un errore "unrecognized selector sent to instance". Anche le classi che vengono usate dal configuratore di interfaccia Xcode non vengono caricate automaticamente, ad esempio quando aggiungi "FBSDKLoginButton" all'interfaccia rappresentando una vista nel file .xib e impostandola come "FBSDKLoginButton" dall'interfaccia utente del configuratore di interfaccia. Pertanto, quando provi a chiamare i metodi, riceverai un errore "unrecognized selector sent to instance". Questo problema può essere risolto in due modi.
Puoi caricare la classe manualmente in "application:didFinishLaunchingWithOptions:" dell'app delegate chiamando:
[FBSDKLoginButton class];
In alternativa, puoi aggiungere il flag del linker "-ObjC". Il flag comunica al linker di caricare nell'SDK ogni file di oggetto che definisce una classe o una categoria Objective-C. Questo approccio consentirà il funzionamento immediato di tutte le classi ma aumenterà le dimensioni del file eseguibile (a causa del codice oggetto aggiuntivo caricato nell'app).
Per aggiungere il flag "-ObjC", clicca sul target del progetto e seleziona la tab "Build Settings" (Impostazioni della build). Qui, in "Linking" (Link), clicca due volte su "Other Linker Flags" (Altri flag del linker) per aggiungere "-ObjC".
È normale che siano presenti errori di configurazione nel file ".plist". Assicurati che il file ".plist" includa le righe di "FacebookAppID" e "FacebookDisplayName", nonché la voce URL Type per "fb{app-id}".
Se ottieni risultati imprevisti quando esegui richieste API Graph, abilita la modalità debug aggiungendo questo codice prima delle richieste:
[FBSettings setLoggingBehavior: [NSSet setWithObject:FBSDKLoggingBehaviorGraphAPIDebugInfo]];
Usa "FBSDKLoggingBehaviorGraphAPIDebugWarning" se desideri eliminare i messaggi informativi e mantenere solo gli avvisi.
L'abilitazione di questo comportamento di registrazione aggiungerà il parametro "debug" a tutte le richieste API Graph e indicherà i problemi che si verificano nella console.
Puoi scoprire di più sulla modalità debug dell'API Graph qui.
L'SDK segnalerà un annullamento se l'utente tocca chiaramente un pulsante Annulla nelle finestre di dialogo Accedi oppure se torna manualmente alla tua app (processo noto come annullamento implicito). Assicurati di non avviare un flusso di accesso nell'ambito del ciclo di vita dell'app delegate (ad esempio, l'avvio di un accesso all'interno di "application:openURL:sourceApplication:annotation:"), dal momento che risulterebbe simile a un annullamento implicito. Se necessario, sposta l'avvio dell'accesso dopo la coda principale: in questo modo il ciclo di vita dell'app delegate verrà completato per primo.
La finestra di condivisione invia una notifica ai metodi "sharer:didCompleteWithResults:" e "sharerDidCancel:" del proprio delegate in caso di azioni degli utenti.
Se ottieni risultati imprevisti quando esegui richieste, disattiva il debug per "FBSDKGraphRequests". Aggiungi questo codice prima di ogni richiesta:
[FBSDKSettings enableLoggingBehavior:FBSDKLoggingBehaviorNetworkRequests];
Potrai eseguire il debug di ogni problema visualizzando direttamente le richieste e le risposte dei server.
Prendi in considerazione l'idea di osservare le altre costanti "FBSDKLoggingBehavior*" definite in "FBSDKSettings.h" per gli altri elementi che puoi registrare.