0

Facebook のログイン、ちょっとした問題に巻き込まれました。

残念ながら、私が行っている仕事では、xcode 3.2.6 を実行している Snow Leopard にしかアクセスできず、そこから変更することはできません。私が知っている過去からの爆発。

私が使用したFB SDK 3.0を使用してFacebookログインを機能させるには:

AppDelegate.h:

     #import <FacebookSDK/FacebookSDK.h>
....
    @property (retain, nonatomic) FBSession *session;

AppDelegate.m:

@synthesize session = _session;
...
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation { 
     return [self.session handleOpenURL:url];
}

次に、FBLoginViewController.m viewDidLoad で:

MyAppDelegate *appDelegate;
appDelegate = [[UIApplication sharedApplication]delegate];

   if (!appDelegate.session.isOpen) {
       appDelegate.session = [[FBSession alloc] init]; 

       if (appDelegate.session.state == FBSessionStateCreatedTokenLoaded) {
         [appDelegate.session openWithCompletionHandler:^(FBSession *session, 
                                                       FBSessionState status, 
                                                              NSError *error) {
                }];
            }
      } 

これで、シミュレーター 4.3 で動作しました。plistでfbアプリIDが正しく設定されていること、アプリが正しく設定されていることなどを確認していると思います。

ただし、IOS 6 を搭載したデバイスでテストすると、クラッシュ ログの関連するセクションが次のように表示されてクラッシュします。

Exception Type:  EXC_CRASH (SIGSYS)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   MyApp                       0x000e7cac 0x59000 + 584876
1   libdispatch.dylib               0x34a384b4 0x34a37000 + 5300
2   libdispatch.dylib               0x34a39836 0x34a37000 + 10294
3   MyApp                       0x000e7ca0 0x59000 + 584864
4   MyApp                           0x000d9d08 0x59000 + 527624
5   MyApp                           0x000d9934 0x59000 + 526644
6   MyApp                           0x000da6c6 0x59000 + 530118
7   MyApp                           0x0005b1f0 0x59000 + 8688
8   MyApp                           0x000660a4 0x59000 + 53412
9   UIKit                           0x336130a0 0x33525000 + 975008
10  UIKit                           0x33613052 0x33525000 + 974930
11  UIKit                           0x33613030 0x33525000 + 974896
12  UIKit                           0x336128e6 0x33525000 + 973030
13  UIKit                           0x33612ddc 0x33525000 + 974300
14  UIKit                           0x3353b5ec 0x33525000 + 91628
15  UIKit                           0x335287fc 0x33525000 + 14332
16  UIKit                           0x33528116 0x33525000 + 12566
17  GraphicsServices                0x382ab5a0 0x382a5000 + 26016
18  GraphicsServices                0x382ab1ce 0x382a5000 + 25038
19  CoreFoundation                  0x3331c170 0x33285000 + 618864
20  CoreFoundation                  0x3331c112 0x33285000 + 618770
21  CoreFoundation                  0x3331af94 0x33285000 + 614292
22  CoreFoundation                  0x3328deb8 0x33285000 + 36536
23  CoreFoundation                  0x3328dd44 0x33285000 + 36164
24  GraphicsServices                0x382aa2e6 0x382a5000 + 21222
25  UIKit                           0x3357c2f4 0x33525000 + 357108
26  MyApp                       0x0005b012 0x59000 + 8210
27  MyApp                       0x0005afc8 0x59000 + 8136
Thread 0 crashed with ARM Thread State (32-bit):
    r0: 0x0000004e    r1: 0x00000000      r2: 0x00000000      r3: 0x00000000
    r4: 0x3b091bd0    r5: 0x2fda7c0c      r6: 0x1cd560e0      r7: 0x2fda6734
    r8: 0x00000000    r9: 0x2fda6764     r10: 0x1cd560e0     r11: 0x1cdac4d0
    ip: 0x000e7c0d    sp: 0x2fda672c      lr: 0x34a384b7      pc: 0x000e7cac
  cpsr: 0x60000010

私が試したこと:

明らかにxcode 3.2.6では、xcode経由で実行できず、IOS 6デバイスでさらにデバッグするためにコンソールにアクセスできません。そのため、プロジェクトを友人 (有料アカウントがないためデバイスでテストできない) に送信し、xcode 4.5 およびシミュレーター 6 で動作することを確認しました。

シミュレータ 6 および 4.3 で動作する場合、IOS 6 デバイスでは動作しないのはなぜですか? 私は少し困惑しています....

遊んだ後(行を​​コメントアウトするなど)、次の行でクラッシュしていると思います:

appdelagate.session = [[FBSession aloc] init];

しかし、確信が持てない、またはその理由を理解するのが難しいと感じています。

いくつかのアイデアや助けが欲しいです、ありがとう。

4

1 に答える 1

0

私が見つけた唯一の解決策は、Snow Leopard 用の xcode 4.2 にアップグレードすることでした。xcode 4.2 が Snow Leopard のオプションであるとは知りませんでした。しかし、そうです。上記のコードは、xcode 4.2 では変更なしですぐに機能しました。

于 2013-02-19T00:55:54.173 に答える