UDID in iOS 7.0 beta version - iphone

Currently my app in the appstore has the UDID feature in it and customers have downloaded the version of the app with UDID feature in it. But I have done the new changes for identifiers with vendorID. But what happens to the App which has already been downloaded by my customers with the UDID in it. Like how will the UDID get generated in iOS 7.0 beta if UDID is being accessed in it. Can someone help me with this ?

I understand you're talking about beta features. For this reason, please consider removing this question, and moving it to the apple developer forum where you won't be violating NDA.
In general terms, for identifier transitions, you should consider how you're currently using identifiers, and create a transition plan which associates any old identifiers with newer identifiers you may use in the future.
Apple also has some discussion in the docs about things like persistence and use of the new identifiers, so I would encourage you to use those resources, and post in the developer forums until iOS 7 is public.

UDID and all related methods are deprecated in iOS7. You can use
NSUUID *deviceUUID = [[UIDevice currentDevice] identifierForVendor];
instead. This is the proposed way of Apple.

Since UDID is deprecated in the iOS 7 beta, which is out now for download. The users of your application will definitely observe a crash when the app will try to fetch the UDID using UIDevice class.
Until Apple releases a iOS7 (stable version, which is not very far from now), you should update your current app with a message for iOS7_beta users (with conditional coding for iOS7_beta and update your app in appstore). This will not put your current app users dislike your app, and will stick to your even after release of iOS7 hoping to get amazing features for your app.
Hope it helps!

Related

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.

iOS: Changing min SDK Version of App in Apple's Store

I have released an App in the App Store with target platform 5.1. The app also was developed using SDK 5.1. My customer phoned me and said this is crap because als the jailbroken phones aren't able to download the app yet - because there is currently no jailbroken version for 5.1.
What do I have to do? I'm coming from Android - therefore I want to be really sure what I am doing when applying an App update to ensure that it is also available for 5.0 users.
I also use a Library Project - which also uses SDK 5.1 as shown in the screenshot below.
I would be really glad about some instructions how to reduce the required version for the app and if there are some compatibility troubles/problems occurring to my code when I do this.
You should change the deployment target, in the summary tab of the target, as shown in the image:
And call your customer and tell him there is already Jailbreak for 5.1 ;)
Release App version 1.1 with deployment Target OS as 5.0 or what ever else version you want to include ...
Just found this now while researching another question, so I'm sure this has already been handled, but here's my $0.02, eight years later....
You provided a working app to the App Store. All apps on the App Store are guaranteed to work on compatible iPhones that have not been jailbroken.
If your user is doing non-sanctioned things with his iPhone, it's not really your concern. There were plenty of big-name apps which had the same problem as yours: people couldn't use the latest version because a jailbreak wasn't yet available. They had to wait until such a jailbreak was out. That's the risk you take with using a jailbreak.
The difference here is that if FaceBook or WhatsApp or whatever big-name app changed its target SDK to an iOS version that did not yet have a jailbreak, users couldn't call Zuckerberg on the phone to complain or threaten. You, as an independent developer, got the phone call.
It's a balancing act. You want to use the latest, greatest features of the iOS version, but existing users might not have the latest, greatest OS. So you have to decide what's more important: new features or supporting existing users.

Will my app rejected from the Apple App Store?

I have submitted an app to the apple store. in my app I am using NSRegularExpression, and in the deployment target I did not put ios 4.0 (I have put 3.2) will my app rejected ?
IF your app crashes often, it may get rejected. If you suspect that it will crash often as a result of your use of a newer API on an older version of iOS, I would suggest rejecting the binary and then adding the appropriate conditional code to handle your situation. It's worth not frustrating your users.
I think that's not the question.
You should reject your app by yourself, because devices with iOS < 4.0 will crash and they will rate your app with 1 star. Bad ratings will people keep off buying / downloading your app.
NSRegularExpression is not available on 3.2 so your app will be rejected , just revoke the build you submitted , and upload the version with the correct settings.

do iphone app beta testers need a developer's license?

I'd like to distribute my app to a beta tester (ad hoc distribution). Do they need to have the apple developer's license? Do they need a Mac? Or is it enough for them to just have iTunes?
also, is the ad hoc distribution process different for Xcode 4? I know the process for submitting it to the app store is different.
Taking your questions in order:
Beta testers don't need a developer licence.
Nor do they need a Mac.
They don't even need iTunes. (You can deploy via a link they open in Safari on the device itself.)
The process is somewhat different for Xcode 4. (It's quite a bit easier that said.) Whilst I don't like to link to off-site resources, there's a very good blog article that details ad-hoc provisioning using Xcode 4 at: http://diaryofacodemonkey.ruprect.com/2011/03/18/ad-hoc-app-distribution-with-xcode-4/
ad hoc distributin works via itunes. only the perso who makes the app needs a developer account. you will need to provision the app you make to all the devices you want it to install on. via itunes this involves the insane process of clicking on a long serial number which does not look at all clickable to reveal an even longer uuid.
not sure about xcode 4 compared to anything else. only ever used one version of xcode.
No, beta testers don't need to be registered developers.
To make beta testing of iOS apps really simple, please have a look at Hockey Framework:
https://github.com/TheRealKerni/HockeyKit
Beta testers receive their test app over the air and the Hockey Framework even informs them automatically, when a new beta update is available OTA.
Additional reading:
http://www.buzzworks.de/blog/announcing-developer-framework-hockey
http://jeffreysambells.com/posts/2010/06/22/ios-wireless-app-distribution/
No, they don't need a developer licence. Actually, if your user has iOS 4 or higher, they don't even need iTunes. You can use something like iOS Beta Builder. They do, however, need to tell you the UDID of their device. You can get that in iTunes or there are apps in the App Store that find it.
No, beta testers don't need to be approved iOS developers. You will still need to whitelist the UDID of the testers though.
I'd suggest you use Diawi to share your ad-hoc builds with beta testers wirelessly without iTunes, I've tried several solutions and I found it to be the simplest of the pack.
synching
Also try testflightapp.com to distribute your Adhoc builds. You can keep track of the installs and even crash logs.
P.S I don't work at testflight, but find it a lot helpful for beta testing.

iOS -- require OpenGL ES 2.0 for upgrade?

The first version of my app runs on all iOS devices. I'm considering releasing an upgrade which will only work on devices which support OpenGL ES 2.0. Is that as simple as changing the UIRequiredDeviceCapabilities in info.plist? If I do this, what will users on the old devices see when they try to upgrade? Or will they even be notified that there's an upgrade available?
And lastly, just want to double-check that this will work, that it's possible to change the device requirements for different versions of my app.
I would not restrict app via UIRequiredDeviceCapabilities unless you do not want app installed. I would not restrict and check at runtime and then use new features conditionally.
Unfortunately, to tighten hardware requirements on a published app, you may need to resubmit it under a different name. I believe Apple does this to protect the investment of users who bought your app.