i saw your comment about getting rid of the setText deprecated error, and using cell.textLabel.text it works perfectly for OS 4.0 but it doesn't work on 3.1.3, the app crashes at the loading screen, have you got any ideas?
.textLabel.text certainly works in 3.x — it's introduced in 3.x! But make sure the app you're running was compiled from a 3.x SDK.
Try to switch to the 3.1.3 SDK, and Build and Run.
Related
I have imported CallKit framework as optional only. But import CallKit crashes while running on iOS 9 at launch. But works perfectly on iOS 10.
It worked fine in XCode 8 beta 6 but this issue is happening only on XCode 8.
The code is in Swift 3.
Any help is much appreciated.
CallKit API is only for iOS 10.0+. It won't work for iOS 9.0. Use a condition for iOS version 9.0 and 10.0 to avoid the crash.
Reference : https://developer.apple.com/reference/callkit?language=objc
There is/was a bug in Swift 3 language that wrongly links module libraries github pull request, that is fixed now, but the fix is not yet implemented in XCode, not even in beta.
You could get latest swift toolchain build from link and install it to XCode to try and see the fix, but the app would not be approved for Appstore as it's stated here
You got two solutions;
wait for apple to release XCode with new version of swift 3.0.2+
or revert your code back to swift 2, where it works, with "Use Legacy Swift Language Version" flag in Build Settings
If you choose to revert back to swift 2, brace yourself with a lot of patience :D
I upgraded to Xcode 4.4.1. Now, I'm trying to add framework QuartzCore.framework, but getting Quartz.framework not found while running the application on device and it is working fine on simulator.
After analyzing, I got, the framework is missing at the path:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneOS5.1.sdk/
Even if , it is available at:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/
Can anyone please let me know, what is going wrong? How to solve the problem?
If you're developing for iOS, you'll probably want QuartzCore.framework (and not Quartz.framework).
Try re-adding QuarzCore in Linked Libraries under Build Phases. If you're using a 6.0 device, you'll need to update Xcode to 4.5 or later.
I need to debug a crash that happens at a fundamental part of the app experience on a particular iOS version, but when I use the (newer) dev tools for that version, the crash does not occur.
How can I get a GDB session on version of an app that was installed with another SDK version?
See if you can build the app in Xcode 4.1 and deploy it to an iOS 5.0 device via TestFlight: https://testflightapp.com/
Ok, there have been some questions alluding to this before, and I've even read some second-hand reports of people successfully doing this, but so far I haven't found a concrete answer.
Basically, I want to build an application for simulator using iOS 4.x, and then run it on a 3.x simulator.
I have both SDKs installed, so all I need is the last mile of getting the app to show up in the 3.x simulator.
I tried just copying the app across from Library/Application Support/iPhone Simulator/4.2/Applications to Library/Application Support/iPhone Simulator/3.0/Applications but it doesn't show up when I load the 3.x simulator. There's a binary plist called applicationstate.plist, which I'm guessing keeps track of what apps are installed on the simulator, but I don't know what the binary format is so I'm kind of stuck at this point.
Has anyone managed to load a 4.x app onto a 3.x simulator? And if so, how did you do it?
Why are you even trying to do this? What are you trying to achieve? If what you really just want to do is ensure the app works on iOS 3.x then simply state that in xcode and don't worry about the actual simulator. The simulator could be running iOS 5.0 for all you should care as long as you have set 'iOS Deployment Target' to '3.0' in xcode's project settings. That will ensure the application is compatible with iOS 3.x and above. Obviously you then still need to ensure you're not calling methods from SDK 4.x when it will run on an iOS 3.x device. If that is what you're trying to test then what you're doing won't actually work. You should (as Apple advises) always grab hold of a real device running the target firmware version and test it on that. Grab an old iPod for example with iOS 3.x and try testing your app on that to ensure you haven't called iOS 4.x methods when running under an older firmware.
The answer is: No, you cannot build for 4.x simulator and run on a 3.1.x simulator or earlier due to fundamental changes in the way the simulator works.
The only way to test 3.x support is to either run it on a 3.x device (after setting min deployment target), or build on an older xcode that supports 3.x simulator (which isn't feasible if you use Xcode 4, except for iPad 3.2).
Note: Setting the deployment target does not test compatibility with older operating systems. It's the operating system that it actually RUNS on that matters (such as "iPhone 4.3 Simulator", "iPhone 4.0 Simulator", "iPad 3.2 Simulator", or an actual device).
Of course, now that 3.x users make up less than 10% of the total population, it's not really worth the trouble to support it anymore.
I just installed the new XCode with iPhone SDK 4.0. On my project, I set version 4.0 as my base version, as deployment target, 3.0 is selected.
Before the update, everything went fine. Now, if I run the iPad simulator, everything still works fine. But when I try to run it in the iPhone simulator, the app crashes before the start. I don't even come to the first line in appDidFinishLaunching. What am I doing wrong?
Thanks a LOT,
Stefan
Is the target SDK iPhoneSimulator 3.2? By default the target is iPhoneSimulator 4.0.
after some hours of searching, I finally found the problem: I had to switch the "generate profiling code" option off...
where is the swith: "generate profiling code" option?