Is it possible to find the location from background in iPhone 3G, 3GS - iphone

I am making an app in which i need to find the location from background when userpress the home button, my app works fine on iPad2 and it gets updated,however its not working on iPhone, apart from iPhone 4, previous version of iPhone, is it possible to track update on that older version of iPhone leaving iPhone 4

As Badgerr commented, iPhone 3GS was the first version of the iPhone to support multi tasking. Previous versions of the iPhone are not capable of tracking the user location without the app running in the foreground. As soon as a third party app enters the background it gets closed.
http://support.apple.com/kb/HT4211:
Multitasking in iOS 4 is supported on iPhone 3GS or later, iPod touch
(3rd generation or later), and all iPad models.

Since you mention that your app is running on iPad and iPhone, I assume that you are not asking about how to get the location when the app is running in background and that you are doing correctly as explained here.
As to the rest, your problem may have to do with background processing being only available starting from iOS 4.0.
So, more than the specific model of iPhone, what matters is the iOS version that is installed on your device (or if it can be installed).

Related

Submitting an App to Apple wrote in iOS 4

Okay, I know what your thinking why, right? My employer wants me to work on their app and submit it to Apple, but I told him the app has to be wrote in the most up to date OS. Does anyone know where you can find a something that states your, iphone App must have the most up to date OS? He would to have some concrete proof, before they restart their project. I'm like 90% sure your app has to have the most recent OS, but I also am having troubles finding something from apple that says that.
thanks
Starting tomorrow (May 1st), all new apps and app updates must fully support the taller screen of the iPhone 5 and 5th gen iPod touch. In order to do this you need to be using Xcode 4.5 or later with a Base SDK of 6.0 or later. And this in turn means that the oldest Deployment Target you can support is iOS 4.3.
See https://developer.apple.com/news/ and look at the news items from March 21.
So you can still support iOS 4 but it must be 4.3 and later. You must have full retina support on all devices you support and you must fully support the taller iPhone/iPod touch screens.
To be honest, supporting 4.3 is virtually pointless at this point in time. Any device that can run 4.3 can run 5.1. And except for the iPad 1 and 3rd gen iPod touch, any device that can run iOS 5 can run iOS 6. So basically, there is no reason to support anything before iOS 5.1. Any user running 4.3 or 5.0 can update to at least 5.1 if not the latest 6.x.
In other words, starting May 1st, 2013, no new apps or app updates can support the iPhone 3G or older, or the first 2 iPod touches.
BTW - the following Wikipedia page has a good chart about what versions of iOS run on the different devices: http://en.wikipedia.org/wiki/List_of_iOS_devices

When developing for iOS, which devices do you typically test on?

I'm needing to purchase whatever devices are needed to do testing for iOS applications. My initial thoughts are to test on a first-generation iPod Touch and an iPhone 4. Testing on the old iPod Touch with 3.1 software will give a good indication on how the app will work with little memory, and the iPhone 4 will obviously be a test for the faster system.
What do you all typically test on before submitting an application?
At minimum, a device running the oldest OS that I list as my Deployment Target, the slowest device/OS combo that I have (e.g. a 3G running 4.0.x is likely slower than anything running a 3.x OS) and which the app supports, and the current/latest released OS.
A device which includes all the features that my app will support (e.g. mic, camera, gyro, GPS, etc., if needed.)
Optionally, an iPad if the app is Universal, or if not to see how bad 2X zoom looks.
Optionally, a device with a beta OS installed if it appears Apple is going to release it well before I plan on revising the app.
So far all the apps I've submitted have been compatible with iOS 3.1.x, and I test them on my old 1st gen iPod Touch. I also test on my 3.2.2 iPad and my 4.0.2 iPhone 3GS.
My guess is all of these answers are going to be along the same lines -- test with as wide of a variety of devices as you can that are compatible with your app (i.e. meet the Minimum Deployment Version).
This is especially important if you develop Universal Apps that support 3.1.x. You'll find a ton of bugs with the hardware that you will never get with the simulator.
right now, I test using a 3g running 3.1 (a popular build), a 3gs running 4.0.2 (latest), a touch running 3.1.3(basically 3.1), and an iPhone 4 with 4.0.2.
Mainly try to keep a 3.x device around for sure, and then obviously a device with the most up to date OS.
Based on AdMob reports...around 98% of users are upgraded to atleast 3.0 and those that aren't shouldn't be your client base anyway (unlikely to use new apps).

Is there a diff in the new iphone versus previous version (development perspective)?

If I get an iphone, should I go for the latest version (with the antenna issue) or can I make do just fine with the previous version?
i.e. are there significant O/S changes that will effect my ability to test and run an iphone application?
A previous version (3g or 3gs) can still run the latest O/S (4.0.2), the only things truly different programmatically for the iPhone 4 is the higher pixel count and resolution of the screen, the new camera, and the new/improved gyro/accelerometer.
The iPhone 3G can't do multitasking. If you want to test your app's multitasking capabilities, you'll need at least an iPhone 3GS or the latest generation of iPod Touch.

What should I buy iPad or iPhone 4 for iPhone SDK 4?

Now, I'm developing on iPhone SDK3 and iPodTouch 2G. iPodTouch 2G can't do full function of iOS4. I want to change iPhone SDK4 development.In july, iPhone 4 and iPad will available in singapore. So, What should I buy iPad or iPhone 4 for iPhone SDK 4 ?
What different between iPad API and iPhone 4 API ?
How about market ?
Can I write iPhone app with iPad ?
Each version of the OS has the same API for all devices, but some of them don't support all all features. For example, the UIImagePickerController allows the user to select a photo. On an iPhone, they can take a picture with the camera or pick an existing photo from their Photo Library. With iPad and iPod Touch, there is no camera, so the user could only pick a picture from their Photo Library.
If you are relying on hardware features such as camera, compass, gyroscope, accelerometer for your application, you'd need a device that has this feature as the emulator does not them.
iPhone 4 has all of the hardware features of all iPhone, iPod Touch and iPad devices. Buying an iPhone 4 with or without contract is going to cost some money, but if you're developing an application you can recover the cost with sales of your app or iAd revenue.
If your application does not need specific hardware, then the best choice for you is going to depend on cost and whether you will use the device each day. A second-hand iPhone 3GS will do almost all iOS 4.0 features except front-facing camera and gyroscope.
The iPad runs iOS 3.2 currently. Apple has said that 4.0 won't be available for the iPad until "Fall" (aka Autumn). So if you want to test 4.0 apps in July on a real device (not just the simulator), you'll need an iPhone 3GS or 4.
I'm not experiences in ObjectiveC but I guess it really depends of what you want to do. You can do everything in the emulator so I guess you want the real devices to do proper testing over your applications. The only difference between both is that iPad doesn't have the new 6 axis acelerometer and doesn't have frontal camera. Apart from that the API should be the same (removing the support for phone calls oviously). I dont know what apple is going to do about games and so on but I guess the solution will be the same than between 3gs Iphone and IPad. Since the Ipad screen resolution is still bigger than the new Iphone one, you should be able to run any iPhone application (even the new ones) in your IPad (unless they use frontal camera or any other functionality not present in the iPad).
In resume, If you only want the device for development I whould buy an IPad since you can develop and test IPad and IPhone applications, so it is much more versatile. If you have an IPhone forget about testing IPad apps since you have not enough resolution.
Hope it helps.

iTunes Connect: Excluding iPad From Supported Devices

I have just uploaded my first app to iTunes Connect and noticed that my list of supported devices is appearing as follows...
Device Requirements: Compatible with iPhone, iPod touch, and iPad.
I've developed specifically for the iPhone and iPod Touch and have not yet done any testing on the iPad simulator. I therefore don't want the app submission testers to try running my app on an iPad and rejecting it because of some minor issue.
I've looked at setting the required device capabilities in my info.plist, but that doesn't appear to allow me to restrict at a device level.
Is this a by-product of building using the 3.1.3 SDK? Are apps built using this SDK automatically upscaled to work on the iPad?
You can't restrict the app to not work on the iPad. Backwards compatibility with all iPhone apps is a feature of the iPad. Your app will run in a 100% frame or in an optional 2x mode depending on user preference.
iPhone OS apps that link against the 2.x or 3.x framework and test clean on the iPhone and iPod touch should work w/o any trouble on the iPad.
If you tested on the iPod, taking into account the lack of cell radio, camera, etc., you should be totally fine.
I don't see a good reason to exclude iPad since iPhone apps will run in emulated mode in iPad after all. It's the same situation as a 3.x firmware running apps compiled from 2.x SDK.
To restrict at device level, you add the UIDeviceFamily key, but this doesn't support excluding iPad (just excluding iPhone).
The way to indicate that an application should only run on iPhone is to specify your application as an iPhone type application, rather than universal. Open your project (in XCode), click on the project name at the top of the Project Navigator sidebar, select the target, go to the summary tab, and change "Devices" to iPhone.
When you submit it, it will only be run in emulator mode on iPads, thus getting around any issues.