iOS 앱 (iOS 5에서 실행되는 ARC)에서 facebook connect를 사용하고 있습니다. 그것은 두 시뮬레이터와 장치에서 잘 작동하지만 오늘 아침부터 장치에서 작동이 멈추었으므로 시뮬레이터에서 여전히 작동합니다. 장치에서 fbDinNotLogin 메서드가 호출됩니다.iOS에서 iOS Facebook SDK 연결이 실패합니다.
시뮬레이터가 모바일 페이스 북을 사용하고 내 앱이 기본 iOS 페이스 북 앱을 사용한다는 차이점을 알고 있으며, 다른 곳에서 로그인 할 수 있도록 facebook.m 파일을 조정할 수 있음을 알고 있습니다. 그걸하고 싶지 않아.
내 이전 빌드를로드하는 중 (모든 것이 잘 작동하는 곳)도 동일한 결과를 제공합니다. 어제 실행 된 동일한 코드가 오늘 실행되지 않습니다. 왜 이런 일이 일어나는가? 아래는 내 대리인 .m 파일입니다.
[EIDT] 네이티브 페이스 북 앱에서 다양한 취미를 갖게되었습니다. 때로는 페이스 북 앱을 열어 내 앱으로 돌아 오지 않는 경우가 있습니다. 때로는 페이스 북 앱에서 허락을받지 않아도 내 앱으로 돌아갈 때가 있습니다. 나는 매우 혼란 스럽다. [/ 편집]
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {
user *userClass= [[user alloc] init];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
{
// app already launched for the first time
}
else
{
// This is the first launch ever
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
[[NSUserDefaults standardUserDefaults] synchronize];
[userClass CopyDbToDocumentsFolder];
}
facebook = [[Facebook alloc] initWithAppId:@"XXXXXXXXXX" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:nil];
}
return YES;
}
-(void)fbDidLogout
{
NSLog(@"Facebook loggedOut");
}
- (void)fbDidNotLogin:(BOOL)cancelled
{
NSLog(@"Facebook Connect Failed");
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
- (void)fbSessionInvalidated
{
NSLog(@"Facebook Session Invalidated");
}
- (void)fbDidExtendToken:(NSString*)accessToken
expiresAt:(NSDate*)expiresAt
{
NSLog(@"Facebook Toekn was extended");
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [self.facebook handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication: (NSString *)sourceApplication annotation:(id)annotation {
return [self.facebook handleOpenURL:url];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Although the SDK attempts to refresh its access tokens when it makes API calls,
// it's a good practice to refresh the access token also when the app becomes active.
// This gives apps that seldom make api calls a higher chance of having a non expired
// access token.
[[self facebook] extendAccessTokenIfNeeded];
}
@end