Sharing and iOS versions in xcode - iphone

I am making an application that outputs text and would like to give the users the option to share this text on twitter and/or Facebook..... I know that iOS6 is linked with twitter and Facebook. but what would happen if an user that has iOS 5.1 for example installs that application? I guess I am trying to see if I should use ios6 and the built in sharing features or ios5 and use sharekit to share on twitter and facebook.
My other question that is also related.
If I build my application in xcode with ios6 will users with ios5 installed still be able to install this application? what would then happen to the features that are only in ios6 like sharing?
Thanks for all your help

If you set your application's target to iOS 6, users operating on previous iOS versions will not be able to install it. Also, if you set the target to iOS 5 for example, you will not have the facebook native facebook integration available. So, in my opinion, you should set the target for iOS 5, set the facebook framework as optional and when launching the application, check what iOS version it's running on. If it is not iOS 6, use shareKit.

Related

How to determine iPhone/iPad target and iOS version while submission to AppStore?

I am uploading my App into AppStore. My app is displayed fine on iPhone, not on iPad. In addition, my App just works on iOS 6 or higher.
How can I determine these limitations to AppsStore review team while uploading my app? Are my limitations acceptable for the review team or not?
In your Xcode project - select the target (the one being deployed) and set its Deployment Target.
You have the ability to use older versions of iOS - just make sure you only use API included in the lowest version selected. For example, don't use any of the new iOS7 backgrounding API if you are deploying for iOS6. And if you do need to use API included only in newer versions of iOS, make sure to wrap that code in respondsToSelector logic to avoid crashes.
So yes, deploying to iOS6 is totally acceptable to the review team as long as its being compiled with the newest SDK. This also allows users to download your app who haven't made the upgrade to iOS7 yet.

Is it still possible to submit apps targeted for iOS5 or iOS6 to the App Store after the release of iOS7

Like the question says, will I be able to submit iOS5/iOS6 apps to the App Store given that iOS7 is rolled out now? Or do I have to target iOS7 for my builds?
I understand that there is a great amount of UI changes, new features, not looking good, etc involved but I just want to know if it is still possible to submit old targets
Cheers
Yes it is still possible to submit apps targeted at older versions, as long as they perform on iOS 7 as well.
There is also now an option for people using legacy versions of iOS to download app versions that are targeted for that version.
Nice article about that here: http://thenextweb.com/apple/2013/09/17/apple-begins-allowing-users-running-legacy-ios-builds-to-download-older-versions-of-apps/
Your app is built to a specific SDK version, which is different from the deployment target. Apple typically require you to submit apps that have been built to the latest public SDK version, although I believe right now you can still submit apps built to iOS 6.
So you can target iOS 5/6 as you require - however, going forward your app will have to be built with the iOS 7 SDK.

Facebook SDK 3.5 in iOS 5 needs Social.framework

Quick question. I'm getting to grips with the FB SDK 3.5 and I was following this tutorial on the Facebook site: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/
The problem is, it says the SDK needs Social.framework. As far as I'm aware, that's not available on iOS 5. Obviously I can set some frameworks to optional but I don't know if that will stop me from posting status updates on iOS 5. Any ideas?
Regards,
Mike
It's fine to use the SDK in iOS5, the social.framework is used for the built-in Facebook account function in iOS6, on iOS5, the SDK will skip it.
It's okay to use the Facebook SDK, it needs you to add the Social.framework to your project, but this isn't available in iOS 5, not to worry the Facebook SDK will only use it if it's available (for the iOS built in Facebook integration).
But you do need to include it... so you should mark the Social.framework as "optional" in the Target's Build phases. This means it won't force it when you compile. Which can make you run into problems for iOS 5 which doesn't have Social.framework available.

Simple posts to Facebook and Twitter iOS 5 & 6

I'm currently implementing a simple button that posts to social networking sites (giving my app a little exposure, you know the drill). However, I'm a little confused by all this social networking stuff. On one hand I know iOS 6 has a really nice framework for FB and Twitter (Social.framework) but for iOS 5 it's a little different. iOS 6, I think I've got figured... I find it a little weirder when we go into iOS 5 however. From what I understand Twitter was already integrated into iOS 5 and can be accessed using the Twitter.framework and Account.framework frameworks. What I don't get is in order to support both 5 & 6 for Twitter do I have to use Social.framework, Twitter.framework and Account.framework to support everything? I.e. two different methods depending on iOS version. Or, if I use the latest SDK will iOS 5 twitter work with Social.framework? That Twitter covered.
Now for Facebook, how do I go about posting in iOS 5? I'm pretty sure Social.framework won't work in iOS 5, even if I build the app with latest SDK. Therefore I think it's inevitable that I'll have to have two different methods which run depending on the iOS version installed. Is that correct? If so, how do I go about integrating FB into iOS 5? Do I have to use the SDKs provided by Facebook?
So to summarise my questions if all that was a little wordy.
1) Can I incorporate Twitter-posting into my app using only Social.framework for both iOS 5 & 6, or do I have to do one method using Social.framework (for iOS 6) and then another method using Twitter.framework and Account.framework (iOS 5)?
2) I can use Social.framework for Facebook in iOS 6, but can't for iOS 5, therefore, I have to do two separate methods, one with Social.framework (iOS 6) and then one with the FB SDK (iOS 5), correct?
Thanks in advance, Regards,
Mike
1) Social.Framework is available only on iOS6+ so you have to split between the two frameworks (or you can use only Twitter.Framework even though some methods have been deprecated on iOS6)
2) You can use the Facebook SDK both on iOS5 and iOS6 (latest version for iOS at the time i write this answer is 3.5). The Facebook SDK already takes care of using the user's Facebook account on iOS6 or relying on the Facebook app on iOS5 or iOS6 when the account is not already configured in the phone

How can I deploy app only for iPhone 3Gs,4,4S and skip iPhone5 support?

I want upload app to app store for review but it seems like I need also iPhone 5 screenshots but I don't have app prepared for iPhone 5. Please, how can I deploy app only for iphone 3gs,4,4s?
I find something in Targets/Build Settings/Architectures Standard armv7 and Base SDK is Latest iOS 6.0. Is that what I have to change?
Just for absolute clarity, Apple released an announcement on March 21st 2013 stating that starting May 1st 2013 new apps and app updates MUST be built for iOS devices with Retina display and iPhone apps must also support the 4-inch display on iPhone 5.
You can view the announcement here.
The best solution is to just properly prepare your app for the iPhone 5's display. And no. Changing the base SDK will not help here.
You can't, only apps submitted before iPhone5-release can run in "iPhone 4 mode" on the new iPhone. All updates to apps and newly submitted apps must support the new 4 inch screen.
You cannot exclude the iPhone5 in the target settings and if there were a way to do that, there is no way Apple would approve it. You can remove support for old devices, but never for new ones.
After all, Apple wants as many apps as possible to adapt the new format as soon as possible, and this is what you have to do... don't worry - if you are fairly used to developing to iOS you can do it in just a few hours...
Apple has stated that theY will still (currently) be accepting apps without specific iOS 6 and iPhone 5 support when developed with an Xcode version prior to 4.5, and thus with an SDK 5.1 or earlier. 568h support is specifically not allowed in apps built that way.
Apps built that way will run in letterbox on a 5, or the similar 1X/2X compatibility boxes that the iPad uses for legacy iPhone only apps.
I submitted an app following the release of the iPhone 5 with the latest version of XCode that runs letterboxed on the iPhone 5. Just remove armv7s from your supported architectures.