OSX Application Development

Applications

There are four types of applications.

  • Native
  • Java based
  • Unix based
  • X Window Systems (libraries available from XQuartz)

Application development can be done using

  • Carbon (deprecated pre OSX)
  • Cocoa
  • Java (Java 6 used for OSX 10.7 – 10.11)

COTS Applications can be downloaded from

  • Apple Store
    • Requires Apple ID
    • iCloud – syncing with all Apple products
  • Traditional Installer using installer
    • Usually comes in a package (pkg) with a certificate where root is Apple. This show that the application is safe and vetted by Apple
    • Running the package will run the installer wizard
    • Application will show in the Application folder
    • If the install certificate was not correctly signed it will throw a warning
  • Traditional Install using Drag and Drop
    • Can drop and application into the Applications folder
    • Usually a dmg file

Application Uninstall

  • Launchpad
    • Only apps from Apple Store
  • Finder
    • Move app to the trash folder
    • This may leave behind some files, depends on the app
  • Custom Uninstaller
    • Developer of app may include an uninstaller

System Information can be seen from the Apple icon – Software Information.

Application Security

  • Processes
    • Every process has access restrictions
      • File System permissions
      • System Integrity Protection (SIP)
      • Admin authorization required for installation
  • App Sandboxing
    • Without sandboxing the app could access all user files
    • With sandboxing the app can only access those files in their sandbox / container
    • All Apple Store apps use sandboxing
  • Code Signing
    • Optional digital signature for app
    • Developer gets unique ID
    • All apps in Apple Store are code signed
  • Quarantine
    • Quarantine is part of OSX – all downloaded apps are Quarantined
    • Quarantine is controlled by Apple – third party apps cannot quarantine other apps
    • User or admin must approve the removal of the quarantine
  • Malware
    • Apple manages a deny list (black list) that are automatically denied from system
  • Blocking plug-ins
    • Similar to Malware, certain Apple apps block plug-ins such as Safari
  • The Gatekeeper
    • The main protector of Mac system
    • It uses Quarantine and Code Signing to verify apps
    • It blocks apps that have been altered

 

 

 

References

.