IOS SDK Setup

(Difference between revisions)
Jump to: navigation, search
(Setup Fabric/TwitterKit iOS SDKs)
(SDK Dependencies)
Line 14: Line 14:
 
! Twitter
 
! Twitter
 
|-
 
|-
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Setup&oldid=1912 2.0]
+
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Download 2.0]
 
| FacebookSDK 3.24.0
 
| FacebookSDK 3.24.0
 
| GooglePlus 1.7.1 & GoogleOpenSource 1.7.1
 
| GooglePlus 1.7.1 & GoogleOpenSource 1.7.1
 
| -
 
| -
 
|-
 
|-
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Setup 2.1]
+
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Download 2.1]
 
| Facebook SDK 4.7.0
 
| Facebook SDK 4.7.0
 
| GoogleSignIn 2.0
 
| GoogleSignIn 2.0
 
| -
 
| -
 
|-
 
|-
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Setup&oldid=1985 3.0]
+
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Download 3.0]
 
| Facebook SDK 4.7.0
 
| Facebook SDK 4.7.0
 
| GooglePlus 1.7.1 & GoogleOpenSource 1.7.1
 
| GooglePlus 1.7.1 & GoogleOpenSource 1.7.1
 
| Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
 
| Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
 
|-
 
|-
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Setup 3.1]  
+
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Download 3.1]  
 
| Facebook SDK 4.7.0
 
| Facebook SDK 4.7.0
 
| GoogleSignIn v3.0.0
 
| GoogleSignIn v3.0.0
 
| Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
 
| Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
 
|-
 
|-
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Setup 3.2]  
+
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Download 3.2]  
 
| Facebook SDK 4.7.0
 
| Facebook SDK 4.7.0
 
| GoogleSignIn v3.0.0
 
| GoogleSignIn v3.0.0
 
| Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
 
| Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
 
|-
 
|-
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Setup 3.3] (current)
+
| [http://dev.socialidnow.com/index.php?title=IOS_SDK_Download 3.3] (current)
 
| Facebook SDK 4.23.0
 
| Facebook SDK 4.23.0
 
| GoogleSignIn 4.0.1
 
| GoogleSignIn 4.0.1
 
| Fabric 1.6.12 & TwitterCore 3.0 & TwitterKit 3.1
 
| Fabric 1.6.12 & TwitterCore 3.0 & TwitterKit 3.1
 +
|-
 +
| 3.4 (unreleased)
 +
| Facebook SDK 4.40.0
 +
| GoogleSignIn 4.4.0
 +
| TwitterCore 3.2.0 & TwitterKit 3.4.2
 
|}
 
|}
  
* FacebookSDK.framework (version 4.23.0) [for Facebook login]
+
* iOS: 10.3+
* GoogleSignIn (version 4.0.1) [for Google login]
+
* FacebookSDK.framework (version 4.40.0) [for Facebook login]
* Fabric (version 1.6.12) [for Twitter login]
+
* GoogleSignIn (version 4.4.0) [for Google login]
* TwitterCore (version 3.0) [for Twitter login]
+
* TwitterCore (version 3.2.0) [for Twitter login]
* TwitterKit (version 3.1) [for Twitter login]
+
* TwitterKit (version 3.4.2) [for Twitter login]
 
* SystemConfiguration.framework
 
* SystemConfiguration.framework
 
* UIKit.framework
 
* UIKit.framework
Line 55: Line 60:
  
 
The Facebook, Google and Twitter SDKs also have its own dependencies. Follow the next instructions to setup them.
 
The Facebook, Google and Twitter SDKs also have its own dependencies. Follow the next instructions to setup them.
 +
 +
The current Social-ID SDK was built and tested against the SDK versions listed above. You can also try to use earlier or later dependency versions case your project requires it, the social network SDKs (e.g. Facebook) are compatible in general. Contact us case you have issues with the Social-ID SDK when building your project.
  
 
= Setup Facebook iOS SDK =
 
= Setup Facebook iOS SDK =

Revision as of 19:29, 21 February 2019

Contents

Download the SDK

Extract the zip file's contents and drag & drop the SocialID.framework file to the "Frameworks" folder in your XCode project.

Download the SDK

SDK Dependencies

SDK Dependencies by version
Version Facebook Google Twitter
2.0 FacebookSDK 3.24.0 GooglePlus 1.7.1 & GoogleOpenSource 1.7.1 -
2.1 Facebook SDK 4.7.0 GoogleSignIn 2.0 -
3.0 Facebook SDK 4.7.0 GooglePlus 1.7.1 & GoogleOpenSource 1.7.1 Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
3.1 Facebook SDK 4.7.0 GoogleSignIn v3.0.0 Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
3.2 Facebook SDK 4.7.0 GoogleSignIn v3.0.0 Fabric 1.5.5 & TwitterCore 1.11.4 & TwitterKit 1.11.4
3.3 (current) Facebook SDK 4.23.0 GoogleSignIn 4.0.1 Fabric 1.6.12 & TwitterCore 3.0 & TwitterKit 3.1
3.4 (unreleased) Facebook SDK 4.40.0 GoogleSignIn 4.4.0 TwitterCore 3.2.0 & TwitterKit 3.4.2
  • iOS: 10.3+
  • FacebookSDK.framework (version 4.40.0) [for Facebook login]
  • GoogleSignIn (version 4.4.0) [for Google login]
  • TwitterCore (version 3.2.0) [for Twitter login]
  • TwitterKit (version 3.4.2) [for Twitter login]
  • SystemConfiguration.framework
  • UIKit.framework
  • Foundation.framework

The Facebook, Google and Twitter SDKs also have its own dependencies. Follow the next instructions to setup them.

The current Social-ID SDK was built and tested against the SDK versions listed above. You can also try to use earlier or later dependency versions case your project requires it, the social network SDKs (e.g. Facebook) are compatible in general. Contact us case you have issues with the Social-ID SDK when building your project.

Setup Facebook iOS SDK

Follow the instructions here (from steps 1 to 3) if you didn't already.

You need to follow the steps 1, 2, 3 and 4:

Setup Google iOS SDK

Follow the instructions here if you didn't already.

Step List:

You need to follow all instructions except the last step ("Next Steps"), as any configuration inside the code is done through the SocialID SDK.

Setup TwitterKit iOS SDKs

The Twitter login is provided by TwitterKit for iOS. Follow the instructions here to install the SDKs.

Step list:

The Social-ID iOS SDK already initializes the TwitterKit when the Twitter login is initialized. However, you will need to configure the TwitterConsumerKey and TwitterConsumerSecret in your app Info.plist file (see the instructions below).

Get your SocialID Data

You will need 2 variables to configure the Social-ID SDK:

Setup the Social-ID SDK

Add the following statement to your ViewController:

 #import <SocialID/SocialID.h>

Add the following code to the "(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions" method in your App Delegate implementation file:

 // Initialize SocialID SDK (use the data you collected in the "Get your SocialID data" step)
 [SocialID setApplicationId:XXX clientSecret:@"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"];

In the same App Delegate method, setup the Social Login with the user profile fields you want to be retrieved and the Facebook permissions you want to ask to the user. Example initializing the Facebook, Google+ and LinkedIn logins:

 // Initialize the Social Login
 [SIDFacebook initializeFacebook];
 [SIDFacebook setPermissions:@[@"public_profile",@"email",@"user_birthday"]];
 [SIDGoogle initializeGoogle];
 [SIDLinkedin initializeLinkedin];
 [SIDTwitter initializeTwitter];
 [SIDLogin setUserFields:@"display_name,picture_url,current_location,verified_email"];
 [SIDLogin application:application didFinishLaunchingWithOptions:launchOptions];

Add the following method to your app delegate implementation file:

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

Modify Info.plist

If you followed the first steps correctly, you should already have the following Facebook data in your app Info.plist file:

  • FacebookAppID
  • FacebookDisplayName
  • fb{FACEBOOK_APP_ID} in the URL types

You should also already have your bundle ID as an URL type, that is required by Google+ SDK. You will need to add one more item to make Google+ login work:

  • GoogleClientID: The Client ID for your "Client ID for iOS application" (found in APIs & auth -> Credentials)

For LinkedIn login, you will need to add two more items to make it work:

  • LinkedinAPIKey: the API / consumer key you set up on the LinkedIn OAuth1 app
  • LinkedinAPISecret: the API / consumer secret you set up on the LinkedIn OAuth1 app

For Twitter login, you should already have the Fabric APIKey. You need to add two more items:

  • TwitterConsumerKey: the API / consumer key you set up on the Twitter OAuth1 app
  • TwitterConsumerSecret: the API / consumer secret you set up on the Twitter OAuth1 app

Preparing for iOS 9

The iOS 9 requires some changes in app configuration.

Bitcode Error

Google+ SDK requires Bitcode to be disabled. You should change the following variable in X-Code:

 Project > Build Settings > Build Options > Enable Bitcode = No

Facebook iOS 9 Guide

Follow these steps from Facebook iOS 9 guide:

The Social-ID SDK uses the Facebook 4.7.0, so you need to add the following entries for LSApplicationQueriesSchemes:

 <key>LSApplicationQueriesSchemes</key>
 <array>
       <string>fbapi</string>
       <string>fb-messenger-share-api</string>
       <string>fbauth2</string>
       <string>fbshareextension</string>
 </array>

Also, the new Facebook SDK login behavior prioritizes the login via SafariViewController instead of the login via Facebook native app. For more information see https://developers.facebook.com/bugs/786729821439894/?search_id.

Whitelist Google+ Application Schemes

Add the following entries for LSApplicationQueriesSchemes in your app Info.plist file:

 <key>LSApplicationQueriesSchemes</key>
 <array>
   <string>[APP BUNDLE ID]</string>
   <string>com.google.gppconsent</string>
   <string>gplus</string>
   <string>com-google-gidconsent-google</string>
   <string>com-google-gidconsent-youtube</string>
   <string>com-google-gidconsent</string>
   <string>com.google.gppconsent.2.4.1</string>
   <string>com.google.gppconsent.2.4.0</string>
   <string>googlechrome</string>
   <string>googlechrome-x-callback</string>
 </array>

Whitelist Twitter Servers for Network Requests

Add the following entries for NSAppTransportSecurity in your app Info.plist file:

 <key>NSAppTransportSecurity</key>
 <dict>
   <key>NSExceptionDomains</key>
   <dict>
       <key>twimg.com</key>
       <dict>
           <key>NSIncludesSubdomains</key>
           <true/>                
           <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
           <false/>
       </dict>
   </dict>
 </dict>
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox