I'm about to release an app and it must support both iOS5 and iOS6. But with the new Facebook SDK 3.1 i'm not quite sure on how to integrate the Facebook functionality to work with both iOS versions.
What is the best approach to make both the login and wall posting actions to work in iOS5 and iOS6 version? Are there any best-practices already?
Many thanks in advance!
The latest Facebook SDK supports both iOS versions just as well. If you're on iOS6, it will use the built-in authentication, otherwise it'll automatically fallback to the old "fast-app-switching" or Safari model.
So if you implement the 3.1 SDK, you won't have to worry about how the user authenticates:
The main purpose of the upgrade is to bring compatibility with iOS
v6.0 and its native Facebook support. Using v3.1 of the SDK means that
your apps benefit greatly from that support when it is available, but
that they automatically fall back to use the previous app-switching or
web-based authentication flows on older versions of the operating
system.
More on implementing support for the built-in Facebook accounts on iOS 6: http://developers.facebook.com/docs/howtos/ios-6/
Related
I intend to use Facebook Share Dialog(https://developers.facebook.com/docs/howtos/share-dialogs-ios-sdk/#sharedialog) for my application and interested to know whether it supports iOS5 or it is only for iOS6 and above?
It's supported on any iOS version that the Facebook app supports, which does include iOS5.
Make sure you get the latest version from the app store.
SLComposeViewController is only available in iOS6 if that's what you mean?
UIActivityViewController is also only available in iOS6.
If you're using less than iOS 6.0 then you'll have to fall back on the Facebook SDK etc...
My app on facebook has this alert:
This app uses an outdated version of the Facebook SDK for iOS. Please
download the latest version: iOS SDK 3.2.1.
Learn how the latest version makes it easier and faster to build great
mobile apps.
We also provide upgrade guides to make the process as easy as
possible. Upgrade from SDK 2 to 3.1 and 3.1 to 3.2.
Facebook will also stop supporting v2.0 of the SDK in June 2013, so
you are advised to upgrade to the new SDK as soon as possible.
Does this mean that v2.0 of the Facebook SDK for iOS will stop working in June 2013? Or, does it merely mean that Facebook will stop providing technical support and enhancements for it?
My app uses v2.0 SDK for the following:
Login with Facebook
Get list of friends
Send App Request to selected friends
Due to time and budget, I will not be able to have my iPhone app upgraded to version 3 until probably the end of this year. So, does this mean my iPhone app is going to be broken in June?
First, it is recommended for you to read Facebook SDK release notes. In short, API changed & Login mechanism ( especially token management ) changed . That means your app will have chance to be broken in June.
However, stop supporting is not equal to stop service . You can ask Facebook when to stop 2.0 API service . The 2nd link should provide most programming information you require.
Sidenote: I upgrade my app from Facebook iOS SDK 2.0 to 3.1 in few hours. Just curious, why take you so long to perform the changes ?
Hope it helps.
Reference :
Facebook iOS SDK Release Notes
Upgrading from 2.0 to 3.x
If you have access to the code for your app, you can check the class reference here for the latest version and see the whether the methods etc. used in your code is listed here, and whether there are any changes in how they behave / should be used.
If the classes and methods are all there, you don't need to worry. In all probability, your app should run just fine and not break.
Is there a solution out there where I can happily use the Facebook 3.1+ SDK, with MonoTouch, for iOS 5+ users?
For users NOT using iOS 6 I want my game to switch to the Facebook iOS app for authentication as normal (if they have it), to avoid the barrier of them entering credentials.
The Facebook iOS SDK 3.1+ (Obj-C) allows this functionality, and it uses the native library if users have iOS 6.
Unfortunately I'm unable to find that functionality for MonoTouch, where my app can easily switch to the Facebook app and quickly authenticate the user, for non iOS 6 users.
I've narrowed down my MonoTouch Facebook options to the following, none of them ideal:
Limit my game to iOS 6, which would allow me to use the monotouch-bindings/facebook native library
Use the Xamarin.Social component, which requires login details (no app switching) and has poor UI
Use a (unsupported since 2011) MonoTouch Facebook 3.0 library, there's a couple out there
Convert the latest Facebook 3.2.1 SDK to MonoTouch, allowing for non-native app switching
The ideal solution would be option 4, which would give the user the app switching experience on any version on iOS. Unfortunately I wouldn't have a clue where to start with that and I haven't got the time to spend a week trying to convert/bind (?) it.
I'm really not keen on limiting the app to iOS 6 users, we want the app to reach as many people as possible.
Thanks in advance for any suggestions and ideas.
The Monotouch binding for the 3.2.1 facebook SDK is here.
Last I used it, it seemed to do everything you want.
There is a bug in Xamarin.iOS. Follow the progress on bug fix here: https://bugzilla.xamarin.com/show_bug.cgi?id=11041
I'm developing a application that integrates with Facebook.
I read about integrating in ios 6, ok.
I downloaded the SDK and came with samples. I opened "Scrumptious", but it's for iOS 4.3!!
So, two questions:
There is any sample for iOS 6?
How can I develop my application that integrates with iOS 6 and others iOS, using Facebook SDK?
Thanks.
The latest version of the Facebook SDK works on all Apple-supported versions of iOS, i.e. 4.3+. If the device is using iOS 6 and you request your permissions in an appropriate fashion (ie, read first, write later) then it will use Apple's built-in Facebook support and the username/password the user has supplied elsewhere. However it'll also work on iOS 4 and 5 devices that don't have that support, supplying an appropriate in-app prompt or paging out momentarily to the Facebook app as appropriate.
Use of the Facebook SDK is therefore optional for accessing Facebook from iOS 6 but is likely a good idea because:
it also works under iOS 4 and 5; and
it supplies a lot of pre-built dialogues for common Facebook tasks.
So although Scrumptious will work on iOS 4.3 it is using the latest version of the SDK and will use the OS-level support if available.
One of the distinguishing features of the latest SDK versus the older ones is that FBSession now has a concept of the activeSession, i.e. it has singleton-like features that support a global modal session. That was added publicly in June last year. Scrumptious makes use of that feature, for example on lines 94, 130, 144, 152 and 159 of SCAppDelegate.m.
So to answer your question directly: you've quite probably already downloaded the correct SDK. You'd write exactly the same code to work with it under iOS 4, 5 or 6. The samples like Scrumptious are a good place to start.
If you want a great tutorial, you can start with Ray Wenderlich's site. They have a good beginning tutorial using the social framework. I actually bought his book iOS 6 by tutorial. It helped me make an app for a friend that integrates Facebook and twitter. It really helps you understand the social framework.
http://www.raywenderlich.com/
Are you trying to integrate with the ios6 SocialKit? You don't need to download an SDK for that, it's built into the OS. I would recommend using Share Kit if you want to support older ios versions.
The Facebook iOS SDK 3.0 Beta says "These new features work with iOS 4.0 and later." Does that mean that it won't work on iOS 3.x? Does that mean that if I have an app that supports iOS 3.x, I cannot use Facebook iOS SDK 3.0?
Correct. Facebook iOS SDK 3.0 will not work with iOS 3.x. We felt that the productivity enhancements (e.g. blocks) in iOS 4.x were simply too useful. The SDK is open source, and we plan to maintain the history, which includes the existing code that does work with 3.x. In this way there is still an option for applications that need to continue to support older versions of iOS.
Pretty safe to say yes, you wont be able to use iOS SDK 3.0, or you will no longer be able to support iOS 3.x.
You can also interpret that to mean that you can use it on iOS 3.x, but some of the features may not work at all, in which case there is no point in changing the SDK that you use because you wont be able to take advantage of the new features.
For what it's worth, Apple announced at WWDC 2012 that more than 80% of iOS users are using iOS 5; a further significant percentage is using iOS 4.
I realize you may have specific business needs to use 3.x, but the world is moving quickly away from 3.x (and even 4.x!) and that should factor in to your platform design.
The previous stable (non-3.0) Facebook SDK is still compatible with 3.x devices.