Restrict my iOS device to a particular app - iphone

I'm searching a way to restrict my iOS device to a particular app.
I have found a good way to disable my iPad Home button functionality through Kiosk Mode for iOS
So is it possible to restrict my iOS device to a particular app without jail-breaking?
Will App-Store reject my application if I done this?

Phew... Finally I found.Guided Access is a new feature in iOS 6 that will do the functionality .It's a built-in feature.
Guided Access is activated for a particular app, iOS device will automatically launch that app every time.
You can power off the device by holding down the "Power + Home" button.
If you’d like to learn how to use Guided Access in iOS 6, You can see more details here

That is a huge security violation as far as the App Store would be concerned. For an enterprise applications its possible you could find a way. But for a public App Store download this is not only next to impossible its also a guaranteed rejection.

So is it possible automatically launch my app every time after iPad booted without jail-breaking?
No. Jailbreaking only will allow you to mess with the default behavior of the system such as Launch Items
Will Apple-Store reject my application if I implement the behavior?
If you somehow find a way to circumvent the issue, (i.e. exploit a security breach) then your app will be rejected.
App review guidelines, section 2.4, 2.5

Related

Is it possible to modify an iPhone app to make it run full-screen on the iPad?

I have a paid iPhone app, and I'd like to create an updated version that will run as an iPhone app until the user completes an in-app purchase that will have the app use the full screen.
Is there any way to change an app from a small-sized iPhone app to a full-screen iPad app after the app has already been distributed?
Short Answer: No, it's not possible.
Longer Answer:
This would involve dynamically setting the build settings (specifically Targeted Device Family) at runtime. These settings however, are read and compile/build time. The solution is not impossible, would involve rebuilding the app with different settings. This is unlikely to be permitted by Apple anyway
what you can do is check in your app for any payment made and then if the app has been paid load different data.
The easiest way would be to load different xib files for your layout if the user has paid. The user would however need to quit and relaunch the app to have the payment taken into accound. And you would need in your code to programatically decide to load one xib or the other. But it's doable.

How to lock down user to Single App mode in iOS 6, Programmatically?

There are some question which are related to this,. but getting the exact answer:
Lock-down iPhone/iPod/iPad so it can only run one app
Recently iOS 6 is introduced with some business oriented features, two of theme are:
Guide Access
Supervised Access
These both deals with Accessibility Control features, Like allow user to restrict access to there device, only if they have full access to the device. In that way this is only useful to people, who owned the device like, a school use there device for exam, a restaurant for menus, for product display etc. All of them have access to the device to configure settings etc.
Now my question begins here, I am thinking of an App, which look down user to single app mode when user run the app and after signing out of the app the device start working as before in normal mode.
Through the time when app is active, user should not able to access any other function or button, this applies on all three device iPad, iPhone, iPod.
Also I found that this could be done by installing some Profiles etc, which looks wired and we can't ask user to do so.
So the simple idea is user will only install the App, as normally he does and we could lock him down to single app mode when he log into the app.
The SureLock iOS app does nothing but inform the user how to do it in your system preferences.
Doing it from the app itself is only possible, if you break the rules about private frameworks. And break it hard.
I am sorry to tell you that the way you present your idea, would never be approved for the AppStore.
The accepted answer to this question is no longer correct:
Starting with iOS 7, UIKit exposes the function UIAccessibilityRequestGuidedAccessSession as public API.
I don’t know, but can very well imagine that this function existed as private API dating back to iOS 6, where the guided access feature was introduced.
Note that for this method to have any effect, the device in question must be supervised using MDM, and the ID of the app you want to use this API must be included in the device management profile deployed to it.
Hi may be I am late but I have a good news for you.
Apple provide a new feature in IOS 7 and we can lock the user to single mode without user permission(Lock and unlock mode) here is the apple documentation link
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/#//apple_ref/c/func/UIAccessibilityRequestGuidedAccessSession
the other way is to install the profile config profile like is
http://ipadhire.co.nz/lockdown.mobileconfig
it lock the home button of IPhone and enable single mode
For this you have to do following..
access apple's private api's
access apple's private framework
Apple don't encourage accessing there private api's specially when it comes for App Store, if you accessed the private api's at the time of application review on App Store they will reject the app giving you a message of "accessing a private api".

Iphone Lock Screen

friends, I am new to Iphone development, I am creating a simple analog clock, infact I have already created one ( i am basically an Android Developer - created same as widget for android too), Iphone does not seem to support widgets, but I was wondering if it is possible to create a lock screen app or something (i.e. when screen locks iphone shows a clock) is it possible that my clock replace the iphone one, any ideas , thanks in advance
It is impossible to replace the lock screen of iOS devices with a custom one. iOS apps are not allowed to "lock" the system by any means. Can't avoid the user pressing the home button.
No it is not possible. There is no public API for the lock screen.
Although you may be able to find a way to accomplish your goal in development, it will almost assuredly be rejected by Apple. Here is an excerpt from the App Store Review Guidelines
10.4 Apps that create alternate desktop/home screen environments or simulate multi-app widget experiences will be rejected
It is 100% possible but not approved by Apple. You can develop an app but will never be part of the app store... You can however use it for personal use or share it through a Cydia repo (jailbroken devices). But it is possible.
Not sure with all of you, although i agree a long time ago.. I Just browsing the app store and found an application that can change the way user unlock the iphone after it lock.. Here's the app "Slide your phone"

Disable Home Button

I know this has been asked previously however I would like to disable the home button for an in-house app which will be distributed internally across iPads.
I have searched for a solution both on here and Google and would like to stop users from putting the app into the background. I have seen one solution which doesn't seem to work under iOS 4.0 which opens the app up again when the home button is pressed.
Could I make use of any private APIs to do this seeing as this is an internal app and won't be reviewed by Apple for the App Store?
Thanks
I don't know why this is down voted so much it is a perfectly legit use case for an internal enterprise application. Kiosks, POS etc.
Anyway anyone wanting to know how to do this should see my answer here Lock-down iPhone/iPod/iPad so it can only run one app
Whatever your reasons are you are not able to do this.
Apple provides no functionality to perform this action through their API. You might want to re-think your strategy. Look maybe instead for a physical barrier.
Additionally you might want to look into JailBreaking and iPhone since you say it is only for internal development and won't go to the appstore. A jail broken phone might allow you access to change the home button behavior, though I cannot confirm this since I have never had need to code on a jail broken device.
If it's your iPad, glue or bolt a cover over the home button. Connect the iPad to Xcode or iTunes to halt and/or reload your app.
But note that knowledgable users will still be able to reboot the device by holding down the lock button.
Jailbreak and add incarcer app can disable the home button (admin has a code to allow activation). Then you're locked in your app. If you're up for jailbreaking, seems like a great solution.
There's a new hardware solution, adhesive-backed aluminum home button covers. They allow home button activation through a pinhole, using a paperclip (similar to many popular metal encosures). http://bubcap.com/bubcap-pro.html

iOS (Apple): Is there any way for the application to ask the OS to block the device in that application?

I would find useful, in some cases, and under the user's permission, to block the device so only the running application can be accessed unless the usrer's password (pattern or whatever is used to unlock the session) is introduced.
I guess the mecanism should be something like: The application asks the os to do this, the OS asks the user for permission and then the application asks the device to block the application on "exit" or standby (or both).
This would be useful for using an iPhone or iPad as a device for public use. One example could be a Library where visitors can see the book list and some previews in the device. In this case, you don't want the user to access any other resource/application in the system.
Does it make sense?
What your asking is there any type of kiosk mode for iOS devices.
The short answer in no. The longer answer is if you're using a Jail broken device you might be able to relaunch the app on exit, but it would take significant R&D.
I hade a client ask about this last week, after some investigation and thinking I told her,
It's best to look for a case that blocks the home button. Or some kind of security bracket. It'll be cheaper and easier.
Also any App you create with this functionality would be rejected form the App store.
If your looking for advice on programming Jail broken devices there is a Stack Exchange proposal you can follow.
Supposedly there's a way to have a "kiosk" mode with a .mobileconfig file. Both of these articles talk about it, basically covering the same territory:
http://joris.kluivers.nl/blog/2012/03/02/kiosk-mode-for-ios/
http://rick-hawkins.blogspot.ca/2012/01/turning-ipad-into-kiosk-device.html
I was looking into this again and found out that iOS already supports the feature. It is called Guided Access, it was incorporated on iOS 6, it does not require jailbreak and can be used for any app installed on the device.
It makes sense, but I don't think you can do that without jailbreaking the phone. In iOS, the home button cannot be overridden by applications. Besides there is cheaper hardware out there for kiosk-style applications.