OS X PACKAGING Duncan McCracken Mondada Pty Ltd Hashtag : #xw15 - - PowerPoint PPT Presentation

os x packaging
SMART_READER_LITE
LIVE PREVIEW

OS X PACKAGING Duncan McCracken Mondada Pty Ltd Hashtag : #xw15 - - PowerPoint PPT Presentation

OS X PACKAGING Duncan McCracken Mondada Pty Ltd Hashtag : #xw15 Please leave comments on this talk at auc.edu.au/xworld/sessions About Mondada How we started Now running for 6 years The Statistics Current: 273 Vendors, 552 Titles,


slide-1
SLIDE 1

OS X PACKAGING

Duncan McCracken

Mondada Pty Ltd

Please leave comments on this talk at auc.edu.au/xworld/sessions Hashtag : #xw15

slide-2
SLIDE 2 M O N D A D A

About Mondada

  • How we started
  • Now running for 6 years
  • The Statistics
  • Current: 273 Vendors, 552 Titles, 1161 Packages
  • 2014: 3307 Packages Built, 10924 Delivered
  • 2015: 1548 Packages Built, 4093 Delivered so far
slide-3
SLIDE 3 M O N D A D A

Best Practices

  • Install on any volume (where

possible)

  • Avoid changing too much with scripts

(where possible)

  • Meaningful error messages
slide-4
SLIDE 4 M O N D A D A

Reference Materials

  • Distribution Definition XML Schema Reference



 https://developer.apple.com/library/mac/documentation/ DeveloperTools/Reference/DistributionDefinitionRef/Chapters/ Introduction.html

  • Installer JavaScript Reference



 https://developer.apple.com/library/mac/documentation/ DeveloperTools/Reference/InstallerJavaScriptRef/index.html#// apple_ref/doc/uid/TP40005137

  • Software Delivery Legacy Guide



 https://developer.apple.com/legacy/library/documentation/ DeveloperTools/Conceptual/SoftwareDistribution4/ SoftwareDistribution4.pdf

slide-5
SLIDE 5 M O N D A D A

Package Components

slide-6
SLIDE 6 M O N D A D A

Distribution

  • Installation Checks
  • os-version


<volume-check>
 <allowed-os-versions>
 <os-version min="10.8.4" before=“10.10"/>
 </allowed-os-versions>
 </volume-check>

  • must-close


<pkg-ref id="org.mozilla.firefox">
 <must-close>
 <app id="org.mozilla.firefox"/>
 </must-close>
 </pkg-ref>

  • required-bundles


<volume-check>
 <required-bundles all="true" description=“ERROR_MSG">
 <bundle id="com.apple.prokit" path="/System/Library/PrivateFrameworks/ProKit.framework" CFBundleShortVersionString="7.0"/>
 </required-bundles>
 </volume-check>

slide-7
SLIDE 7 M O N D A D A

Distribution

  • Selections
  • pkg-ref active


<pkg-ref id="com.apple.pkg.iPhoneSimulatorSDK6_1Patch" active="system.compareVersions(my.target.systemVersion.ProductVersion, '10.9') > 0”/>

  • relocate


very useful for re-locating existing applications

slide-8
SLIDE 8 M O N D A D A

Plugins

  • Only really useful when installing via the UI
  • Don’t make a plugin a show-stopper
  • Reference


https://developer.apple.com/legacy/library/ samplecode/InstallerPluginSample/Introduction/ Intro.html

slide-9
SLIDE 9 M O N D A D A

Common Components

  • BOM


Contains a listing of the files delivered

  • Archive


The actual files themselves

slide-10
SLIDE 10 M O N D A D A

Flat Packages

  • PackageInfo


XML description of the flat package
 Contains the Script calls

  • Scripts


Perform pre/post install tasks

slide-11
SLIDE 11 M O N D A D A

Bundle Packages

  • Info.plist


Much the same as the PackageInfo

  • Resources


Contains the scripts & extras

slide-12
SLIDE 12 M O N D A D A

The Tools

  • Stephane Sudre
  • Iceberg*


http://s.sudre.free.fr/Software/Iceberg.html

  • Packages


http://s.sudre.free.fr/Software/Packages/about.html


slide-13
SLIDE 13 M O N D A D A

The Tools

  • JAMF
  • Composer


http://www.jamfsoftware.com/products/composer/

slide-14
SLIDE 14 M O N D A D A

The Tools

  • Adobe
  • Adobe Application Manager Enterprise Edition (AAMEE)


http://www.adobe.com/devnet/creativesuite/ enterprisedeployment.html

  • Creative Cloud Packager (CCP)


https://www.adobe.com/go/ccp_installer_osx

  • Adobe CustomiSation Wizard


http://www.adobe.com/devnet-docs/acrobatetk/tools/Wizard/ index.html


slide-15
SLIDE 15 M O N D A D A

The Tools

  • Apple (OS X built-in)
  • pkgutil


pkgutil --expand “/path/to/package” “/path/to/destination”
 pkgutil --flatten “/path/to/folder” “/path/to/package”

  • pkgbuild


pkgbuild --component “/path/to/app“ --scripts “/path/to/scripts“ --identifier “com.example.pkg” --version “1.0" --install-location “/Applications" --ownership recommended “/path/to/packagename.pkg”

  • productbuild


productbuild --version “1.0" --component “/path/to/application“ “/path/to/install-location“ "“/path/to/ packagename.pkg”

  • productsign


productsign--sign "Developer ID Installer: Mondada Pty Ltd" “/path/to/unsigned/package“ “/path/to/signed/ package“

slide-16
SLIDE 16 M O N D A D A

Packaging Workflows

  • Payload-free
  • Scripts only
  • Drag and Drop
  • Single Application
  • Application in a Folder
slide-17
SLIDE 17 M O N D A D A

Packaging Workflows

  • Already in pkg Form
  • Modify Distribution
  • Modify Scripts
  • Bundle Conversion
  • Complete re-package
slide-18
SLIDE 18 M O N D A D A

Packaging Workflows

  • 3rd Party Installers
  • Call installer via CLI (Payload-free)
  • Snapshot package
  • Adobe
  • AAMEE / CCP
  • ACW
slide-19
SLIDE 19 M O N D A D A

Gotchas

  • Snapshots
  • Plugins
  • Calling 3rd Party Installers
slide-20
SLIDE 20 M O N D A D A

What we Do

  • No Bundles
  • Split up Packages
  • Install
  • Update
  • Settings*
  • Modular Scripts
slide-21
SLIDE 21 M O N D A D A

What we Do

  • Dealing with User-space
  • Handling Running Apps
  • Signing Packages
slide-22
SLIDE 22 M O N D A D A

On Our Roadmap

  • Notifications for Running Apps
  • Provisioning Profiles
slide-23
SLIDE 23 M O N D A D A

Thank you

www.mondada.com.au