Aplikacja odwołuje się do selektora Niepublicznego w id (Facebook SDK iOS)

Miałem to Ostrzeżenie podczas przesyłania mojej aplikacji z Application Loader.

The app references non-public selector in MyApp : id

To Ostrzeżenie może potencjalnie odrzucić moją aplikację z walidacji Apple AppStore.

[1]} Moja aplikacja używa Facebook SDK iOS 3.1.1 (próbowałem również z 3.1)
Author: Kalzem, 2013-01-22

8 answers

Ten problem dzieje się z powodu Facebook SDK dla iOS.

Application Loader zabrania używania zmiennej " id " z dowolnej klasy związanej z Fbgraphuserem ( może inne zmienne też nie testowały) - np.:

id<FBGraphUser> friend
id<FBGraphUserExtraFields>user

Facebook jest informowany o tym problemie od stycznia 2013: raport o błędzie

Obejściem dla tej chwili jest użycie tych:

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

Zamiast user.id i friend.id, Jak pokazano w różnych próbkach Facebook.

 65
Author: Kalzem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-28 20:03:14

Aby zaktualizować dla osób przyjeżdżających tutaj z wyszukiwarek, jest to naprawione w najnowszym Facebook SDK (właśnie przenieśli nasz projekt do biblioteki w wersji 3.7.1 i ostrzeżenia walidacji zniknęły).

 3
Author: Iain Barclay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-16 13:22:35

Dla każdego, kto tu przychodzi i szuka odpowiedzi na to pytanie. Wydaje się, że problem został rozwiązany w wersji 3.14.1 zgodnie z Facebook SDK change log

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

  • Właściwość id na typach FBGraphObject, FBGraphPlace, FBOpenGraphAction i FBOpenGraphObject zostały wycofane w favor of objectID to avoid App store submission warnings.

  • Właściwości opisu FBLinkShareParams I FBOpenGraphObject
    został zdeprecjonowany na rzecz linkDescription i
    objectDescription, aby uniknąć przesyłania aplikacji do sklepu App store]} Ostrzeżenia.

 3
Author: Out of Orbit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-26 21:47:24

Facebook iOS SDK 3.12 ten sam problem w FBGraphUser.h.

Zmień

@property (retain, nonatomic) NSString *id;

Do

@property (retain, nonatomic) NSString *UserId;
 2
Author: gabemorales,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-14 05:41:01

Plik FBGraphUser.h

Zmień

@ property (retain, nonatomic) NSString * id;

By

@ property (retain, nonatomic) NSString *FbUserId;

 0
Author: Carlos Avalos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-30 17:04:02

Użyj Facebook iOS SDK 3.13. nie będzie żadnych ostrzeżeń.

 0
Author: Nookaraju,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-11 14:22:31

Rozwiązałem ten problem (gdzie 13.1 nadal generowałby ostrzeżenia i generowałby nieprawidłowy plik binarny w itunesconnect) pobierając źródło FacebookSDK z Github (link ) i używając "build_framework.sh" script in the scripts reż. Następnie dodano wygenerowany framework do mojego projektu Xcode - i nie ma więcej ostrzeżeń.

 0
Author: Nicolinux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-30 14:39:09

Ostrzeżenia dotyczące walidacji są również obecne w wersji 3.13. Nie wiem, czy to zadziała na innych ludzi, ale jest szybkim obejściem, które pozbyło się błędu. W FBGraphUser.h wokół linii 41 zmieniłem...

@property (retain, nonatomic) NSString *id;

Do

@property (retain, nonatomic) NSString *FBUserID; 

Otrzymywałem również to samo ostrzeżenie dotyczące walidacji setProfileId, więc poszedłem do FBProfilePictureView.H I zmienił profileID na linii 54 i 76 na FBID.

Następnie zaktualizowałem informacje o FBLoginView w kontrolerze ViewController mojej gry, aby odzwierciedlić zmiany. Wszystko co związane z FB nadal wydaje się działać w mojej aplikacji i przeszło walidację Application Loader.

 0
Author: ASHISHT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-06 08:14:32