2016-04-28 21 views
0

iOS ReactNativeプロジェクトでFBSDKを実行しようとしています。ReactNativeの取得FacebookSDKの作業

私はreact-native init AwesomeProject、ブランドの新しいプロジェクトを取得githubの上React Native FBSDK instructionsに従ってください、と私はmain.mでエラーを取得する:

thread 1:signal SIGABRT 

少しグーグルが私hereリードし、その後、私はへLSApplicationQueriesSchemesキーを追加していhere私のinfo.plist。その問題を解決する。

私はFacebook app setup guideに従ってください。私には、とりわけNSAppTransportSecurityのinfo.plistの鍵が追加されています。しかし、その後、アプリケーションは開発サーバーに接続できません。

もう少しグーグルで、私はNSAppTransportSecurityというキーが必要ないと言っているので、取り出してアプリを実行します。ええ、問題は解決しました。

React Native FBSDK github pageに戻ると、私はその使用方法のセクションで最初の例を取得します。 LoginButton。そのままアプリにコピーしてください。それは動く。私はそれをクリックします。そして...

thread 1:signal SIGABRT 

Aaaah!

これは誰でも利用できますか?

答えて

2

私は持っています! SDKをインストールしたら、すべての設定がプロパティセットになっていることを確認する必要があります。また、AppDelegateでsdkをインポートする必要があります。

私のinfo.plistに関連する設定があります。アプリイドと表示名を定義する必要があり

  1. <key>CFBundleURLTypes</key> 
        <array> 
        <dict> 
         <key>CFBundleURLSchemes</key> 
         <array> 
         <string>fb12345678910</string> 
         </array> 
        </dict> 
        </array> 
        <key>FacebookAppID</key> 
        <string>12345678910</string> 
        <key>FacebookDisplayName</key> 
        <string>My Awesome App</string> 
    
    
        <key>NSAppTransportSecurity</key> 
        <dict> 
        <key>NSExceptionDomains</key> 
        <dict> 
         <key>facebook.com</key> 
         <dict> 
         <key>NSIncludesSubdomains</key> <true/> 
         <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/> 
         </dict> 
         <key>fbcdn.net</key> 
         <dict> 
         <key>NSIncludesSubdomains</key> <true/> 
         <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/> 
         </dict> 
         <key>akamaihd.net</key> 
         <dict> 
         <key>NSIncludesSubdomains</key> <true/> 
         <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/> 
         </dict> 
         <key>localhost</key> 
         <dict> 
         <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> 
         </dict> 
         <key>api.mydomain.com</key> 
         <dict> 
         <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> 
         </dict> 
        </dict> 
        </dict> 
    
    
        <key>LSApplicationQueriesSchemes</key> 
        <array> 
        <string>fbapi</string> 
        <string>fb-messenger-api</string> 
        <string>fbauth2</string> 
        <string>fbshareextension</string> 
        </array> 
    

    には3つのセクションがあります。

  2. あなたのアプリがアクセスできるドメイン、明らかにFacebookのドメイン、akamai、自分のドメインを定義する必要があります。私はlocalhostをリストに含めました。
  3. 最後に、あなたはここに私のAppDelegate.mファイルだクエリスキーム

を含める必要があります。

`` ` の#import "AppDelegate.h" これらの構成では

#import "RCTRootView.h" 

#import <FBSDKCoreKit/FBSDKCoreKit.h> 

@implementation AppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSURL *jsCodeLocation; 

    /** 
    * Facebook SDK 
    * 
    **/ 
    [[FBSDKApplicationDelegate sharedInstance] application:application 
          didFinishLaunchingWithOptions:launchOptions]; 

    /** 
    * Loading JavaScript code - uncomment the one you want. 
    * 
    * OPTION 1 
    * Load from development server. Start the server from the repository root: 
    * 
    * $ npm start 
    * 
    * To run on device, change `localhost` to the IP address of your computer 
    * (you can get this by typing `ifconfig` into the terminal and selecting the 
    * `inet` value under `en0:`) and make sure your computer and iOS device are 
    * on the same Wi-Fi network. 
    */ 

    jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; 

    /** 
    * OPTION 2 
    * Load from pre-bundled file on disk. The static bundle is automatically 
    * generated by the "Bundle React Native code and images" build step when 
    * running the project on an actual device or running the project on the 
    * simulator in the "Release" build configuration. 
    */ 

// jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 

    RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 
                 moduleName:@"MyAwesomeApp" 
               initialProperties:nil 
                launchOptions:launchOptions]; 

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
    UIViewController *rootViewController = [UIViewController new]; 
    rootViewController.view = rootView; 
    self.window.rootViewController = rootViewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

/** 
* Facebook SDK 
* 
**/ 

- (void)applicationDidBecomeActive:(UIApplication *)application { 
    [FBSDKAppEvents activateApp]; 
} 

- (BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation { 
    return [[FBSDKApplicationDelegate sharedInstance] application:application 
                 openURL:url 
               sourceApplication:sourceApplication 
                 annotation:annotation]; 
} 

@end 

、私は、ログインユーザ自分のサーバーに接続することができるよ、など

幸運!

+0

驚くような答え!ランニングとロギングが完璧です。私はinfo.plistで間違いを犯したように見えます。しかし、今私はあなたが見てみることができる場合には、答えを知っているかもしれない別のものがあります:http://stackoverflow.com/questions/37061266/share-an-image-with-react-native-fbsdk。ありがとう。 – nicholas

関連する問題