Is it possible to access scores of an iOS game application within other iOS application? - ios

I want to access score of user 'A' that he/she secure in Game_Application_1 within Game_Application_2 when user 'B' playing Game_Application_2.
Assuming user A given permission to access thier score.
Both Application developed by different developer.
Please let me know it is possible or not and if possible then how?
Thank you.

This totally depends, if you developing both app then yes. Storing the scores in the keychain can make it accessible to both app.
If you are you are not the developer of both apps then probably no, unless you have access to some kind of API that could tell you the score. Since you can not access data from other app the developers of the other should provide an API to allow you access the score. This can be web based of even using an App URL Scheme.

If both apps are yours you can easily use iCloud's key-value Store to share information.
See Apple's Key-Value Data in iCloud.
See NSHipster's iCloud article.

In ios application you can't access data from out side the application bundle. If you want any information or data from out side the application bundle then you should use API (web services) which contain those information.

Related

Avoid other apps using the same framework to access the keychain data in iOS

I have a framework which stores data in Keychain.
Is there a way what can I do to prevent access to that data from other apps in a device which has more apps using the same framework? And can they access it?
I googled a lot but could not find a good answer to this question.
Thanks in advance!
That's the default situation. Each app has its own access group by default, and things put into Keychain are limited to that access group. The framework isn't relevant, only the app ID (and by extension the access group or groups).
For more on access groups, see Sharing Access to Keychain Items Among a Collection of Apps for how apps (from the same development team) can share Keychain items. But the default is that they don't.

Is it possible for an app to obtain the information about how long the user uses another app?

In iOS, is it possible for an app to get the information about how long the user uses another app?
In iOS each app runs in its own sandbox and cannot see data from other apps, even apps from the same publisher. An app can access special shared data, like photos from the album or contact data, but it is not possible for an app to directly access information like you have mentioned.
No, there isn't. There is no way to fetch data from another app, this is part of the App Sandboxing principle.

Can we take over the air backup of Applications, Call Log, SMS, MMS, Bookmarks, Alarms, Dictionary on an iPhone?

My app need to take backup of user's iPhone's almost entire data to iCloud.
Can we access the call log, SMS, MMS etc. databases of iPhone just as iCloud does internally while backing up programmatically?
Is there some means to give user option list for data he wants to backup to iCloud in our app and backup only that data instead of all data programmatically?
Thanks
Assuming that you are referring to a non-jail broken device then in a word, no. An app cannot access data outside of its own sandbox
Apple can't allow to access and change SMS and log associated database. If you have jailbreak iPhone then you can access database using following path.
/var/mobile/Library/SMS/sms.db
For development level you can access it but your application wan't get approve from iTune store.
It is not possible to get SMS/Call Log/MMS detail.
Your application only access those data which can be supplies by Apple's public API.
Your application can not access data outside of Sandbox other than public API.
Yes, if your device is jail-broken and you can use hack like direct url to database.
But if you do so your application will never approve by App Store.
Please read App Review Guidelines

Store temporary data outside of iOS app

I have an app that is uniquely branded for each customer (think restaurants, etc.) I need to have the user be able to click on a link to my server that contains a unique code, stores that temporarily on the iOS device (cookie, etc.) and then directs them to the app store to download the app. Then when it is downloaded, the app grabs that cookie or temp. data on launch and brands the app for that customer. I know this is possible on Android, but is it on iOS?
Downloading the app first and then selecting the brand (or restaurant) is not feasible in this case, as the url wil be shared with other customers of the same business and we want to create a fluid experience, where they won't be able to "see behind the scenes" and choose a different branding.
Thanks
Edit
Thank you for all the replies. We've reevaluated and are considering having the url be opened on the device and grabbing the IP address or another unique id, and saving that along with the correct brand to a database. The app will then connect to the database on launch, and if the IP's match, will brand accordingly. We're looking for a more reliable identifier than IP, however. Now that UDID is deprecated, are there any other identifiers we can use?
I think the design you propose of a webserver link creating the code that needs to be read by the iOS app later is the issue. You should have a solution that is entirely app based. Perhaps you can have the same services on the website be available as one app which then sets up the code in pasteboard. The user then launches the actual app that looks at the pasteboard and skins itself accordingly.
That being said, data can be shared between apps from the same app seed ID by using UIPasteboard in addition to a few other ways.
I use the pasteboard to share info between apps quickly and easily using this class.
You can use identifierForVendor (UDID replacement) to identify individual devices. Are you planning on harvesting those identifiers prior to the end user "registering" the device at the final location? If not you'll never be able to determine which device belongs where.
What about having the end-user logging into your server as that restaurant? It can be a somewhat generic login per restaurant like "Wendys/Wendys5?" and "McDonalds/McDonalds7!" to determine their App Store URL. As long as the password is easy and non-programmatic to guess it would be unlikely they figure out how to register as a different restaurant. You could also do a simple restaurant selection screen coupled with a password specific to each chain but this would expose the user to which other restaurants are using the app. This way you won't have to continually add IPs if they expand locations and can revoke credentials if the login is compromised.
One question, though: Do all of your clients understand that they'll have to have an AppleID tied to each device? You can only shared a single AppleID across 20 devices.

iCloud public data possibility

I am developing a iOS/OS X application with a very "nice to have" feature: possibility to sync with non-iCloud clouds.(through web server in example).
The app design already is completely based on iCloud so I was thinking there might be a workaround I could use instead of writing code for one more data marshaling.
Basically what I need is to make some iCloud stored data available to the public OR get user's e-mail/password used for iCloud on iOS/OS X.
The reason why I need it - I'll have to sync data with another cloud and I want to keeps the app lightweight and so move everything to the server (I think I might need OS X server).
Anyways, any suggestion are appreciated a lot!
I can understand wanting to do that, but just because you want to do it doesn't mean that you can.
Basically what I need is to make some iCloud stored data available to the public
I don't believe that there's a way to do that. iCloud isn't a generalized internet hosting service; it's a service designed to make it easy for an individual user to share his/her private information among several devices. Creating the possibility of making information public would only undermine the trust that people put in the service.
OR get user's e-mail/password used for iCloud on iOS/OS X.
That'd put your users in direct violation of the iCloud TOS, which state in part:
You further acknowledge and agree that the Service is designed and
intended for personal use on an individual basis and you should not
share your Account and/or password details with another individual.
If you want users to be able to sync their data with other hosting services and you don't want to build that functionality into your mobile app, you might consider building a MacOS X app that the user could run to sync the data.

Resources