App Store: Can I limit downloads of my app to camera-only devices? - iphone

I've written an app that requires a camera to work (there's not really any point in the app without a camera being present).
I'm currently doing all the last little bits required for submission to the app store. Should there be an option anywhere or a .plist property I can set so that non-camera devices won't be able to download my app? Or, should I just make it clear in the description?
Any help is much appreciated. Thanks!

Look at the info.plist 'Required device capabilities' setting.
http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BuildTimeConfiguration/BuildTimeConfiguration.html
(Search that URL for 'required device capabilities').

You should also make it clear in your description, as well as the plist. People with multiple previous devices might be able to download your app using iTunes on their Mac or PC, even if they do not currently have a device with a camera.

Related

How to test iphone app on remote location

I have created an iPhone application. I don't have the iPhone and I want to test the application on the iPhone of my friend who is far from me. How can I test it on his iPhone?
When I searched on google, it told me that you need to have the device with you. Is it possible to send the wrap and send the application to a remote location and get tested from there? I also have the Apple ID and license.
Yes with a tool like TestFlight you will be able to check wether or not your will work on a device. Thus is good for acceptance testing but never for technical working of an app.
But when it comes to really testing a device is needed, there is not way around it. You should do performance testing on a device.
Also there is no way to use the debugger unless it is connected to your development machine.
If you are developing for iOS get an iOS device.
It's possible, check Test Flight:
https://testflightapp.com/
I used it in the past for the same scenario as you
You should have a device yourself for testing on, before you publish anything in the App Store. Testing in the simulator is just not the same as testing on a device.
On developer.apple.com you will need to create a Ad Hoc distribution profile. You will also need to add all the devices you want to run the app on to this profile. Once you have the profile and you have it installed in Xcode, you can run an Archive build and sign it with the distribution profile. After this you can select the archive and click on 'Distribute...' to generate a .ipa file.
Once you have this .ipa file, you could use a site like testflightapp.com to distribute the app to test-devices. (you could also just email it ;-) )
If you are looking for just a way to transfer the ipa to someone else the best simplest solution for that would be http://www.diawi.com/ or https://appsendr.com
Get the target Device UDID and add it to your testing list, Create your IPA, drag it to the site above, Done.
No need to signup or anything like that.
I like appsendr better because of the small app they provide.
Lets you drag the IPA to your tool bar and have the ipa url right in your clipboard once it's uploaded.

iPhone SDK Modify WiFi Settings

I need to be able to modify the WiFi settings on a iOS device (iPhone and iPad), most of the libraries are found so far via google search are private libs... Apple don't like this, does the SDK allow this in another way?
Thanks
Without jail breaking the device, you cannot modify the Wi-Fi settings. This is because all iOS applications are sandboxed, meaning they only have access to the data Apple allow deems necessary to the functioning of the app. For iOS apps, the documents directory constitutes the application's sandbox and the application cannot create or modify files or directories outside of these directories. So even if you found a way to modify Wi-Fi settings, your app would be rejected by Apple. Hope this helps!
Apple does not expose any public APIs that allow you to do this.

How to determine, whether an iphone app (previous/next version) is existed in our device or not?

I Have an app with 2 versions.... iPaint1 (FreeVersion) & iPaint2(Paid Version)
iPaint 2 has extra features along with the features of iPaint1..
if user have iPaint1 & also if he installed Paint2.
Now we need to display An alert when user launch/uses paint2. Alert will be pop up as
"You already have all features of paint1 in this 2nd version, Delete Paint1 to free space"
only if iPain1 is existed in our device, otherwise no need of alert How is it possible.
(I guess we may achieve this this using AppStore ID & Bundle Identifier but not sure and don't know the process)
Thanks in advance
But It is works on simulator but not in iPod
Answer :
Finally i Got solution in #MDT 's answer. thank u #MDT and others as well.
Thank you for your quick response.. This link is useful for this question.
Is it possible to get information about all apps installed on iPhone?
and in
http://www.iphonedevsdk.com/forum/iphone-sdk-development/22289-possible-retrieve-these-information.html#post101753
But It is works on simulator but not in iPod any advice pls.
Without jailbreaking, there is no way for an app to directly get a
list of all installed apps on an iOS device.
http://www.quora.com/An-iOS-App-how-to-find-all-other-application-on-the-iPhone
Your best alternative may to be use of custom URL schemes. With these you can implement a link in your free app that opens the paid one if it is installed.
You should use custom URL scheme. Provide some custom URL to free App. Now on the starting of paid App, check if it can responds to the custom URL of your free App. If it can, there exists a free version on the device and display the message to remove it.

Direct someone to the OTA updates

Basically I am trying to put a button in my app which will warn the user if they are running an iOS version with known issues. When pressed it directs them to the OTA updates part of settings. Is this possible?
I have the code do detect if the user is using an old iOS version, however, I'm not quite sure how to switch to the settings. Does anybody have any code I can use? Much appreciated.
I think you can create a special prefs link. Check out this tutorial: No jailbreak necessary: How to quickly access iOS settings on your iPad, iPhone or iPod
prefs:root=General&path=SOFTWARE_UPDATE_LINK

iPhone, app release, change device requirements

I have released an app in the appstore months ago.
It was first made only for iPhone (because I wanted to do so), now I would like to release it also for the iPod Touch.
What I have to do to make the iphone app available to ipod touch too?
When I update the app (new version tested on the ipod) I cannot change the value of the dropdown labeled "Device Requirements"
I don't want to make another app with the same content and same code just to change that value!
Many thanks
I would contact Apple Developer Support and tell them you would like the change. In many cases, they can override things like this.
This is weird. Anyway, besides contacting the support, bear in mind that you also need to modify your -info.plist file adding the "Required device capabilities" (UIRequiredDeviceCapabilities) key.
Basically, you define here what kind of hardware your application uses, such as wifi, core location, compass, accelerometer etc. This is then used to automatically distinguish a device capable of running your app from another which is not.
This is not yet mandatory, but Apple will warn you if you submit an application targeting the iPhone and iPod Touch 2nd generation without a properly configured plist file.
I've come to a solution releasing an update of the app.