I have a iOS project Which support iOS-7 and later (The project is written by Swift), I use with Reactivecocoa Version 2.5 (via Cocoa-pods). I want to upgrade to the new Reactivecoca RC version.
I know embedded frameworks require a minimum deployment target of iOS 8 or OS X Mavericks.
How can I use Reactivecocoa Release Candidate 1 with a project targeting iOS 7.
I try to include all Swift files located inside the Source directory in my project, But without success. (It works for me with Alamofire).
I also try to add the Reactivecocoa Release Candidate with Git submodule.
Thanks,
Guy
You've answered your own question there:
I know embedded frameworks require a minimum deployment target of iOS 8 or OS X Mavericks.
So its not going to work on iOS7.
Also according to the guys who's developer the library: https://github.com/ReactiveCocoa/ReactiveCocoa
ReactiveCocoa supports OS X 10.9+ and iOS 8.0+.
There is no way to get it to work on iOS7. My suggestion is to change your development target to iOS8 +
Related
I am making a macOS app with Xcode 9.0.1 and Swift 4. I want to ask if the released app (.app file) can work on macOS earlier than 10.13 (e.g., 10.9 or 10.11) or will it work only on macOS 10.13?
Set the "Deployment Target" for your "Project" settings (not your target settings) and it will build an app that supports that version and later. E.g. if you set the deployment target to 10.11, it will support 10.11 at later (e.g. 10.11, 10.12, 10.13, etc.).
Note, when you first discover this drop down box, you may be tempted to set it to the earliest possible OS version, but realize that the more versions that you want to retroactively support, the more work that entails. You'll have to write conditional code wherever you want to use newer OS features and likewise wherever older targets need to use now-deprecated APIs.
FYI, there are a few constraints introduced by various Xcode features. E.g. Swift, itself, requires macOS 10.9 or later. Storyboards require macOS 10.10 or later. Etc.
In short, set your deployment target, but do so with awareness of the cost-benefit trade-off that decision may entail.
The earliest version of macOS that will be able to run your application is equal to your Deployment Target setting, which can be found in Build Settings of your .xcodeproj in Xcode.
This way, application built with Deployment Target set to 10.13 will not launch on 10.12 and earlier.
Not to be confused with Target SDK.
I just uploaded a beta of my app to http://testflightapp.com. I noticed that it is only for iOS 4.3.
How can I support devices from iOS 4.0? Do I have to make the ipa for each framework version?
Any suggestions?
Set the iOS Deployment Target in your build settings to the oldest version you want to support.
Please note that this doesn't automatically make sure that your code actually works on the older API (for example if you use stuff in the frameworks that's only available in the latest version ... )
I am currently using XCode 3.2.2 and iOS SDK 3.2. With these I can produce binary which works on iPhone 3.1.3. If I upgrade to XCode 3.2.4 and iOS 4.1, would I still be able to build binaries for iPhone 3.1.3 device? If no, can I install both, or it's tricky?
Eiko is correct, what's more I believe that apple will no longer accept applications built with pre 4.x SDK.
To get this set up you need to change the following settings
Set the "Base SDK" in your projects settings to the newest version number of iOS whose features you may want.
Set the "iPhone OS Deployment Target" to the oldest version number of iOS that you will support.
Courtesy of CocoaWithLove
Regarding installing multiple versions, it's not tricky... just awkward. The release versions of XCode are installed into the /Developer directory. To install multiple versions you need to move the /Developer directory to something else e.g. /OldXCode and then install the new version (Which is put into /Developer)
Hope that helps
You can, and you should, always use the latest SDK.
You can easily build agains 4.1 and still target 3.x - in fact most developers do this at the moment.
I installed SDK 4.0 and found that I lost access to all previous SDK versions prior to 3.2.
I have found a link to download SDK 3.1.3 so I have both .dmg install files.
Questions:
Does SDK 4.0 not allow access to earlier version?
If the answer above is no then does that mean I have to have two versions of SDK installed?
If yes to the above....how?
Thanks in hope
The terminology is confusing but once you understand this it's easy.
The 'Base SDK' is just the version of the SDK that you are compiling against. So you can use any classes, properties, or methods in the Base SDK.
The Deployment Version is earliest version of the OS that you want users to be able to run your code against. If you use a feature available in the Base SDK version but not in the Deployment version then your code will launch on both versions but will crash on the earlier OS version when you use the new feature, so you need to check if the new feature is present if you want to do this.
So you don't need Base SDK of 3.0 to run on 3.0 - just set Base SDK to 4.0 and Deployment Version to 3.0 and don't use any features of the SDK that weren't present beyond 3.0.
The deployment target can be set to anything (even 2.2), but the Base SDK has nothing except 3.2 and 4.0. I would have thought if you set the deployment target to 3.0 for example, that the Base SDK could also be set to 3.0.
So if the deployment SDK is 3.0, and the base SDK is 4.0, which one is being compiled for?
Note in the new SDK, you can't select anything other than 3.2 and 4.0 as mentioned above.
Looks like a problem with apple. I am also getting:
"Base SDK Missing" after installing Snow Leopard and the iPhone SDK 4.
There is no Base SDK in my case.
I'm a newbie to the system and meant to make this a comment, not an Answer.
UPDATE:
After reading the readme that comes with the SDK 4 a little closer, I see that it (xCode 3.2.3 and it's iPhone SDK4) does not support iPhone prior to 3.2 - the solution is to install the older SDK in a different directory. Also, don't forget to update your device if you use the newer xCode/SDK.
ANOTHER UPDATE:
Please ignore this ANSWER and see the one above that was provided by aizuchi. Don't forget to read the part about Base SDK area being a different thing from Deployment.
As I understand it, using any SDKs other than 3.2 and 4.0 is now deprecated for app store submissions. Therefore, logically, those other SDKs are no longer options in xCode (3.2.3) either. IMO, trying to get around this is futile. I've written a community wiki that explains it more fully here.
You need to set the Base SDK to the latest version and set the iPhone Deployment Target to 3.0 for example.
It's recommend to test your application for earlier versions.
After my upgrade to Snow Leopard and Xcode 3.2 (which I really regret a lot!!), Xcode lost all the SDK's. I'm one of those old-fashioned idiots who still want to develop for 2.2.1. But Apple does not offer me an old SDK download.
Now I was clever and made tons of time machine backups. But: What's the preferred way to get iPhone SDK 2.2.1 running with Xcode 3.2? Some guys said that's generally possible. I do hope so because I still don't believe in all those "faked" stats, and besided that, my app doesn't benefit from 3.x additional features so I would not want to constrain my market just for that lazyness.
Any idea?
Regardless of whether or not you're targeting iPhone OS 3.0 or not using any 3.0 specific features, you should always compile your app against the latest SDKs to benefit from bug fixes and performance improvements.
You can compile against the 3.0 SDK and set the iPhone OS Deployment Target to 2.2.1 and still cater for users who are using 2.2.1.
You may find that some methods have been deprecated, but that doesn't stop you from using them until you're ready to move on.
Get the 3.1 final sdk, it has the 2.2.1 sdk in it. On disk its usual location is:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk
Also included is 3.0 and 3.1.
XCode 3.2 should have the prior iPhone SDKs available, just make sure you are setting your project's Base SDK setting to "iPhone OS 2.2.1". (Right-click on your top-level project icon in the Groups & Files browser in XCode and choose "Get Info", then go to the Build tab.)
Raffaello and others are correct: you can use the latest SDK and still target (and test on) older SDKs. For example, I'm using iOS4.0 (xcode 3.2.3) and testing on my iPhone 3g running 3.1.3.
To clarify the procedure:
- go to project info > build tab
- set Architectures:Base SDK (most likely) the latest
- set Deployment:iPhone OS Deployment Target to what ever you want (I have the option to go as far back as 2.0).
Hope this helps someone.
Like I said on other threads, the SDK and Deployment Target are different.
You can still use the latest SDK to build for an older OS.
Just go to your Target settings and under the Deployment section set the iPhone OS Deployment Target to whatever you'd like.
Cheers,
Raffaello Colasante