UIRequiredDeviceCapabilities equivalent for Mac App Store? - objective-c

I am developing a Mac app that is only useful for laptop owners (MacBooks) and plan on distributing this app on the Mac App Store. For the iOS App Store, you can specify in the plist UIRequiredDeviceCapabilities so that only users with the proper device can see the app in the store. Is there a way to do the same with the Mac App Store?

From page 39 of the iTunes Connect Developer Guide:
If your iOS app requires a specific device capability (i.e. telephony,
GPS, accelerometer, etc.) to function properly, you will need to be
sure to code this into the info.plist of your binary utilizing the
UIRequiredDeviceCapabilities key. Refer to the Build-Time
Configuration Details section of the iOS Application Programming
Guide to learn more. At runtime, iOS cannot launch your application
unless the declared capabilities are present on the device. Further,
the App Store requires this information so that it can generate a
list of requirements for user devices and prevent users from
downloading applications that they cannot run. It is not necessary to
specify required device capabilities for Mac OS X apps.

While there is no equivalent to UIRequiredDeviceCapabilities, some capabilities can be specified in a PreInstallRequirements.plist.
This approach let you specify minimum RAM, GPU capabilities, minimum minversions.
See here:
Mac app store productbuild
https://developer.apple.com/library/archive/qa/qa1748/_index.html#//apple_ref/doc/uid/DTS40011181
https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html

Related

Do mobile operating systems access smartphone sensors?

Do iOS and Android collect any sensor data (e.g. accelerometer, microphone) from smartphones?
If yes, do they have to ask for user permission like third-party apps?
Yes, of course they do - those functions would not work otherwise - it's the OS that collects the data before passing it on to apps. In iOS for example, you can turn off location services system-wide, as well as per-app.
The OS also needs to ask for permission to do so, but that's usually done on a per-app basis, and may only be temporary. Generally this is much more transparent on iOS than Android - Google's own apps get very greedy before they will work, and there is a long history of privacy abuse in Android apps.

Monitor User App Usage From Mac OS X App

I am interested in building a Mac OS X application that requires knowing what applications the user has open and when a new one opens, all when my app is running. It doesn't have to be approved by the Mac App Store (If this violates their use terms). An example of an app that does this is the Rescue Time app.
Thank you for any answers,
Michael Truell
Don't know if you're still trying to needs this, but I did some more research on how to solve this and here is what you could look into:
To get notified when applications are opened by a user, use NSWorkspace's notification center, and add an observer for keys like NSWorkspaceDidActivateApplicationNotification. See the documentation NSWorkspace. You can also use NSWorkspace to get all running applications.
If you need to access information about a running application, you should check out Scripting Bridge, and if you don't care about App Store or sandboxing, check you accessibility api, AX

Access/Use iCloud Data of existing iOS App from a Mac OS App

I am working an Mac OS version of an existing iOS App. The iOS App uses iCloud to share its data accross devices. Of course this data should be accessable from the Mac OS version as well. When implementing the iCloud functionality in the iOS App the Stanford videos have been a great help. The iOS App uses a UIManagedDocument to setup the Core Data stack and handle all the iCloud related stuff.
Unfurtunatly there is no "UIManagedDocument class for Mac OS" wich does the same thing. NSPersistantDocument integrates the Core Data framework but is not designed to work with iCloud. Thus I am not sure how I can access/use the UIManagedDocument data in iCloud from within the Mac OS App.
Access to iCloud from within the Mac OS App is no problem. After using URLForUbiquityContainerIdentifier: I can access the "iCloud Folder" and see all data wich is stored there. But seeing and using the data are two different things.
Is there any example that demonstrates to how use iCloud from iOS AND Mac OS?
Thank you very much!e

Accessing iPhone data from a Mac OS X application?

Is there a class library or an Objective-C framework which could permit me to access my iPhone data from a Mac OS X application?
For example, if I develop an application to edit pictures, I would like access to my iPhone pictures from this application without using iTunes. I connect my iPhone as USB device and pictures are displayed into the application.
Apple doesn't support this mode for (recent) iDevices. There are some apps (mainly on Windows) which can sort of do this kind of thing, but I don't think you're going to find any libraries to make it simple. You may want to check the jailbreaking sites. They might provide better information.

Sync iOS & Mac OS X data

Friends I am working on an app with two versions i.e. iOS & Mac OS X. Currently I am exploring my options to sync core data of iOS version to Mac OS X and vice versa.
Could someone suggest me regarding right tools/apis for the same. Or someone have some tips on how to do the same.
The only condition is we can't use cloud/webservice based syncing.
--- Update 01 ---
While working towards the solution, I explored towards syncing via HTTPServer inline/embeded in an app.
http://cocoawithlove.com/2009/07/simple-extensible-http-server-in-cocoa.html
This allows iOS app to share data but via its IP. I am confused how an OS X app would be able to detect the IP or is there any iPhone connected with the Mac OS.
Just to clarify what I am exactly looking for is ---
User work on any one of the app iOS app OR Mac OSx app. Then user connect the iPhone with Mac machine and sync the data.
I hope someone would be able to guide me accordingly.
I recommend to create a Status Menu Bar Application on Mac and sync your data with libimobiledevice.
The syncing itself is not so easy (if it's directly iOS<->Mac or not iOS<->Cloud<-Mac/iOS->). You might start here.