2013-01-21 9 views
43

Ich hatte diese Warnung beim Absenden meiner App mit Application Loader.Die App verweist nicht öffentlichen Selektor in ID (Facebook SDK iOS)

The app references non-public selector in MyApp : id 

Diese Warnung kann meine App möglicherweise von der Apple AppStore-Validierung ablehnen.

Meine app Mithilfe von Facebook SDK iOS 3.1.1 (auch mit 3.1 versucht)

+3

Die Warnung erschien in Facebook iOS SDK 3.8 (Es war nicht so eine Warnung in einer Reihe von früheren Versionen.) –

Antwort

65

Dieses Problem für iOS, weil der Facebook-SDK geschieht.

Application Loader verbietet die Verwendung der Variablen "id" von jeder FBGraphUser-bezogenen Klasse (möglicherweise auch andere Variablen, nicht getestet) - z. :

id<FBGraphUser> friend 
id<FBGraphUserExtraFields>user 

Facebook ist über dieses Problem ab Januar 2013 informiert: Bug Report

Zur Zeit dieses Problem umgehen, diese verwenden:

[user objectForKey:@"id"] 
[friend objectForKey:@"id"] 

statt user.id und friend.id wie in der gezeigt verschiedene Facebook-Beispiele.

+3

Würde die Anwendung aus dem App Store aufgrund diesem abgelehnt werden? –

+0

Außerdem verwende ich die gleiche Weise, wie BabyAzerty beschrieben hat, aber ich bekomme immer noch diese Warnung. Könnten Sie mich wissen lassen, was andere die Ursache dafür sein kann. Ich habe KVC überall verwendet. Danke. –

+1

In meinem Fall wurde die Anwendung von den automatischen Robots-Validatoren direkt und eindeutig abgelehnt, ich konnte sie nicht in den AppStore schieben. Vielleicht ist es heute anders (aber ich glaube es kaum)? Unglücklicherweise war das mein einziges Problem. Ich empfehle Ihnen, zu überprüfen, dass JEDE Facebook-Variablen/Arrays mit der ForKey-Funktion verwendet werden. Viel Glück ! – Kalzem

3

Nur für Leute, die von Suchmaschinen hierher kommen, wird dies im neuesten Facebook SDK behoben (wir haben unser Projekt in die Bibliotheksversion 3.7.1 verschoben und die Validierungswarnungen sind weg).

+7

Ich habe immer noch dies mit 3,8: S –

+0

Ich sehe es mit 3.9, aber mein Status ist "Eingereicht mit Validierung Warnungen", warten auf Überprüfung. Vielleicht wird Apple das Richtige tun? – JLundell

+0

@JLundell: Wird Ihre App von Apple akzeptiert? Ich stehe vor dem gleichen Problem und denke daran, mich mit den Warnungen zu unterwerfen. –

0

Datei FBGraphUser.h

Änderung

@property (behalten, nonatomic) NSString * id;

von

@property (behalten, nonatomic) NSString * FbUserId;

2

Facebook iOS SDK 3.12 das gleiche Problem in FBGraphUser.h.

ändern

@property (retain, nonatomic) NSString *id; 

zu

@property (retain, nonatomic) NSString *UserId; 
0

Verwenden Facebook iOS SDK 3.13. Es wird keine Validierungswarnungen geben.

+1

Nicht wahr. Das Problem besteht weiterhin mit 3.13.1 – Nicolinux

+0

Ich hatte v3.13 verwendet, ich habe keine Validierungsfehler erhalten. – Nookaraju

0

Ich löste dieses Problem (wo 13.1 immer noch Warnungen generieren und eine ungültige Binärzahl in itunesconnect erzeugen würde), indem ich die FacebookSDK-Quelle von Github (link) und das Skript "build_framework.sh" im Skriptverzeichnis herunterlade. Dann fügte ich das generierte Framework zu meinem Xcode-Projekt hinzu - und bekam keine weiteren Warnungen.

0

Die Validierungswarnungen sind auch in v3.13 enthalten. Ich weiß nicht, ob das für andere Leute funktioniert, aber er ist eine schnelle Lösung, die den Fehler beseitigt hat. In FBGraphUser.h um Linie 41 habe ich geändert ...

@property (retain, nonatomic) NSString *id;

zu

@property (retain, nonatomic) NSString *FBUserID; 

bekam ich auch die gleiche Validierung Warnung über setProfileId so ging ich zu FBProfilePictureView.h und änderte das Profil auf der Leitung 54 & 76 bis FBID.

Ich habe dann meine FBLoginView-Informationen im ViewController meines Spiels aktualisiert, um die Änderungen widerzuspiegeln. Alles, was mit dem FB zusammenhängt, scheint immer noch in meiner App zu funktionieren und es hat die Validierung des Application Loaders bestanden.

+0

Ich würde nicht empfehlen, Änderungen in den FBs vorzunehmen, da Ihre Änderungen bei der Aktualisierung des SDK nicht funktionieren. – Kalzem

3

Für alle neuen kommen hier auf der Suche nach einer Antwort auf diese. Das Problem scheint in v3.14.1 Fest nach Facebook SDK Changelog

https://developers.facebook.com/docs/ios/change-log-3.x/

  • Die ID-Eigenschaft auf den Typen FBGraphObject, FBGraphPlace, FBOpenGraphAction und FBOpenGraphObject veraltet sind in Gunsten zu haben von objectID, um Warnungen vor dem Senden von App-Stores zu vermeiden.

  • Die Beschreibung Eigenschaft FBLinkShareParams und FBOpenGraphObject
    hat mich für linkDescription und
    objectDescription bzw. veraltet App Store Vorlage
    Warnungen zu vermeiden.