My application works fine in the iOS simulator (running iOS 8.1).
The build target of the app is for iOS version 7.0.
When I try to run my app on my real iPhone (running iOS 7.0), the build fails- the reason being, route.h file is missing.
How can I extract this file from the iOS simulator SDK present in my mac, and add it to my project?
Basically, I'm trying to run my app on my phone, without updating the phone to version 8.1.
As I'm new to iOS development, I have no idea where the SDK is even stored on the drive, or how to access it.
(I'm using Xcode 6.)
Related
The idea of using Delphi to develop a mobile app is appealing to us because we can do Android, iOS and Windows without duplicating work. Delphi is also a language that we are familiar with. However after trying to get a simple test app running on an iPad, I do not think it is actually realistic. Here are my observations:
The iPad is running iOS 12.0.1 (and iOS 12.1 is already downloaded and ready to install).
Xcode, which runs on the mac, is used by Delphi for building apps and deploying them to the test target. Each Xcode version supports exactly one iOS SDK version and is the Xcode version plus 2. My old Mac is currently running xcode 8.2.1 so that corresponds to iOS SDK 10.2, which should run on iOS 10.2 and higher.
Delphi Tokyo supports iOS SDK versions from 8.0 up to 11.3 (so Xcode 6 to 9). It will not compile apps using SDK 12. The Xcode version running on the mac fits squarely within this range of versions.
It appears that Xcode is not able to properly support iOS versions that are newer than itself. When trying to run the application it errors out with "unable to location DeviceSupport directory for the connected device. Please check Xcode installation path and run Xcode devices". Under "Devices" the following is displayed for the iPad: "This iPad mini2 is running iOS 12.0.1, which may not be supported by this version of Xcode".
So, it would appear that the latest Xcode version is required to support the iPad running iOS 12.x but that means that Delphi cannot compile for it because it only goes up to SDK 11.3 and not 12. I do not think it is possible or sensible to downgrade the iPad iOS. Also even if we get a Delphi version that works, the next iOS update will require a new Xcode and therefore a new Delphi version that isn't even available. When the new Delphi version is finally available it will already be obsolete since iOS will have already moved on.
Please correct me where I am wrong. Because this cannot surely be the state of things.
I took over a mobile app project using Cordova, Ionic and AngularJS.
When sending code to emulator by i.e. running grunt run:ios --target="iPhone-5", I see the latest iOS version (9.2) popping up.
Where in the XCode simulator I can change my target device and the iOS version? I know where to change the device, but not the iOS version...
I'm trying to make an app in Swift 1.2. Obviously, Swift 2.0 introduced a lot of changes but before I migrate the whole project over, I would like to be able to test it while being still on 1.2.
But my iPhone is now running iOS9.1 and my Xcode 6.4 doesn't seem to recognize the iPhone for me to test.
Is there any way to run my Swift 1.2 project on my iPhone running iOS9.1? Or do I need to downgrade my iPhone in order to test the 1.2 project?
You can do what you want. But you need to take a few steps. You can get Xcode 6 to recognize your iOS device with iOS 9 but in order to do so, you need to install Xcode 7.1 and run it. Then connect your iOS device. Once Xcode 7.1 has recognized your iOS device with iOS 9 and processed its symbols you can exit Xcode 7.1 and start Xcode 6.4. Open your Swift 1.2 project and you should now be able to test on the iOS 9.1 device.
Before installing Xcode 7.1, rename your Xcode 6.4 application. For example, go to Applications and rename Xcode to Xcode6.4. This will allow Xcode 7.1 to be installed at the same time.
You can register your device with apple account and then create archive .ipa file on your machine and then using http://www.diawi.com/ this link to upload your .ipa file and generated link past in your phone browser and install it.
I have a developed application and the code is compiled using Xcode 4.6 and executes on iPhone with IOS version 6.1.3 . That's all OK.
Now I am requested to test it on the iOs 7.0 or later version . Then I upgrade all needed stuff , including xcode, mac OS version ,etc. (I have to upgrade them because the original version of xcode complains of the failure that it can not compile and debug on ios7.0)....
When I try to build the code using the latest combined versions and run on ios7.0, the application is dysfunctional and the problems are mainly related to GUI-related.
But the application with xcode 4.6 built can normally run on IOS 7.0.3 phone. So I think it is feasible for the legacy code/SDK to run on ios 7.0.3. Currently, I don't have plan to upgrade the code to optimize for ios7.
So My question is : How can I test/debug this application on iOS 7 or later ?
Thanks alot
Daniel
If i am not getting wrong understanding from your question...And what you want is this..
You don't want to build your application using iOS 7 base sdk (You were using iOS 6 base sdk on xcode 4.6).
But you want to use latest xcode with old SDK 6.1 etc and test apps on iOS 7 Devices/Simulators
Here is solution...
You just need to copy 6.1 SDK(or older) from your old xCode(4.6) to latest xcode(5.x) sdk folder and set base sdk to 6.1 SDK(or older one) in project setting.
This will let you run your app on devices with iOS 6.x or lower as they were running before also lets you test your app on iOS 7 devices without compiling with latest iOS 7 SDK.
To achieve this..
1. click on your xcode4.6 -> show package content , go to path
/Applications/Xcode_4.6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
This is where you will see older SDK you were using (6.1 etc). Now open same path for latest xcode 5.x and copy SDKs from old xCode path to new xCode path. OR Download it from Xcode preference -> Downloads.
2. Now go to project setting and set base sdk as iOS 6.x SDK
You can use Wireless AdHoc Distribution or simply build the IPA and install it through iTunes. Debugging it, however, is a bit more complicated. You will have to launch Instruments on its own and choose the already running process on the device.
I recently got a new dev machine and downloaded the latest xcode 4.5. It came with IOS 6 only so I went and got sdk 5.0 and 5.1 from older xcodes.
The device im testing on in running ios 5.1 and I'd like to keep it that way for the moment.
In my project settings I have base sdk set to ios 5.1.
The trouble is that when I try to debug on my ios 5.1 device xcode complains that I need to connect an iOS device with a recent enough version of iOS to run my application.
How can I solve this problem?
You can surely run your app on a iOS 5.1 device when using Xcode 4.5 - I am doing that at the very present moment.
Have you checked in Xcode organizer if your device is configured for development? Go to the Organizer (one of the top-left icons), select your device from the lefthand list and click on "use for development" (if available).
Hope this helps.
I have xCode 4.5 like you and I have an iPod Touch 3G 5.1.1 which works perfectly with iOS 6 SDK.
The SDK Number doesn't tell you that it only works for that firmware.
In your Project settings under targets you can define the sdk, not the sdk you build with(this is 6.0) but youcan tell what the minOS is
Try restarting with your 5.1 device plugged in.
My iPod 5.1.1 is provisioned and has been used for development. If I choose the scheme "iOS Device" Xcode 4.5.2 refuses to run, telling me "Xcode cannot run using selected device". However it does work when I set the scheme to "robert's iPod" (or whatever). This choice doesn't show up right away when I plug the device in, and sometimes I seem to need to quit and restart Xcode and/or iTunes (or reboot) in order to see it.