I have recently started to develop applications for iPhone with MonoTouch and have to store user names and passwords on the phone. I want to use the keychain for this but can't find anything in the MonoTouch documentation about it. Is it possible to use it directly with MonoTouch or will I have to write some C++/C/Objective-C code that uses the keychain and export it to MonoTouch?
According to the current documentation, there is no bindings for the keychain.
Your solutions are:
post a request to Novell for the bindings.
write a .NET wrapper around the KeyChain function by accessing them through P/Invoke. The following page gives you some hint on how to do it. If you need some direction on how to provide an object-oriented wrapper for KeyChain, you can take some inspiration from the EMKeyChain library.
Related
I'm building an web application with react-native.
In this app I need to gather some information about users.
One of them is how much time they spend on other apps installed on their phone.
I couldn't find any library for this job, so I've decided to write the native code my self.
For android, apparently there is this UsageStatsManager that can help me achieve what I want.
But when I searched for sth similar in ios, I found lots of old forums saying that this is not possible.
But I recently I saw this:
It is asking for permission to gather other apps data. SO IT IS POSSIBLE?
Any suggestion is appreciated. How am I supposed to this?
There is no API by apple itself for retrieving data of third party applications. This is called "Sandboxing" where applications are restricted from changing the device settings or retrieving/changing other apps data. Hence, why iphones are secure.
What you have shown in your screenshots is to track application data for personalised ads and such. This can be achieved using the AppTrackingTransparency framework provided by apple. You can read more about the framework here.
TL;DR - You can use AppTrackingTransparency for personalisation
I noticed that there is software (such as iExplorer) that allows you to access files on an iPhone-device from your Mac.
Now my question is: How can I access iPhone files via Objective-c?
This is only for educational purposes.
I found this: https://github.com/Chronic-Dev/libirecovery but I'm not sure if I'm on the right track.
So it seems that you're looking for an API which makes it possible to access the filesystem of the iPhone from a computer. Well, this API exists, and it's called the MobileDevice framework.
Unfortunately, there's no easy or legal way to access files on your iPhone, especially through Objective-C.
The applications installed on iOS are sandboxed, which means they can only access files in their own directory tree; they have no access/knowledge of other files.
Like you said, you can access files using software like iExplorer, but not programmatically from the iPhone itself.
Here is an old project to browse the iphone. You may be able to get some pointers from it on building an application to do the same with the latest info.
http://code.google.com/p/iphonelist/
Couple that with carbonic acid's post about the Mobile Device Framework and you should be able to do some good stuff.
if I find more unique info ill post it here.
Does anyone know if I use the Twitter Framework will my app contain encryption?
Frameworks are not included in your app. They are in the device's firmware and are not copied into your app. So even if an iOS framework had encryption in it, it is not included in your app, you just make function or method calls to it, and are not distributing encryption software.
I think no one really answered your question directly; they were merely inferring your intent. The Twitter framework docs only mention HTTP for API requests. The Twitter docs on this say that SSL is optional though encouraged. So I'd imagine that iOS is handling user authentication via SSL in the background, but that all API requests by developers are done over HTTP using oauth. This is only speculation -- to verify you'd want to run a packet sniffer on your local network and check out the transactions when you call the framework methods.
Regarding the export controls mentioned in other comments here, I'd advise you to look at the iTunes Connect FAQ dealing with export controls within the Dev Center. Apple makes it very clear in that document that using encryption integrated into the iOS frameworks still requires you to apply for an ERN with the US Dept. of Commerce. (I won't quote it due to NDA) The other comments currently on this page are simply wishful thinking. I'm sure some developers were confused (and it is confusing), or perhaps have outright lied and have apps in the store which are violating US law. IANAL; I'll leave that choice up to you.
Having said that, there have been some exemptions added to these requirements, as outlined here.
I'd like to use the Tapku library to add a calander date picker control to my iPad app. I'm new to iPhone OS development and I'm still rusty on identifying the 3rd party tools and code that will get my iPad app denied from the app store. For those that have used the Tapku library, would using it in my iPad app violate any app store rules?
Thanks so much in advance for your help. I'm going to continue researching this question right now.
You shouldn't have any trouble using a 3rd party framework. There's a whole lot of speculation going around about what's in and out, but from what I've read frameworks are not included in the license change.
Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited)
Tapku (as far as I know) is written in Objective-C, so I don't see a violation of the above. The modifications to the agreement mostly address frameworks like Adobe's iPhone Packager and Monotouch.
On another note - don't worry too much about whether your app will get rejected or not. Read the iPhone Human Interface Guidelines and use their standard API and you'll do fine. If you do get rejected they will normally give you a detailed explanation why.
I would like to access the visual voicemail files that are stored on an iphone. Are there ways to access these files through the SDK? Does anybody have any experience in working with these files? I am assuming that they are files that are downloaded from the network and stored locally on the iphone.
No, each application on the iPhone is isolated, so you cannot access data for any other application, unless Apple specifically provides an API for doing so, like they did for the Contacts list.
No - the issue is that Apple provides very few methods to access data outside of your application's "sandbox". At this point, you can really only access contacts data and the camera via the supported methods. If you try to access data outside of your application without using an Apple provided public API designed for that purpose, your app will most likely not be allowed in the app store. Maybe this will change in the future, but I wouldn't hold my breath.