How do I stop someone from using our app? - ios

Our iOS app has a kind of chat room, messaging service built into it, which is reflected on our website.
Sometimes we get a few users who come on just to stir up trouble, but lately there's been a few who we just can't shake. On the web we can restrict their IP, and recently we've been blocking them through the app via device ID.
Which worked for a while until they figured out that reinstalling the app reset it.
Is there anyway at all to identify these people, and permanently restrict their access?

You can store the device ID in the keychain, that way they have the same id even after deleting and reinstalling the app.

Related

Force removal/invalidation of iOS app from user devices

Assuming you created an app that users have downloaded that is just awful and you neither want to fix it nor have anyone continue to use it so that it won't tarnish your brand, is there a way to end its life on user's iOS devices?
Curious if there is some store setting to force it to work with earlier versions of iOS and invalidates the current app, or code that would force an update that says the app is no longer available.
As many have confirmed, there is no way to remove an application from someone's device. For these cases though, many companies have servers that the application sends a request to on launch, that returns either a need to update the app, a message, or to tell the user the app has been discontinued and that the app cannot be used anymore, stopping them from using the app from there on.
The last use case might be useful to you, but of course this is a proactive solution, not a reactive one.

Opening App From a Notification While Device is Locked

Is there a way to open an app from the lock screen without putting in the password? Like the phone app can be called when a missed call notification is present. Is this possible?
I have dabbled with various ideas to make the main functionality of my app work. Through my research I cannot find an answer to my dilemma.
I want the user to be able to use the app without unlocking the phone or once in the app not being able to quit the app without a password essentially locking the phone from other uses except the main functionality of the app.
I know there are private frameworks that would allow it but is there a way to do it with Apple's approval?
No. This would be a security issue as you could send an APN and potentially allow someone to get into a locked device without the user's approval.

Track other app from my app - iOS

Is there any provision to track(usage time) of any app from another app in iOS?For example:- I have developed an app named "A" and I want to track usage time of another app installed in my device(iPhone or Android) named "B". By usage time, I mean how much time a user had used the app. Would it be possible?
Another scenario:- Is it possible to track usage time of native app(like mail, camera, message,etc) from our app?
I think this is not possible in iOS, but not sure about it. Does anyone have any idea of this?Note:- I don't want to track my app usage using Google analytics.
You can't!
All the application in iOS runs in sandbox mode.
If you want to track your application usage you have to connect it to the server with (ex) REST interface.
EDIT:
Just bump on the idea...
If you writing for iOS7 you can use Shared Keychain feature. You can send there all usage statistics and receiving it by other app. Should work!
Check this out: http://shaune.com.au/ios-keychain-sharing-data-between-apps/
If both apps are signed by the same App Store Developer account, then they can both share an iCloud data store. Just store the usage time in iCloud and it'll work perfectly.
You cannot track any app by any other developer, the security model does not allow it.

Where is the "iOS Would Like Access to Twitter Accounts" alert?

When you first ever open a new app, whether you're a developer making one, or you have just downloaded from the app store, if Twitter access is needed, it will ask for it.
I can only get this AlertView to show once, per device. No matter what I do, I can't get it back, deleting the app + data, re-building it from Xcode, revoking access to Twitter accounts on the device itself...
None of these work.
I can detect in the code whether on not I have access to Twitter, but it was more of a UI problem I was having when it first appeared. So I really need to see it again.
If anyone could help that'd be great!
To invoke the dialog again, change app id temporarily. Since app id uniquely identifies an app, it'll be like a new app.

Remotely uninstalling application from iPad

Is it possible to uninstall application from an iPad remotely without user's permission?
The client wants an app for secure sharing company data through iPads and some server (something like Dropbox). The requirement form the client also is to wipe all application data from iPad and possibly uninstall application at all when employee is fired :-)
In my opinion neither the data wiping or remote uninstalling is possible. I am just curious if anyone can came with some solution.
I plan simply offer client to open all encrypted documents only inside an app and only when the app is connected to internet. Each time the document is about to be opened (even if the document is cached) authentication is required. When employee is fired documents can't be read.
You're right in your assumption that remote uninstalling is not possible. And data wiping isn't possible without the user's permission. (The only solution I can think of for this is to send a remote notification with instruction to delete files, but the user would have to open the application from that notification, they could just ignore it).
Authentication does sound like a viable solution. Ask the user to sign in when they open the application (and when the app returns from background) and authenticate the sign in remotely on a server. When the user leaves the company, invalidate their login. Encrypt files stored on the device for extra security.
You could do something where your app checks with a server, each time it is run, for a "kill flag". It could still have content on board but it just does not allow access until it has confirmed there is no kill flag. If there is a kill flag then it wipes all sensitive data.
Another thing to consider is that devices connected through Exchange can be remotely wiped by an administrator. If your client uses exchange and is ok with the idea of completely wiping the device this could be a procedure they could implement.

Resources