<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2831440541785741913</id><updated>2024-10-31T02:26:04.154-07:00</updated><category term="Distribution"/><category term="Packagemaker"/><category term="codesign"/><category term="10.12"/><category term="Install operations"/><category term="Scripting in Installer Packages"/><category term="attributes"/><category term="cocoa"/><category term="command"/><category term="command-line"/><category term="distribution.dist"/><category term="dmg signing"/><category term="dock"/><category term="gatekeeper"/><category term="gui"/><category term="icon"/><category term="installation-check"/><category term="introduction"/><category term="javascript"/><category term="mac"/><category term="macos sierra"/><category term="mavericks"/><category term="packagemaker 3"/><category term="postinstall"/><category term="prductbuild"/><category term="preinstall"/><category term="reference"/><category term="screenshot"/><category term="signing disk images"/><category term="verify signature"/><category term="xml"/><category term="yosemite"/><title type='text'>Simplifying Macintosh for developers</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-5225500358036954357</id><published>2016-09-27T09:04:00.004-07:00</published><updated>2016-10-14T23:32:34.235-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="10.12"/><category scheme="http://www.blogger.com/atom/ns#" term="codesign"/><category scheme="http://www.blogger.com/atom/ns#" term="dmg signing"/><category scheme="http://www.blogger.com/atom/ns#" term="gatekeeper"/><category scheme="http://www.blogger.com/atom/ns#" term="macos sierra"/><category scheme="http://www.blogger.com/atom/ns#" term="signing disk images"/><category scheme="http://www.blogger.com/atom/ns#" term="verify signature"/><title type='text'>Codesign guide: Changes for MacOS Sierra (10.12)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you are facing any problems on MacOS Sierra (10.12) related to codesigning, it might be one of the cases mentioned below. Check out the common problems and how to fix them to be fully compliant with MacOS Sierra-&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Problem:&lt;/b&gt; Application launched from dmg is not working properly after downloading dmg from web.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution:&lt;/b&gt; Starting with MacOS Sierra, running a newly-downloaded app from a disk image, archive, or the Downloads directory will cause &lt;b&gt;&lt;i&gt;Gatekeeper to isolate that app at an unspecified read-only location in the filesystem&lt;/i&gt;.&lt;/b&gt; This will prevent the app from accessing code or content using relative paths.&lt;br /&gt;
Sign your disk images so that Gatekeeper can verify it when it is mounted for the first time.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Problem:&lt;/b&gt; How can I sign a dmg file?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution:&lt;/b&gt; Disk images can be signed using the &lt;b&gt;&lt;i&gt;codesign &lt;/i&gt;&lt;/b&gt;tool on &lt;b&gt;&lt;i&gt;MacOS 10.11.5 and later&lt;/i&gt;&lt;/b&gt;. This allows the entire disk image to be validated by Gatekeeper the first time it is mounted.&lt;br /&gt;
Gatekeeper will validate the contents of the disk image as well.&lt;br /&gt;
Disk images should only be signed with your &lt;i&gt;&lt;b&gt;Developer ID Application&lt;/b&gt;&lt;/i&gt; identity.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Problem:&lt;/b&gt; How can I verify the signature of my dmg file?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution:&lt;/b&gt; On MacOS Sierra and later, &lt;i&gt;&lt;b&gt;spctl &lt;/b&gt;&lt;/i&gt;can be used to assess a disk image&#39;s signature, like this:&lt;br /&gt;
&lt;br /&gt;
$ &lt;b&gt;&lt;span style=&quot;color: #20124d;&quot;&gt;spctl -a -t open --context context:primary-signature -v MyImage.dmg&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;/Users/me/Downloads/MyImage.dmg: accepted&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;source=Developer ID&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Problem:&lt;/b&gt;&amp;nbsp;Can I sign ISO images?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution:&lt;/b&gt;&amp;nbsp;No, there is no provision for signing these. Preferably, do not ship apps using ISO images.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Problem:&lt;/b&gt;&amp;nbsp;Is it possible to resign a dmg that is already signed?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution:&lt;/b&gt;&amp;nbsp;A disk image signed on OS X 10.11.5 or 10.11.6 may not be able to be re-signed. In this situation, the operation will appear to succeed, but the signature will be invalid. If you encounter this condition, sign a new (unsigned) copy of the image on MacOS Sierra or later.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Problem:&lt;/b&gt; Does Gatekeeper verify my app everytime it is launched?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Solution:&lt;/b&gt; On MacOS Sierra and later, Gatekeeper will check your app &lt;i&gt;every time it&#39;s launched if it is run from the location where it was downloaded&lt;/i&gt;. If it is copied to some other directory (like /Applications), then the checks are not repeated again.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #20124d;&quot;&gt;References/Useful links:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;https://developer.apple.com/library/prerelease/content/technotes/tn2206/_index.html&quot;&gt;https://developer.apple.com/library/prerelease/content/technotes/tn2206/_index.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://macinstallers.blogspot.in/2014/08/codesign-mavericks-yosemite-commands.html&quot;&gt;https://macinstallers.blogspot.in/2014/08/codesign-mavericks-yosemite-commands.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/5225500358036954357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2016/09/codesign-guide-changes-for-macos-sierra.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5225500358036954357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5225500358036954357'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2016/09/codesign-guide-changes-for-macos-sierra.html' title='Codesign guide: Changes for MacOS Sierra (10.12)'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-5900999529715840760</id><published>2014-08-29T11:56:00.001-07:00</published><updated>2014-09-09T10:03:39.433-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="codesign"/><category scheme="http://www.blogger.com/atom/ns#" term="mavericks"/><category scheme="http://www.blogger.com/atom/ns#" term="yosemite"/><title type='text'>Codesign on Mavericks/Yosemite: Some useful commands</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Recently, Apple announced that from 10.9.5 and 10.10 onwards, the apps signed in OSX Mountain Lion and below will not be able to pass the Gatekeeper. Those signatures (v1) will be considered deprecated and you must sign your apps in 10.9 or above to have latest signature (v2). &lt;br /&gt;
At this point of time, it is unclear if Apple is really going to block the apps with v1 signatures. We can’t be sure until we have a GM build for OSX Yosemite. Anyway, it is better to start signing on 10.9 straightaway so that our apps are compliant to the changes done by Apple.&lt;br /&gt;
Following are some commands that may be useful:&lt;br /&gt;
Verify if any app will be accepted by Gatekeeper on 10.9.5 (OSX Mavericks) /10.10 (OSX Yosemite) or above.&lt;br /&gt;
&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9D7513F9-C04C-4721-824A-2B34F0212519:ac30d9fb-8daa-45dc-9769-415e10b6daea&quot; style=&quot;display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;pre class=&quot;brush: cpp; gutter: false; first-line: 1; tab-size: 4;  toolbar: false;  width: 505px; height: 148px;&quot; style=&quot;height: 148px; overflow: auto; width: 505px;&quot;&gt;vikrams-macbook-pro:~ admin$ spctl -a -t exec -vv Foo.app
Foo.app: rejected
source=obsolete resource envelope

vikrams-macbook-pro:~ admin$ spctl -a -t exec -vv Foo.app
Foo.app: accepted
source=Developer ID
origin=Developer ID Application: My Company&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;
&lt;br /&gt;
Sign an app:&lt;br /&gt;
&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9D7513F9-C04C-4721-824A-2B34F0212519:95e14652-1aae-4154-a634-83692d54398d&quot; style=&quot;display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;pre class=&quot;brush: cpp; gutter: false; first-line: 1; tab-size: 4;  toolbar: false;  width: 564px; height: 25px;&quot; style=&quot;height: 25px; overflow: auto; width: 564px;&quot;&gt;codesign  --sign  “Developer ID Application: My Company”  Foo.app&lt;/pre&gt;
&lt;pre class=&quot;brush: cpp; gutter: false; first-line: 1; tab-size: 4;  toolbar: false;  width: 564px; height: 25px;&quot; style=&quot;height: 25px; overflow: auto; width: 564px;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
Resign an already signed app (Use –f flag):&lt;br /&gt;
&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9D7513F9-C04C-4721-824A-2B34F0212519:816bb9d4-dc38-4810-8d45-66aabaae20f3&quot; style=&quot;display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;pre class=&quot;brush: cpp; gutter: false; first-line: 1; tab-size: 4;  toolbar: false;  width: 641px; height: 18px;&quot; style=&quot;height: 18px; overflow: auto; width: 641px;&quot;&gt;codesign  --force --sign  “Developer ID Application: My Company”  Foo.app &lt;/pre&gt;
&lt;pre class=&quot;brush: cpp; gutter: false; first-line: 1; tab-size: 4;  toolbar: false;  width: 641px; height: 18px;&quot; style=&quot;height: 18px; overflow: auto; width: 641px;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
Check the version of the signature. See the line starting with &quot;Sealed Resources&quot;. There, version=2 indicates that this app has the new signature type as suggested by Apple:&lt;br /&gt;
&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9D7513F9-C04C-4721-824A-2B34F0212519:723eb51f-e773-4868-8a52-7b74a909b6e4&quot; style=&quot;display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;pre class=&quot;brush: cpp; gutter: false; first-line: 1; tab-size: 4;  toolbar: false;  width: 641px; height: 293px;&quot; style=&quot;height: 293px; overflow: auto; width: 641px;&quot;&gt;vikrams-macbook-pro:~ admin$ codesign -dvvv Foo.app 
Executable=Foo.app/Contents/MacOS/Foo
Identifier=com.vikrams.testapp
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=42914 flags=0x0(none) hashes=2138+3 location=embedded
Hash type=sha1 size=20
CDHash=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Signature size=7589
Authority=Developer ID Application: My Company
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=23-Aug-2014 4:32:13 pm
Info.plist entries=17
TeamIdentifier=31ACEW5CBX
Sealed Resources version=2 rules=12 files=137
Internal requirements count=1 size=192&lt;/pre&gt;
&lt;/div&gt;
You can find more options for &quot;codesign&quot; command at its &lt;a href=&quot;https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/codesign.1.html&quot; target=&quot;_blank&quot;&gt;man page&lt;/a&gt;.
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/5900999529715840760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2014/08/codesign-mavericks-yosemite-commands.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5900999529715840760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5900999529715840760'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2014/08/codesign-mavericks-yosemite-commands.html' title='Codesign on Mavericks/Yosemite: Some useful commands'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-8980750522251366383</id><published>2014-08-21T10:25:00.001-07:00</published><updated>2014-08-22T08:41:23.526-07:00</updated><title type='text'>PackageMaker and OSX Mavericks</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
Recently, I tried to use PackageMaker.app on OSX Mavericks and the result was a crash. The version I was using was 3.0.5. During the launch, PackageMaker crashed with following crash log.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9D7513F9-C04C-4721-824A-2B34F0212519:b5e56560-d364-41cf-9ede-d047fc92b4d4&quot; style=&quot;display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;pre class=&quot;brush: cpp; gutter: false; first-line: 1; tab-size: 4;  toolbar: false;  width: 685px; height: 504px;&quot; style=&quot;height: 504px; overflow: auto; width: 685px;&quot;&gt;Process:         PackageMaker [338]
Path:            /Volumes/VOLUME/Developer/AuxiliaryTools/PackageMaker.app/Contents/MacOS/PackageMaker
Identifier:      com.apple.PackageMaker
Version:         ???
Build Info:      PackageMaker-196001000000000~606
Code Type:       X86 (Native)
Parent Process:  launchd [155]
Responsible:     PackageMaker [338]
User ID:         501

Date/Time:       2014-08-21 21:59:14.963 +0530
OS Version:      Mac OS X 10.9.4 (13E28)
Report Version:  11
Anonymous UUID:  B98E910E-EB57-50EB-B983-9297F16941A0

Sleep/Wake UUID: 3DE16912-3893-4886-B367-0331B7A52488

Crashed Thread:  0

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: /System/Library/PrivateFrameworks/DSObjCWrappers.framework/Versions/A/DSObjCWrappers
  Referenced from: /Volumes/VOLUME/Developer/AuxiliaryTools/PackageMaker.app/Contents/MacOS/PackageMaker
  Reason: image not found

Binary Images:
0x8fe9e000 - 0x8fed0417  dyld (239.4) &amp;lt;FF5ED937-CC28-3FEF-BCAF-750B1CDBAE36&amp;gt; /usr/lib/dyld
0x906b1000 - 0x9085dfff  com.apple.QuartzCore (1.8 - 332.3) &amp;lt;DA347693-5E26-3E47-A2B3-3824C52EB08B&amp;gt; /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x9085e000 - 0x9086cff7  libz.1.dylib (53) &amp;lt;858B4D9F-D87E-3D81-B07A-DF9632BD185F&amp;gt; /usr/lib/libz.1.dylib
0x93f71000 - 0x93fb1ff7  com.apple.bom (14.0 - 193.1) &amp;lt;FFF1C8E5-41FF-357B-8681-69B21DCED2E4&amp;gt; /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom
0x9408e000 - 0x9417aff7  libxml2.2.dylib (26) &amp;lt;32040145-6FD6-3AD2-B98B-39F73BF9AC47&amp;gt; /usr/lib/libxml2.2.dylib
0x963cd000 - 0x963cdfff  com.apple.Cocoa (6.8 - 20) &amp;lt;407DC9E6-BBCE-3D34-9BBB-00C90584FFDF&amp;gt; /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
If you also faced a similar issue, please download the new version of PackageMaker application from &lt;a href=&quot;https://developer.apple.com/downloads&quot;&gt;Apple download center&lt;/a&gt;. It comes bundled inside the package named &quot;Auxiliary Tools for Xcode&quot;. Make sure you are downloading the Auxiliary Tools dmg that came out in late July 2012. It has PackageMaker 3.0.6 which works fine on Mavericks and hopefully on Yosemite as well (though I didn&#39;t try on Yosemite). &lt;br /&gt;
Hope that solved your problem. &lt;br /&gt;&lt;br /&gt;  &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/8980750522251366383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2014/08/packagemaker-and-osx-mavericks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/8980750522251366383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/8980750522251366383'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2014/08/packagemaker-and-osx-mavericks.html' title='PackageMaker and OSX Mavericks'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-3551837017147651045</id><published>2014-03-09T10:07:00.000-07:00</published><updated>2014-08-25T10:08:41.967-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cocoa"/><category scheme="http://www.blogger.com/atom/ns#" term="dock"/><category scheme="http://www.blogger.com/atom/ns#" term="icon"/><title type='text'>Removing dock icon using Cocoa</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;&quot;&gt;Sometimes there is a need of removing a dock icon programmatically. In such cases, there are third party utilities like dockutil, available to do the task. However, there was a problem in OSX Mavericks (Mac 10.9) where dockutil failed to remove the icon from the dock. [Update: The issue in dockutil is fixed in their latest version]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;&quot;&gt;If any of you faced a similar issue, you can use the Cocoa APIs to remove the dock icon right from your code. See the sample code below-&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style=&quot;background: #ffffff; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;&quot;&gt;
&lt;pre style=&quot;line-height: 125%; margin: 0;&quot;&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;-&lt;/span&gt;(&lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;void&lt;/span&gt;) &lt;span style=&quot;color: #0066bb; font-weight: bold;&quot;&gt;removeDockIcon:&lt;/span&gt; (NSString&lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt;) dockIconName
{ 
 NSUserDefaults &lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt;userDefaults &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; [NSUserDefaults standardUserDefaults];

 NSDictionary&lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt; dockDict &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; [userDefaults persistentDomainForName&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;@&quot;com.apple.dock&quot;&lt;/span&gt;];

 NSMutableArray&lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt; apps &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; [dockDict valueForKey&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;@&quot;persistent-apps&quot;&lt;/span&gt;];
 &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;if&lt;/span&gt; (apps &lt;span style=&quot;color: #333333;&quot;&gt;!=&lt;/span&gt; &lt;span style=&quot;color: #007020;&quot;&gt;nil&lt;/span&gt;)
 { 
  NSArray&lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt; appsCopy &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; [apps copy];
  &lt;span style=&quot;color: #333399; font-weight: bold;&quot;&gt;bool&lt;/span&gt; modified &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #007020;&quot;&gt;NO&lt;/span&gt;;
  &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;for&lt;/span&gt;(NSDictionary &lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt;anApp &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;in&lt;/span&gt; appsCopy)
  {
   NSDictionary&lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt; fileDict &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; [anApp valueForKey&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;@&quot;tile-data&quot;&lt;/span&gt;];
   &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;if&lt;/span&gt;(fileDict &lt;span style=&quot;color: #333333;&quot;&gt;!=&lt;/span&gt; &lt;span style=&quot;color: #007020;&quot;&gt;nil&lt;/span&gt;)
   {
    NSString &lt;span style=&quot;color: #333333;&quot;&gt;*&lt;/span&gt;appName &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; [fileDict valueForKey&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;@&quot;file-label&quot;&lt;/span&gt;];

    &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;if&lt;/span&gt;([dockIconLabel isEqualToString&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;/span&gt;appName])
    {
     [apps removeObject&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;/span&gt;anApp];
     modified &lt;span style=&quot;color: #333333;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #007020;&quot;&gt;YES&lt;/span&gt;;
     &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;break&lt;/span&gt;;
    }
   }
  }
  &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;if&lt;/span&gt;(modified)
  {
   &lt;span style=&quot;color: #888888;&quot;&gt;//If the dictionary was modified, save the new settings.&lt;/span&gt;
   [userDefaults setPersistentDomain&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;/span&gt;dockDict forName&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;background-color: #fff0f0;&quot;&gt;@&quot;com.apple.dock&quot;&lt;/span&gt;];
   &lt;span style=&quot;color: #888888;&quot;&gt;//Reset the standardUserDefaults so that the modified data gets synchronized&lt;/span&gt;
   &lt;span style=&quot;color: #888888;&quot;&gt;//and next time when this function is invoked, we get the up-to-date dock icon details.&lt;/span&gt;
   [NSUserDefaults resetStandardUserDefaults];
  }
 }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;&quot;&gt;
&lt;/span&gt;
&lt;span style=&quot;font-family: Lucida Grande, Lucida Sans Unicode, Helvetica, Arial, Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Lucida Grande, Lucida Sans Unicode, Helvetica, Arial, Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;&quot;&gt;NOTE: It is a sample code written when I didn&#39;t have access to my Mac. Please do the necessary cleanup and fix syntax errors if any.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;&quot;&gt;UPDATE:&lt;/span&gt;&lt;span style=&quot;font-family: Lucida Grande, Lucida Sans Unicode, Helvetica, Arial, Verdana, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;dockutil now has the fix for this issue. &lt;a href=&quot;https://github.com/kcrawford/dockutil&quot;&gt;https://github.com/kcrawford/dockutil&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/3551837017147651045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2013/12/remove-dock-icon-using-cocoa.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/3551837017147651045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/3551837017147651045'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2013/12/remove-dock-icon-using-cocoa.html' title='Removing dock icon using Cocoa'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-404999822014823023</id><published>2014-01-10T20:27:00.001-08:00</published><updated>2014-01-10T20:28:00.693-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="screenshot"/><title type='text'>Take awesome screenshots on Mac</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 14px; line-height: 22px; margin: 0px; padding: 0px;&quot;&gt;
Well, do you know Mac offers some really easy ways of capturing full or parts of its screen. Just with the click of some buttons, you can get the screenshot of a window, the full screen or just some part of the screen.
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Pictures of the screen (screenshots) are saved as files on the desktop, but if you prefer to put a screenshot in the Clipboard, hold down the Control key while you press the other keys. You can then paste the picture into a document.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #333333; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, Helvetica, Arial, Verdana, sans-serif; font-size: 14px; line-height: 22px; margin: 0px; padding: 0px;&quot;&gt;
&lt;div class=&quot;kbtablecontainer&quot; style=&quot;border: 0px solid rgb(222, 222, 222); margin-bottom: 15px !important; margin-left: 0px !important; margin-right: 15px !important; margin-top: 0px; overflow: auto; padding: 0px; width: 680px;&quot;&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; border-spacing: 0px; margin-bottom: 0px !important;&quot; summary=&quot;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th align=&quot;left&quot; id=&quot;d177177e77&quot; style=&quot;font-size: 1em; font-weight: normal;&quot; valign=&quot;bottom&quot;&gt;Action&lt;/th&gt;&lt;th align=&quot;left&quot; id=&quot;d177177e80&quot; style=&quot;font-size: 1em; font-weight: normal;&quot; valign=&quot;bottom&quot;&gt;Shortcut&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td headers=&quot;d177177e77&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Take a picture of the whole screen&lt;/div&gt;
&lt;/td&gt;&lt;td headers=&quot;d177177e80&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Command (⌘)-Shift-3&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td headers=&quot;d177177e77&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Take a picture of part of the screen&lt;/div&gt;
&lt;/td&gt;&lt;td headers=&quot;d177177e80&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Command (⌘)-Shift-4, and then drag the crosshair pointer to select the area. Continue to press the mouse button, release the keys, and then press Shift, Option, or the Space bar while you drag to resize the selection area. When you are ready to take a picture, release the mouse button.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
To cancel, press Escape before you release the mouse button.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td headers=&quot;d177177e77&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Take a picture of a window or the menu bar&lt;/div&gt;
&lt;/td&gt;&lt;td headers=&quot;d177177e80&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Command (⌘)-Shift-4, press the Space bar, move the camera pointer over the area to highlight it, and then click.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
To cancel, press Escape before you click.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td headers=&quot;d177177e77&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Take a picture of a menu, including the title&lt;/div&gt;
&lt;/td&gt;&lt;td headers=&quot;d177177e80&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Click the menu to display the menu commands, press Command (⌘)-Shift-4, and drag the crosshair pointer over the area.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
To cancel, press Escape before you click.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td headers=&quot;d177177e77&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Take a picture of the menu without its title&lt;/div&gt;
&lt;/td&gt;&lt;td headers=&quot;d177177e80&quot; valign=&quot;top&quot;&gt;&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
Click the menu to display the menu commands, press Command (⌘)-Shift-4, press the Space Bar, move the camera pointer over the menu to highlight it, and then click.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 18px; padding: 0px;&quot;&gt;
To cancel, press Escape before you click.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/404999822014823023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2014/01/take-awesome-screenshots-on-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/404999822014823023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/404999822014823023'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2014/01/take-awesome-screenshots-on-mac.html' title='Take awesome screenshots on Mac'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-5347125430448057017</id><published>2013-01-29T07:58:00.000-08:00</published><updated>2013-01-29T08:03:47.292-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Distribution"/><category scheme="http://www.blogger.com/atom/ns#" term="distribution.dist"/><category scheme="http://www.blogger.com/atom/ns#" term="installation-check"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Packagemaker"/><title type='text'>Inside Distribution.dist file</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;center&gt;
  &lt;h2 class=&quot;head1&quot;&gt;
Inside Packagemaker Distribution.dist file&lt;/h2&gt;
&lt;/center&gt;
&lt;div class=&quot;desc&quot;&gt;
So now, you must be familiar with component and distribution packages. This post will cover everything about the ‘Distribution’ file contained inside every distribution package. 
 This file has all the information about the behavior of the package (both visually and in terms of workflow). 
 You can mention the background, License, Read Me files along with Installation-Check and Volume-Check. 
 You can find the list of all the attributes which you can use inside Distribution file at &lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html&quot;&gt;DistributionDefinitionReference&lt;/a&gt;. 
 &lt;br /&gt;
&lt;br /&gt;
Below is an example of a valid distribution file: (Comments are provided inline)
 &lt;/div&gt;
-----------------------------------------------------------------------------------------------------------------------------------------------
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;
&amp;lt;?xml version=&quot;1.0&quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;installer-script authoringTool=&quot;&quot; authoringToolBuild=&quot;&quot; authoringToolVersion=&quot;&quot; minSpecVersion=&quot;1.000000&quot;&amp;gt;&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#title&quot;&gt;title&lt;/a&gt;&amp;gt;My Distribution Package&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#options&quot;&gt;options&lt;/a&gt; allow-external-scripts=&quot;no&quot; customize=&quot;allow&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#domains&quot;&gt;domains&lt;/a&gt; enable_localSystem=&quot;true&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#installation-check&quot;&gt;installation-check&lt;/a&gt; script=&quot;CustomInstallationCheck();&quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#script&quot;&gt;script&lt;/a&gt;&amp;gt;&lt;br /&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;!-- You can write your custom Javascript functions here. --&amp;gt;&lt;/span&gt;&lt;br /&gt;
function CheckIfLeopardOrHigher()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;!-- An example function to check if system version is 10.6 or higher --&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retVal = true;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SnowLeopardOrHigher = system.compareVersions(my.target.systemVersion.ProductVersion, &#39;10.6&#39;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; system.log(&quot;10.6 or higher:&quot; + SnowLeopardOrHigher);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(SnowLeopardOrHigher &amp;lt; 0)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;retVal = false;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return retVal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function CustomInstallationCheck()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;!-- An example function to show a typical installation check function --&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(!(system.compareVersions(system.version.ProductVersion, &#39;10.5&#39;) &amp;gt;= 0))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;!-- Allow installation only on 10.5 or higher --&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my.result.title = system.localizedString(&#39;ERROR_SYSTEM_VERSION_TITLE&#39;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my.result.message = system.localizedString(&#39;ERROR_SYSTEM_VERSION_MSG&#39;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my.result.type = &#39;Fatal&#39;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!(system.sysctl(&#39;hw.cputype&#39;) == &#39;7&#39;))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;!-- Allow installation only on Intel machines --&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my.result.title = system.localizedString(&#39;ERROR_HW_MACHINE_TITLE&#39;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my.result.message = system.localizedString(&#39;ERROR_HW_MACHINE_MSG&#39;);&amp;nbsp;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; my.result.type = &#39;Fatal&#39;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;nbsp;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#background&quot;&gt;background&lt;/a&gt;&amp;nbsp; &amp;nbsp;alignment=&quot;center&quot; &amp;nbsp; file=&quot;background&quot; &amp;nbsp; scaling=&quot;tofit&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#readme&quot;&gt;readme&lt;/a&gt;&amp;nbsp;&amp;nbsp; file=&quot;ReadMe&quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#choices-outline&quot;&gt;choices-outline&lt;/a&gt;&amp;gt;&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#line&quot;&gt;line&lt;/a&gt;&amp;nbsp;&amp;nbsp; choice=&quot;choice1&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#line&quot;&gt;line&lt;/a&gt;&amp;nbsp;&amp;nbsp; choice=&quot;choice2&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#line&quot;&gt;line&lt;/a&gt;&amp;nbsp;&amp;nbsp; choice=&quot;choice3&quot;/&amp;gt; &lt;br /&gt;
&amp;lt;/choices-outline&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#choice&quot;&gt;choice&lt;/a&gt;&amp;nbsp;&amp;nbsp; id=&quot;choice1&quot; &amp;nbsp; start_visible=&quot;false&quot; &amp;nbsp; title=&quot;Component 1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;pkg-ref&lt;/a&gt;&amp;nbsp; &amp;nbsp;id=&quot;com.vikrams.comp1&quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/choice&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#choice&quot;&gt;choice&lt;/a&gt;&amp;nbsp; &amp;nbsp;id=&quot;choice2&quot; start_visible=&quot;false&quot; title=&quot;Component 2&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;pkg-ref&lt;/a&gt;&amp;nbsp; &amp;nbsp;id=&quot;com.vikrams.comp2&quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/choice&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#choice&quot;&gt;choice&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;id=&quot;choice3&quot; &amp;nbsp;description=&quot;APPLICATION_DESCRIPTION_MSG&quot; &amp;nbsp;start_enabled=&quot;false&quot; &amp;nbsp; title=&quot;Component 3&quot; &amp;nbsp; visible=&quot;!CheckIfLeopardOrHigher()&quot;&amp;gt;&lt;br /&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;&amp;lt;!-- This choice will not be visible on 10.5. Also, it will be disabled by default. See the above line. --&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;pkg-ref&lt;/a&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;id=&quot;com.vikrams.comp3&quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/choice&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;pkg-ref&lt;/a&gt;&amp;nbsp; &amp;nbsp;auth=&quot;Root&quot; &amp;nbsp; id=&quot;com.vikrams.comp1&quot; &amp;nbsp; installKBytes=&quot;102400&quot; &amp;nbsp; version=&quot;1.0.0&quot;&amp;gt;#Component1.pkg&amp;lt;/pkg-ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;pkg-ref&lt;/a&gt;&amp;nbsp; &amp;nbsp;auth=&quot;Root&quot; &amp;nbsp; id=&quot;com.vikrams.comp2&quot; &amp;nbsp; installKBytes=&quot;234000&quot; &amp;nbsp; version=&quot;1.0.0&quot;&amp;gt;#Component2.pkg&amp;lt;/pkg-ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;pkg-ref&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;auth=&quot;Root&quot; &amp;nbsp; id=&quot;com.vikrams.comp3&quot; &amp;nbsp; installKBytes=&quot;540564&quot; &amp;nbsp; version=&quot;1.0.0&quot;&amp;gt;#Component3.pkg&amp;lt;/pkg-ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/installer-script&amp;gt;

&lt;/div&gt;
-----------------------------------------------------------------------------------------------------------------------------------------------

&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/5347125430448057017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2013/01/inside-distributiondist-file.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5347125430448057017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5347125430448057017'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2013/01/inside-distributiondist-file.html' title='Inside Distribution.dist file'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-9152644331661775034</id><published>2013-01-28T07:57:00.001-08:00</published><updated>2013-01-31T02:00:58.912-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="attributes"/><category scheme="http://www.blogger.com/atom/ns#" term="Distribution"/><category scheme="http://www.blogger.com/atom/ns#" term="reference"/><category scheme="http://www.blogger.com/atom/ns#" term="xml"/><title type='text'>XML Attributes of Packagemaker Distribution.dist file</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;center&gt;
  &lt;h2 class=&quot;head1&quot;&gt;
XML Attributes of Packagemaker Distribution.dist file&lt;/h2&gt;
&lt;/center&gt;
&lt;div class=&quot;desc&quot;&gt;
A distribution definition file defines the installation experience for the installer package that contains it. This
document describes the XML schema used for distribution definition files.
An installer package can contain only one distribution definition file, which must be named
&lt;b&gt;distribution.dist&lt;/b&gt;.
 &lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#allowed-os-versions&quot;&gt;allowed-os-versions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#app&quot;&gt;app&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#auxinfo&quot;&gt;auxinfo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#background&quot;&gt;background&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#bundle&quot;&gt;bundle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#bundle-version&quot;&gt;bundle-version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#choice&quot;&gt;choice&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#choices-outline&quot;&gt;choices-outline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#conclusion&quot;&gt;conclusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#domains&quot;&gt;domains&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#installation-check&quot;&gt;installation-check&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#installer-gui-script&quot;&gt;installer-gui-script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#license&quot;&gt;license&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#line&quot;&gt;line&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#localization&quot;&gt;localization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#locator&quot;&gt;locator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#must-close&quot;&gt;must-close&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#options&quot;&gt;options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#os-version&quot;&gt;os-version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;pkg-ref&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#ram&quot;&gt;ram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#readme&quot;&gt;readme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#relocate&quot;&gt;relocate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#required-bundles&quot;&gt;required-bundles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#required-cl-device&quot;&gt;required-cl-device&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#required-gl-renderer&quot;&gt;required-gl-renderer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#required-graphics&quot;&gt;required-graphics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#script&quot;&gt;script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#search&quot;&gt;search&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#strings&quot;&gt;strings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#tag&quot;&gt;tag&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#tags&quot;&gt;tags&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#title&quot;&gt;title&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#volume-check&quot;&gt;volume-check&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#welcome&quot;&gt;welcome&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;allowed-os-versions&quot;&gt;
allowed-os-versions&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines OS version requirements. These consist of
   one or more version ranges, specified as os-version elements. The
   version of the operating systemon the target volume must fall into
   one of these ranges to allow installation.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None&lt;/div&gt;
&lt;h3&gt;
Availability&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None&lt;/div&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following element:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#os-version&quot;&gt;“os-version”&lt;/a&gt;: The supported OS
    versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;app&quot;&gt;
app&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Identifies an application that must be closed
   before the package is installed.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;id&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The bundle identifier of the application.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;auxinfo&quot;&gt;
auxinfo&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Reserved&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;background&quot;&gt;
background&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines a background image for the Installer.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Requirements: You must provide either the
   mime-type or uti attribute. If you provide both, they must be
   consistent.&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;alignment&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. The alignment used to render the background
     image. Values: center (default), left, right, top, bottom, topleft,
     topright, bottomleft, and bottomright. Only used by the Installer.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;file&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The filename of an image in the distribution
     package—for example, background.png or ./background.png.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;mime-type&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The standard MIME type of the image.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;scaling&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. The scaling used to render the background image.
     Values: tofit (default), none, and proportional.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;uti&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The UTI type of the image. This attribute is provided
     because some file types don’t have a MIME type.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;bundle&quot;&gt;
bundle&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines a single bundle. The meaning of this
   element differs considerably depending on its parent element; see the
   parent element’s documentation for details.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;CFBundleShortVersion-String&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. The short version string of the bundle, as
     defined in its Info.plist file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;CFBundleVersion&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. The bundle’s version, as defined in its
     Info.plist file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;id&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The identifier of the bundle—that is, the value
     of CFBundleIdentifier in the bundle’s Info.plist file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;path&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The path atwhich the bundle is installed,
     relative to where the package is installed. For example,
     Applications/Sample.app.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;search&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Indicates whether to search for the bundle by its
     identifier if it is not found at the given path. Values: false
     (default), true.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;BuildVersion&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;SourceVersion&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;bundle-version&quot;&gt;
bundle-version&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines the version of the bundles delivered by
   the parent element. You do not typically specify this element;
   productbuild inserts it from the actual package data when the product
   archive is created.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;h3&gt;
Availability&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Available in Mac OS X v10.6.6 and later.&lt;/div&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following elements:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#bundle&quot;&gt;&quot;bundle&quot;&lt;/a&gt;: The package-relative path and
    version strings of the bundles installed.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;choice&quot;&gt;
choice&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines an installation choice of a distribution
   package.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;customLocation&lt;/td&gt;
    &lt;td&gt;Absolute file path&lt;/td&gt;
    &lt;td&gt;Optional. Specifies the default installation location,
     within the installation volume, for this choice. Implies that the
     user can choose a different installation location. If unspecified,
     the user cannot choose the installation location for this choice.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;customLocationAllow-AlternateVolumes&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional if customLocation is specified; otherwise, not
     allowed. Specifies whether the user can choose the installation
     volume. Values: false (default) indicates that the user can choose
     a different location than what is given by customLocation but
     cannot change the volume; true indicates that the user can choose
     the installation volume and the location on that volume. A value of
     true is only valid for packages that use the Installer.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;description&lt;/td&gt;
    &lt;td&gt;String,localization key&lt;/td&gt;
    &lt;td&gt;Required for packages that use the Installer; otherwise,
     optional. Specifies the description of the installation choice.
     Localizable.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;description-mime-type&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. The MIME type of the text data in the description
     attribute. Values: text/plain (default), text/rtf, or text/html.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;enabled&lt;/td&gt;
    &lt;td&gt;Boolean JavaScript expression&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether the user can select or deselect
     this option in the Installer customization pane. If false, or a
     JavaScript expression that evaluates to false, the choice is dimmed
     so the user cannot select or deselect it. Re-evaluated as the user
     interacts with the choice tree, so a choice can be enabled or
     disabled based on the state of other choices. Default value is
     true.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;id&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. Unique identifier of the installation choice,
     used to bind this element to the line element that determines its
     position in the installation-choice hierarchy. Mustmatch the choice
     attribute of exactly one line element.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;selected&lt;/td&gt;
    &lt;td&gt;Boolean JavaScript expression&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether this option is selected or
     deselected for installation. If false, or a JavaScript expression
     that evaluates to false, the choice will not be installed. In
     general, you should not declare this attribute on a choice that is
     visible and enabled, because it can interfere with the user’s
     selections. Default value is true.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;start_enabled&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether this option is initially
     enabled in the Installer customization pane. Values: true
     (default), or false.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;start_selected&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether this option is initially
     selected or deselected for installation. Values: true (default), or
     false.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;start_visible&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether this option is initially
     visible in the Installer customization pane. Values: true
     (default), or false.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;title&lt;/td&gt;
    &lt;td&gt;String,localization key&lt;/td&gt;
    &lt;td&gt;Required. Specifies the title of the installation choice.
     Localizable.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;visible&lt;/td&gt;
    &lt;td&gt;Boolean JavaScript expression&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether this option is visible in the
     Installer customization pane. If false, or a JavaScript expression
     that evaluates to false, the choice is hidden from the user.
     Default value is true. Avoid making choices appear and disappear
     while the user is interacting with the installation process. This
     provides a poor user experience.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;bundle&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;customLocationIs-SelfContained&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;tooltip&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;versStr&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following element:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;&quot;pkg-ref&quot;&lt;/a&gt;: The choice’s packages. You
    should only associate packages with a choice that has no subchoices
    (as defined by the hierarchy of line elements)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;choices-outline&quot;&gt;
choices-outline&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines the installation-choice hierarchy of a
   distribution package.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;ui&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following element:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;ahref line=&quot;&quot;&gt;&quot;line&quot;&lt;/ahref&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
: The top-level installation
    choices.
  
 


 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;conclusion&quot;&gt;
conclusion&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies text that is displayed by Installer at
   the end of the installation process.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Requirements You must provide either the mime-type
   or uti attribute. If you provide both, they must be consistent.&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;file&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The filename of the conclusion file in the
     distribution package—for example, conclusion.rtf.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;mime-type&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The MIME-type specifier for the data contained in the file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;uti&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The UTI-type specifier for the data contained in the file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;language&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;domains&quot;&gt;
domains&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Indicates what domains the package may be
   installed into. If this element is not present, enable_anywhere is
   true, enable_currentUserHome is false, and enable_localSystem is
   true.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;enable_anywhere&lt;/td&gt;
    &lt;td&gt;Boolean JavaScript expression&lt;/td&gt;
    &lt;td&gt;Required. If true, or a JavaScript expression that
     evaluates to true, the product can be installed at the root of any
     volume, including nonsystem volumes. Otherwise, it cannot be
     installed at the root of a volume.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;enable_currentUserHome&lt;/td&gt;
    &lt;td&gt;Boolean JavaScript expression&lt;/td&gt;
    &lt;td&gt;Required. If true, or a JavaScript expression that
     evaluates to true, the product can be installed into the current
     user’s home directory. Otherwise, it cannot be installed in the
     current user’s home directory. A home directory installation is
     done as the current user (not as root), and it cannot write outside
     of the home directory. You should enable this only if the product
     can be installed in the user’s home directory and be completely
     functional from that location.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;enable_localSystem&lt;/td&gt;
    &lt;td&gt;Boolean JavaScript expression&lt;/td&gt;
    &lt;td&gt;Required. If true, or a JavaScript expression that
     evaluates to true, the product can be installed into the root
     directory. This attribute should usually be true unless the product
     can be installed only to the user’s home directory.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;installation-check&quot;&gt;
installation-check&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies whether the installation host meets the
   distribution’s system requirements. The installation check passes if
   the script returns true, any RAM requirements are met, and any
   graphics requirements are met.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;script&lt;/td&gt;
    &lt;td&gt;Boolean JavaScript expression&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether the requirements are met. If
     true (default), or a Boolean JavaScript expression that evaluates
     to true, the installation proceeds, subject to the other checks. If
     the script evaluates to false, it must also set my.result.type and
     my.result.message to indicate the severity of the problem and
     provide a message to display. If my.result.type is Warning, the
     installation may be allowed to proceed after informing the user.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following elements:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#ram&quot;&gt;&quot;ram&quot;&lt;/a&gt;: The required RAM.&lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#required-graphics&quot;&gt;&quot;required-graphics&quot;&lt;/a&gt;: The GPU
    requirements.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;installer-gui-script&quot;&gt;
installer-gui-script&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
The root element of the distribution definition.
   All other elements in the distribution definition file are children
   of this element.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;minSpecVersion&lt;/td&gt;
    &lt;td&gt;Integer&lt;/td&gt;
    &lt;td&gt;Required. The schema version of a distribution file. Use 1
     for the version used prior to Mac OS X v10.6.6, or 2 after that.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;maxSpecVersion&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;verifiedSpecVersion&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following elements:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#background&quot;&gt;&quot;background&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#choice&quot;&gt;&quot;choice&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#choices-outline&quot;&gt;&quot;choices-outline&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#conclusion&quot;&gt;&quot;conclusion&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#domains&quot;&gt;&quot;domains&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#installation-check&quot;&gt;&quot;installation-check&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#license&quot;&gt;&quot;license&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#locator&quot;&gt;&quot;locator&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#options&quot;&gt;&quot;options&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#pkg-ref&quot;&gt;&quot;pkg-ref&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#readme&quot;&gt;&quot;readme&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#script&quot;&gt;&quot;script&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#title&quot;&gt;&quot;title&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#volume-check&quot;&gt;&quot;volume-check&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#welcome&quot;&gt;&quot;welcome&quot;&lt;/a&gt;
   &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;license&quot;&gt;
license&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies text that is displayed by Installer
   during the installation process.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Requirements You must provide either the mime-type
   or uti attribute. If you provide both, they must be consistent.&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;file&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The filename of the welcome file in the
     distribution package—for example, welcome.rtf.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;mime-type&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The MIME-type specifier for the data contained in the file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;uti&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The UTI-type specifier for the data contained in the file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;auto&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;auto&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;sla&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;line&quot;&gt;
line&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines where a choice fits into the
   installation-choice hierarchy of a distribution package.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;choice&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. Identifies the installation choice associated
     with this node of the installation-choice hierarchy of a
     distribution package. The valuemust match the ID of a choice
     element. See “choice”. Do not reference the same ID from more than
     one line element, not even from different installation-choice
     hierarchies; if you do so, the behavior is undefined.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following element:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#line&quot;&gt;&quot;line&quot;&lt;/a&gt;: The subchoices of this choice.
   &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;localization&quot;&gt;
localization&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Reserved.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;locator&quot;&gt;
locator&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines a search rule for finding software that is
   already installed on the system.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following element:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#search&quot;&gt;&quot;search&quot;&lt;/a&gt;: The search rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;must-close&quot;&gt;
must-close&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Identifies applications that must be closed before
   the package is installed. Applications are considered only if the
   package that contains this element has been selected for
   installation.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following element:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#app&quot;&gt;&quot;app&quot;&lt;/a&gt;: The applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;options&quot;&gt;
options&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies the installation properties of a package
   within the distribution.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;allow-external-scripts&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether the run and runOnce JavaScript
     functions can be executed. Values: false (default) or true. For
     information about these functions, see “System” in Installer
     JavaScript Reference .&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;customize&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether the user can customize the
     installation by selecting or deselecting installation choices.
     Values: allow (default) gives the user an opportunity to customize
     the installation, always presents the customization view
     automatically. never does not provide access to the customization
     view.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;hostArchitectures&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. A comma-separated list of supported architecture
     codes. Valid codes are i386, x86_64, and ppc. Note that i386
     matches both 32-bit and 64-bit systems, but x86_64 matches only
     64-bit systems.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;mpkg&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. Identifies a package (pkg-ref element) whose
     installation operations must be performed as part of the
     installation of this distribution. Deprecated.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;require-scripts&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Indicates whether the distribution uses
     JavaScript code. Values: true (default) or false. If this value is
     false, all attributes whose value may be a JavaScript expression
     must be set to either true or false. Available in Mac OS X v10.6.6
     and later.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;rootVolumeOnly&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Specifies whether the user can choose an
     installation volume other than the boot volume. Values: true or
     false. Deprecated. Use domains instead.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;type&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;visibleOnlyForPredicate&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;os-version&quot;&gt;
os-version&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines a range of supported OS versions. This
   element is designed for you to use a specific OS version number for
   the min attribute, and a major OS version number for the before
   attribute. The expectation is that you will know an exact minimum
   version but not an exact major version. This keeps you from having to
   guess the last minor revision before the next major revision, as you
   would have to do if the before attribute were inclusive.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;before&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. The maximum allowed version (exclusive). If the
     OS version is greater than or equal to this version, installation
     will be disallowed (unless the OS falls in the range of another
     os-version element). If no value is given, there is no upper bound
     on the range—any version newer than the minimum is allowed.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;min&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The minimum allowed version (inclusive). If the
     OS is less than this version, installation will be disallowed
     (unless the OS falls in the range of another os-version element).&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;pkg-ref&quot;&gt;
pkg-ref&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
References a component package that can be
   installed.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;active&lt;/td&gt;
    &lt;td&gt;Boolean Javascript expression&lt;/td&gt;
    &lt;td&gt;Optional. Indicates whether the package is installed.
     Values: true (default), false. If false, or a JavaScript expression
     that evaluates to false, the package is not installed, even if its
     associated choice was selected. This provides an additional way to
     activate and deactivate packages. It overrides the setting on the
     parent element.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;auth&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Defines the authorization level needed to install this
     package. Values: none or root. Deprecated. The installation domain
     determines the necessary authorization level.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;id&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. Uniquely identifies a component packagewithin a
     distribution package—for example, com.apple.Text- Edit.pkg. The
     value of this attribute is usually the same as the component
     package’s identifier, but it is not required to be the same. If
     there are multiple pkg-ref elements with the same ID, their
     attributes will be collapsed together as if they were specified
     with a single element. In particular, a pkg-ref element with only
     an ID can be used inside of a choice element to bind that choice to
     a pkg-ref that is more fully defined elsewhere in the distribution
     file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;installKBytes&lt;/td&gt;
    &lt;td&gt;Integer&lt;/td&gt;
    &lt;td&gt;Optional. Specifies the size of the package’s payload in
     kilobytes. You typically omit this attribute because productbuild
     sets it from the actual package when the product archive is
     created.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;onConclusion&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. Specifies the action to take after the
     installation has finished. Values, fromlowest to highest: None
     (default), RequireLogout, RequireRestart, or RequireShutdown. The
     Installer takes the highest value from all enabled packages and
     requires the associated action&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;onConclusionScript&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional. A JavaScript expression that evaluates to one of
     the string values expected for onConclusion. If this attribute is
     present, any onConclusion attribute is ignored. Available in Mac OS
     X v10.7 and later.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;version&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. Specifies the version of the package’s payload.
     You typically omit this attribute because productbuild will set it
     from the actual package when the product archive is created.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;archiveKBytes&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;packageIdentifier&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Required. A URL specifying the location of the
   installation package to which this element refers. Typically, you
   specify a simple filename and productbuild adjusts the URL as needed
   when the product archive is created. If you define multiple pkg-ref
   elements with the same ID, exactly one of them should have text
   content. This element can contain the following elements:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#must-close&quot;&gt;&quot;must-close&quot;&lt;/a&gt;: (zero or one) :The
    application(s) to be closed before installing this package.&lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#bundle-version&quot;&gt;&quot;bundle-version&quot;&lt;/a&gt;:(zero or one): The
    bundle version.&lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#relocate&quot;&gt;&quot;relocate&quot;&lt;/a&gt;: (zero or more): The
    information to support relocatable bundles.&lt;/li&gt;
&lt;/ul&gt;
To provide a must-close element, add a separate pkg-ref element with
  the same ID to contain the must-close element. For example:&lt;br /&gt;
&amp;amp;ltpkg-ref id=&quot;abc&quot;&amp;amp;gtx.pkg&amp;amp;lt/pkg-ref&amp;amp;gt&lt;br /&gt;
&amp;amp;ltpkg-ref
  id=&quot;abc&quot;&amp;amp;gt&lt;br /&gt;
&amp;amp;ltmust-close&amp;amp;gt&lt;br /&gt;
&amp;amp;ltapp
  id=&quot;com.example.MyApp&quot;/&amp;amp;gt&lt;br /&gt;
&amp;amp;lt/must-close&amp;amp;gt&lt;br /&gt;
&amp;amp;lt/pkg-ref&amp;amp;gt
 &lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;ram&quot;&gt;
ram&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies the minimum amount of RAM that the system must have.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;min-gb&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The minimum required RAM in gigabytes.
(Consistent with how sizes are displayed in Mac OS X v10.6 and later, a
gigabyte is defined as 109 bytes, not 230 bytes.)&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Availability&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Available in Mac OS X v10.6.6 and later.&lt;/div&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;readme&quot;&gt;
readme&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies text that is displayed by Installer during the installation process.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Requirements  You must provide either the mime-type or uti attribute. If you provide both, they
must be consistent.&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;file&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The filename of the readme file in the distribution package.
For example, readme.rtf.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;mime-type&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The MIME-type specifier for the data contained in the file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;uti&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The UTI-type specifier for the data contained in the file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;language&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;relocate&quot;&gt;
relocate&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Describes a relocatable bundle. Relocatable bundles allow the user to install an upgrade in the same path as
the current version. The path is located by the search element whose ID is specified by the search-id
attribute. The bundle is specified by the child bundle element. For example, application bundles are typically
relocatable.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;search-id&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. Specifies the ID of the search element whose results are
applied to the bundle that is this element’s child element.
If the search returns false, the relocate does nothing. If the search
returns an array of results, the first result is used.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following element:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#bundle&quot;&gt;&quot;bundle&quot;&lt;/a&gt;(exactly one): The bundle (within the package) that will be installed at the path. The only required attribute for this bundle element is its ID.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;required-bundles&quot;&gt;
required-bundles&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies bundles that must be already installed on the system.
If the child bundle element has a version specified, this is interpreted as the minimum supported version for
that bundle. It may also have its search attribute set to true, indicating that the bundle should be located
by its identifier if it doesn’t exist at the specified path.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;all&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Values: true (default) to require all of the
specified bundles, or false to require at least one of them.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;description&lt;/td&gt;
    &lt;td&gt;String, localization key&lt;/td&gt;
    &lt;td&gt;Optional. A description of the required bundles, displayed
to the user if the requirement is not met.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following element:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#bundle&quot;&gt;&quot;bundle&quot;&lt;/a&gt;: The required bundles.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;required-cl-device&quot;&gt;
required-cl-device&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies requirements that must be met by at least one OpenCL device.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;h3&gt;
Availability&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Available in Mac OS X v10.7 and later.&lt;/div&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
The predicate, as a string. For details about the predicate format, see the productbuild(1) man page.
To prevent characters in the predicate from being interpreted by the XML parser, mark it as CDATA content.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;required-gl-renderer&quot;&gt;
required-gl-renderer&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies requirements that must be met by at least one OpenGL hardware renderer.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;h3&gt;
Availability&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Available in Mac OS X v10.6.8 and later.&lt;/div&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
The predicate, as a string. For details about the predicate format, see Specifying required OpenGL capabilities
for the Mac App Store and the productbuild man page.
To prevent characters in the predicate from being interpreted by the XML parser, mark it as CDATA content.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;required-graphics&quot;&gt;
required-graphics&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies GPU requirements.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;description&lt;/td&gt;
    &lt;td&gt;String,localization key&lt;/td&gt;
    &lt;td&gt;Optional. A description of the graphics requirement.
Localizable.
If no description is specified, a generic message is used. It is
generally best to use the generic message unless the
requirements are very straightforward.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;single-device&lt;/td&gt;
    &lt;td&gt;Boolean&lt;/td&gt;
    &lt;td&gt;Optional. Values: false (default) to allow the OpenCL and
OpenGL requirements to bemet by different devices, or true
to require a single device to simultaneously meet both
requirements.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following elements:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#required-cl-device&quot;&gt;&quot;required-cl-device&quot;&lt;/a&gt;: The OpenCL requirements.&lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#required-cl-device&quot;&gt;&quot;required-gl-renderer&quot;&lt;/a&gt;: The OpenGL requirements.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;script&quot;&gt;
script&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines a set of JavaScript functions.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;language&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
JavaScript code, typically the definition of functions called from attributes of other elements.
  To prevent characters in the script from being interpreted by the XML parser, mark it as CDATA content:
  &lt;br /&gt;
&amp;amp;ltscript&amp;amp;gt&lt;br /&gt;
&amp;amp;lt![CDATA[&lt;br /&gt;
// ... JavaScript ...&lt;br /&gt;
]]&amp;amp;gt&lt;br /&gt;
&amp;amp;lt/script&amp;amp;gt&lt;br /&gt;
&lt;br /&gt;
If you choose not to mark your script as CDATA content, you must take great care to properly escape all
characters that have special meaning in XML markup.
  &lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;search&quot;&gt;
search&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines a search rule for finding installed software. The result should be used by another search rule or bound
to a bundle via a relocate element.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;id&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. Uniquely identifies the search; used in the search-id attribute
of other elements to reference this search.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;script&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required if type is script; otherwise, not allowed.
A JavaScript expression that evaluates to false, a path as a string, or an
array of paths. If it returns an array of paths, the first one is the preferred
path.
This expression can be a function call, but the called function must be
defined in the child script element.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;search-id&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional if type is component; otherwise, not allowed.
The ID of another search. The other search is performed, and its results
further filtered by removing those results that don’t match the version
strings given by the child bundle element. This allows the other search
to be qualified for certain values of CFBundleShortVersionStrings
or CFBundleVersions.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;search-path&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Optional if type is component; otherwise, not allowed.
A path to a bundle. If there is a bundle at this path that matches the
version string of this element’s child bundle element, then the path is
used as the search result.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;type&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. Indicates the type of the search. Valid values are:
component Search for a bundle on disk that matches the identifier and
version strings given by the child bundle element. By default, the Installer
uses Launches Services to perform the search, and it searches only the
volume that the user selected as the installation target. The search-id
and search-path attributes modify this behavior.
script Search by evaluating the JavaScript code contained in the
script attribute.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element must contain exactly one of the following elements:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#bundle&quot;&gt;&quot;bundle&quot;&lt;/a&gt;: The bundle for a component search.&lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#script&quot;&gt;&quot;script&quot;&lt;/a&gt;: The script for a script search.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;strings&quot;&gt;
strings&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Reserved.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;tag&quot;&gt;
tag&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Reserved.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;tags&quot;&gt;
tags&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Reserved.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;title&quot;&gt;
title&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Defines the title of the product.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
The title or a localization key used to look up the title.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;volume-check&quot;&gt;
volume-check&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies whether a particular volume meets the distribution’s volume requirements. All of the tests in the
script attribute and the child elements must pass.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;script&lt;/td&gt;
    &lt;td&gt;Boolean Javascript espression&lt;/td&gt;
    &lt;td&gt;Required. Specifies whether the requirements for installing on a
particular volume are met.
If the script evaluates to false, itmust also set my.result.type
and my.result.message to indicate the severity of the problem
and provide a message to display.
The property my.target.mountpoint contains themount point
of the volume being checked.&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
This element can contain the following elements:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#allowed-os-versions&quot;&gt;&quot;allowed-os-versions&quot;&lt;/a&gt;:(zero or one): The versions of the OS to accept on the target volume.&lt;/li&gt;
&lt;li class=&quot;list1&quot;&gt;&lt;a href=&quot;http://macinstallers.blogspot.in/2013/01/xml-attributes-of-packagemaker.html#required-bundles&quot;&gt;&quot;required-bundles&quot;&lt;/a&gt;:(zero or one): The bundles that must already be present.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2 class=&quot;head1&quot; id=&quot;welcome&quot;&gt;
welcome&lt;/h2&gt;
&lt;div class=&quot;desc&quot;&gt;
Specifies text that is displayed by Installer at the beginning of the installation process.&lt;/div&gt;
&lt;h3&gt;
Attributes&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
Requirements  You must provide either the mime-type or uti attribute. If you provide both, they
must be consistent.&lt;/div&gt;
&lt;table bgcolor=&quot;#E0FFFF&quot; border=&quot;1px&quot; cellpadding=&quot;5&quot; style=&quot;font-size: large;&quot;&gt;
   &lt;tbody&gt;
&lt;tr bgcolor=&quot;#ECD872&quot;&gt;
    &lt;th width=&quot;200px&quot;&gt;Attribute Name&lt;/th&gt;
    &lt;th width=&quot;150px&quot;&gt;Type&lt;/th&gt;
    &lt;th width=&quot;400px&quot;&gt;Description&lt;/th&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;file&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;Required. The filename of the welcome file in the distribution
package—for example, welcome.rtf.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;mime-type&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The MIME-type specifier for the data contained in the file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;uti&lt;/td&gt;
    &lt;td&gt;String&lt;/td&gt;
    &lt;td&gt;The UTI-type specifier for the data contained in the file.&lt;/td&gt;
   &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;language&lt;/td&gt;
    &lt;td&gt;-&lt;/td&gt;
    &lt;td&gt;Reserved&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;
Content&lt;/h3&gt;
&lt;div class=&quot;desc&quot;&gt;
None.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------------------------------------

&lt;br /&gt;
&lt;b&gt;Disclaimer:&lt;/b&gt; &lt;i&gt;This reference is a copy of Distribution Definition Reference published by Apple.&lt;/i&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/9152644331661775034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2013/01/xml-attributes-of-packagemaker.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/9152644331661775034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/9152644331661775034'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2013/01/xml-attributes-of-packagemaker.html' title='XML Attributes of Packagemaker Distribution.dist file'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-5275649950112466993</id><published>2012-07-07T05:56:00.000-07:00</published><updated>2012-07-07T06:51:09.438-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Distribution"/><category scheme="http://www.blogger.com/atom/ns#" term="Install operations"/><category scheme="http://www.blogger.com/atom/ns#" term="postinstall"/><category scheme="http://www.blogger.com/atom/ns#" term="preinstall"/><category scheme="http://www.blogger.com/atom/ns#" term="Scripting in Installer Packages"/><title type='text'>Scripting in Installer Packages</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;In my previous post, I discussed about
creating packages to deploy your application bundles. However, installation of
some applications is more complex and requires many actions other than copying
the payload. For example, you want to check if a particular application is already
installed on the system before installing your application.&amp;nbsp; For all these tasks, you can use the preinstall, postinstall and Distribution scripts which are included in the package and run by the installer during the installation. After the Installer application finishes checking installation requirements, it performs an install through distinct operations, known as install operations. You can define all but one of these operations, which copy payloads to their installation destinations. You should not use install operations to fix install problems, such as incorrect ownership and access permissions. You should use install operations only when other managed-install features, such as installation requirements, are not adequate for the chore you need to perform as part of installing a package.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Install operations allow you to
configure the destination environment before the payload is copied to the file
system and to perform additional processing afterward. Install operation
executables must be named according to the install operation you want to
define. The files can be binary files or text files containing shell scripts.
All install operations are optional. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;You can use following arguments and environment
variables which are available to install operation executables. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;text-align: left; text-indent: -0.25in;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b style=&quot;color: #17365d; line-height: 115%; text-indent: -0.25in;&quot;&gt;$1&lt;/b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;: Full path to the
installation package the Installer application is processing. For example: /Volumes/Users/Vikrams/Desktop/TestPkg.pkg&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b style=&quot;color: #17365d; line-height: 115%; text-indent: -0.25in;&quot;&gt;$2&lt;/b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;: Full path to the
installation destination. For example: /Applications&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b style=&quot;color: #17365d; line-height: 115%; text-indent: -0.25in;&quot;&gt;$3&lt;/b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;: Installation volume
(or mount point) to receive the payload. For example: /Volumes/Tools&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b style=&quot;color: #17365d; line-height: 115%; text-indent: -0.25in;&quot;&gt;$4&lt;/b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;: The root directory
for the system: /&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b style=&quot;color: #17365d; line-height: 115%; text-indent: -0.25in;&quot;&gt;$SCRIPT_NAME&lt;/b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;: Filename
of the operation executable. For example: preflight&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b style=&quot;color: #17365d; line-height: 115%; text-indent: -0.25in;&quot;&gt;$PACKAGE_PATH&lt;/b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;: Full path
to the installation package. Same as $1.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b style=&quot;color: #17365d; line-height: 115%; text-indent: -0.25in;&quot;&gt;$INSTALLER_TEMP&lt;/b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;: Scratch
directory used by Installer to place its temporary work files. Install operations
may use this area for their temporary work, too, but must not overwrite any
Installer files. The Installer application erases this directory at the end of
the install. For example: /private/tmp/.vikrams.pkg.234.install&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Your script must return 0 on success and any other number to denote failure. The name of the scripts must be “&lt;b&gt;preinstall&lt;/b&gt;” and “&lt;b&gt;postinstall&lt;/b&gt;”. You can see some sample scripts below-&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
--------------------------------------------------------------&lt;br /&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
#!/bin/sh&lt;br /&gt;
#This is a sample preinstall or postinstall script.&lt;br /&gt;
#Your logic goes here.&lt;br /&gt;

if [ your_logic_returns_false ]&lt;br /&gt;
then&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit -1&lt;br /&gt;
fi&lt;br /&gt;
exit 0&lt;br /&gt;
--------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Lines starting with # are comments. First line&amp;nbsp;&lt;b&gt;#!/bin/sh&lt;/b&gt;&amp;nbsp;is called “&lt;b&gt;Shebang&lt;/b&gt;” and denotes that it is a shell script. Any return value other than 0 denotes failure. If you return anything other than 0, your installation will stop with a failure message.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; font-size: large; line-height: 115%;&quot;&gt;&lt;b&gt;Scripting Quickies&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Let’s discuss about some common and some complex scenarios where a lot of people can get stuck:&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;I have some resources
which need to be accessible from the preinstall and postinstall scripts.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: #17365d; text-indent: -24px;&quot;&gt;&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #17365d; text-indent: -24px;&quot;&gt;In older style packages (bundles), since the path inside the package was accessible, we kept the resources in the resources directory and had access to them using&amp;nbsp;&lt;b&gt;PACKAGE_PATH/Contents/Resources/&amp;nbsp;&lt;/b&gt;path.&lt;/span&gt;&amp;nbsp;In case of flat packages, the installer extracts the scripts directory to some
temporary directory while running. So, we can keep any resource with the
scripts while packaging and when the installer is run, these resources will be
present in the same directory from where the scripts are run. In this way, we can
access any resource from preinstall and postinstall scripts.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;How can I perform
installation requirements check?&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 21px; text-indent: -24px;&quot;&gt;Bundle packages supported installation check using InstallationCheck script. However, flat packages no longer support InstallationCheck script. In flat packages, this installation check phase has moved to the Distribution file. You can write Javascript functions and assign them to be called during installation-check phase. Your distribution file should contain&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;&amp;lt;installation-check script=”your_function()” /&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;and if your function returns false, the installation will not proceed.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;Can I perform
installation requirements check for component packages?&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;No, you must use a
Distribution package if you intend to perform InstallationCheck or VolumeCheck.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Apart from preinstall and postinstall
scripts, a lot of functionality goes in the Distribution script. I will cover
all the aspects of a typical Distribution file in the next post.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/5275649950112466993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2012/07/scripting-in-installer-packages.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5275649950112466993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5275649950112466993'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2012/07/scripting-in-installer-packages.html' title='Scripting in Installer Packages'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-5461532192053418732</id><published>2012-06-07T10:00:00.000-07:00</published><updated>2013-01-29T08:05:25.177-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="command"/><category scheme="http://www.blogger.com/atom/ns#" term="command-line"/><category scheme="http://www.blogger.com/atom/ns#" term="gui"/><category scheme="http://www.blogger.com/atom/ns#" term="Packagemaker"/><category scheme="http://www.blogger.com/atom/ns#" term="prductbuild"/><title type='text'>Creating Packages for Mac</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;So, our great application is now ready
for deployment after all the hard work that has gone in development and
testing. But how are we going to distribute our applications to all the users
in the world? Well, you need not worry, you can package your application and
these packages can be deployed on any Mac systems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Creating packages is an easy and
standard way to distribute your applications for Mac. Along with ease, you get
a lot of options through which you can carry out a full-fledged installation
including requirements check, pre-install and post-install actions. So, even if
you need a complex environment for your application to run like changing
permission or whatever, packages can still do it for you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Let’s move on to how to create
packages. Again, you have got many options: Do it using GUI mode of
PackageMaker or use its command-line mode or use the productbuild command to
create the packages. It’s all up to you what you end up using. However, all of
the above mentioned methods have their pros and cons. We will go through them
one by one:&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; font-size: 14pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;PackageMaker GUI mode:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Well, it’s a no-brainer. If you follow
the on-screen messages, you will know what options to use for what purpose and
you will end up with a decent package ready for distribution. In case you need
more detailed steps:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Launch the PackageMaker
application.&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ0IyxKmMa6-ONkYZmCpaKsSJrrPntBhut4icFyh0W7VMkzO6bjGJPb7tbhyM-8BX-dkZqBtz-MoLXokPA1ADmJuDOsYPHRvDLPY9kPttnzGH_Ly0m8Qfq3auE0WMNMkQ52gWSrBiXJV5P/s1600/Screen+Shot+2012-06-05+at+5.28.50+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ0IyxKmMa6-ONkYZmCpaKsSJrrPntBhut4icFyh0W7VMkzO6bjGJPb7tbhyM-8BX-dkZqBtz-MoLXokPA1ADmJuDOsYPHRvDLPY9kPttnzGH_Ly0m8Qfq3auE0WMNMkQ52gWSrBiXJV5P/s320/Screen+Shot+2012-06-05+at+5.28.50+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;It will ask you which
version of OS you are targeting and an identifier for your package. Select the
minimum version which you have to support. If you select 10.4, bundle packages
will be created since 10.4 does not support flat packages.&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFZwwvpW8jDtd6criY3KBYrZcM2fVEiCIEAWN_RAdYeRzy7Eag8bomJcX8wqRWYorLN4xrFmIQ3tHAa5uy3QjARS_V3HsnPa8clf6x2N-e9hvApauzsvKCSZLZHXtiSHBhiHRuCX3aCOS2/s1600/Screen+Shot+2012-06-05+at+5.29.00+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFZwwvpW8jDtd6criY3KBYrZcM2fVEiCIEAWN_RAdYeRzy7Eag8bomJcX8wqRWYorLN4xrFmIQ3tHAa5uy3QjARS_V3HsnPa8clf6x2N-e9hvApauzsvKCSZLZHXtiSHBhiHRuCX3aCOS2/s320/Screen+Shot+2012-06-05+at+5.29.00+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmk1QD4qNgZU7NiSIXMRX1CR0MWPQMXTVybUh0lh25olJtRMfADGtx8oO8MimKBR9MG0OxfY2_MWpB5wEG6IwDP6cFabfGvUGmrkpW7YUAgXaJbs7q0Tz7xqVRM4qQBGBXfUVgcDH5oY-E/s1600/Screen+Shot+2012-06-05+at+5.29.24+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmk1QD4qNgZU7NiSIXMRX1CR0MWPQMXTVybUh0lh25olJtRMfADGtx8oO8MimKBR9MG0OxfY2_MWpB5wEG6IwDP6cFabfGvUGmrkpW7YUAgXaJbs7q0Tz7xqVRM4qQBGBXfUVgcDH5oY-E/s320/Screen+Shot+2012-06-05+at+5.29.24+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibiN1yFnXw-39Jwa5cZIYS9RqGzyFrXx1hGM6CFZbpQYxzpDO2IBOHKblpp7VKdJEnNgQTNtnDY8AbqzXoE6NmDBWHQnb0g5KVztb9Ndv_5agFAx-CBzNu4P-iZFI2cmprYxhE5LIV9Emw/s1600/Screen+Shot+2012-06-05+at+5.29.33+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibiN1yFnXw-39Jwa5cZIYS9RqGzyFrXx1hGM6CFZbpQYxzpDO2IBOHKblpp7VKdJEnNgQTNtnDY8AbqzXoE6NmDBWHQnb0g5KVztb9Ndv_5agFAx-CBzNu4P-iZFI2cmprYxhE5LIV9Emw/s320/Screen+Shot+2012-06-05+at+5.29.33+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;You can use the options provided in the 3 tabs:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;&lt;b&gt;Configuration&lt;/b&gt;: Allows you to set general properties of components like title, identifier, whether you require restart after installation, etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;&lt;b&gt;Requirements&lt;/b&gt;: Allows you to set the requirements which must be met before your package can be installed on the system. See the screenshot below.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;&lt;b&gt;Actions&lt;/b&gt;: Allows you to add your own scripts- preinstall and postinstall which will be run before and after your payload is dumped in the system.&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXNavWrBQFZsUYX7a1xf9QjdnLkDKk7wk_d_JG-gFY2opcMxI8pleVG2YCD4kez44ZQ-K-yCyi_ORx82EH3bUE9HFRS0vHqt8ouQo49cYauNAZ8fUbfKFCgzHi59FOoONT2_yY3kW-AFME/s1600/Screen+Shot+2012-06-05+at+5.30.01+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXNavWrBQFZsUYX7a1xf9QjdnLkDKk7wk_d_JG-gFY2opcMxI8pleVG2YCD4kez44ZQ-K-yCyi_ORx82EH3bUE9HFRS0vHqt8ouQo49cYauNAZ8fUbfKFCgzHi59FOoONT2_yY3kW-AFME/s320/Screen+Shot+2012-06-05+at+5.30.01+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;Drag and drop the components to be installed to the left-side pane. You can add different sub-components as choices. Choices provide a lot of flexibility to your package. For example, if you have some optional sub-packages, the user will be able to choose whether to install that package or not.&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuyfkW8shWmlVXCTQb8sdBKZ4uiseusO6XtfNz-K7FpG-LYwtl1yG-bAiDNouHF7jrXydXs7xWUScyyW6x7JTipb3PnlXcixIP3O3baEqJsAOYu4qOgiD3XJzDw8s2fRxihl_FHdinxeaK/s1600/Screen+Shot+2012-06-05+at+5.30.07+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuyfkW8shWmlVXCTQb8sdBKZ4uiseusO6XtfNz-K7FpG-LYwtl1yG-bAiDNouHF7jrXydXs7xWUScyyW6x7JTipb3PnlXcixIP3O3baEqJsAOYu4qOgiD3XJzDw8s2fRxihl_FHdinxeaK/s320/Screen+Shot+2012-06-05+at+5.30.07+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;You can select properties of individual components as well. If you want to allow relocation of your .app files or to allow downgrade of packages, select the corresponding checkbox.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;Relocation allows you to replace the .app file in-place if the application is already installed on your system.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-align: center; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;Downgrade allows you to install older versions on top of newer versions.&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyhZa0bWWvBtLyAqBtK-cELNYbhw9LDVYD7L54uy-EFk3-zk4fFww5Vv301NrRf-Jl5b9jiOv34LBbhGyfRmMIFAaNNHPbE7JXeJjro3v02z2yBiZkeoi6vqT5ahjcTysPz_AoDj-IfNdh/s1600/Screen+Shot+2012-06-05+at+5.30.14+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-indent: -0.25in;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyhZa0bWWvBtLyAqBtK-cELNYbhw9LDVYD7L54uy-EFk3-zk4fFww5Vv301NrRf-Jl5b9jiOv34LBbhGyfRmMIFAaNNHPbE7JXeJjro3v02z2yBiZkeoi6vqT5ahjcTysPz_AoDj-IfNdh/s320/Screen+Shot+2012-06-05+at+5.30.14+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;And then you have got options to modify the background image of the installer and add the required resource files like License, Read Me, etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;You can add localization and provide localized resources as well if required.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;And that’s it. Build the package and you have your Mac Installer ready for distribution.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 1.5in; mso-add-space: auto; mso-list: l2 level2 lfo1; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;PackageMaker command-line mode:&lt;/span&gt;&lt;span style=&quot;font-size: 20pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;You can also achieve most of the
functionality provided by GUI mode from the command-line mode of PackageMaker.
If you have to create packages very frequently or for large number of products,
then it’s a good idea to automate that process. You can use the command-line
mode of packagemaker for all you automated package creation. See &lt;a href=&quot;http://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/10.6/man1/packagemaker.1.html&quot;&gt;manual page for Packagemaker&lt;/a&gt;&amp;nbsp;for details on various options available.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;However, there are several issues in
command-line version of Packagemaker. I have given solution to some of the common
problems you may face. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;b&gt;Problems and Solutions:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;I have bundle packages.
Will they work on MacOS 10.8 (Mountain Lion)?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;Mountain Lion introduces
“Gatekeeper” which allows only signed apps to run on the system. We CAN NOT
sign bundle packages and hence if the Gatekeeper is turned ON, bundle packages
will not install on 10.8 if they have been download via web. However, if these
packages have not been downloaded via web or the Gatekeeper is turned OFF, then
bundle packages will install as expected.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;Why is the Finder not
showing the version of the flat packages?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;Finder gets the version
information of an archive from the info.plist file present inside the archive.
So, in old-style bundle packages, we were able to see the version of the
package in the Finder. However, flat packages behave as files. They do not behave
like an archive. So, Finder will not be able to show the version.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;I am not able to sign my
packages using packagemaker. Why?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;It is possibly a bug with packagemaker. Packages signed using packagemaker don’t work. You can use “productsign” command-line tool to sign your packages. See&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/productsign.1.html&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;manual page for productsign&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;
&lt;span style=&quot;color: #17365d; line-height: 18px;&quot;&gt;for more information.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #990000;&quot;&gt;I am creating a distribution package from command-line. I am providing localized license files to --resources flag but when I run the package, I don’t get the License page during installation. Why?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;Again, it is possibly a bug with packagemaker. It does not include the license file information in the Distribution file of the created package. Open your package using Flat Package Editor and check if the Distribution file has the attribute &amp;lt;license file=“License.rtf”/&amp;gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;You can fix this issue in your package even without rebuilding the package.&lt;/span&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;Follow the instructions below:&lt;/span&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;line-height: 18px; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Expand the package using pkgutil command.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #990000;&quot;&gt;pkgutil&amp;nbsp;&amp;nbsp; --expand&amp;nbsp;&amp;nbsp; ABC.pkg&amp;nbsp;&amp;nbsp; ABC_expanded.pkg&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; text-indent: -0.25in;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Open the ABC_expanded.pkg using Show Package Contents.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; text-indent: -0.25in;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Open the Distribution file and add this line at same hierarchy level as &amp;lt;title&amp;gt; &amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #990000; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;license file=&quot;License.rtf&quot;/&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; text-indent: -0.25in;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: black; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Save and close the file. Make sure the resources directory is present and contains the necessary resources (License files in this case).&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; text-indent: -0.25in;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: black; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Flatten the package using pkgutil.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #990000; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pkgutil&amp;nbsp;&amp;nbsp; --flatten&amp;nbsp;&amp;nbsp; ABC_expanded.pkg&amp;nbsp;&amp;nbsp; FinalPkg.pkg&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; text-indent: -0.25in;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; text-indent: -0.25in;&quot;&gt;Run the FinalPkg.pkg and it should show the License files.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #17365d;&quot;&gt;Alternatively, check “productbuild” command. If you use this command, you can specify your own Distribution.dist file while creating the package.&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;Check&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/productbuild.1.html&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;manual page for productbuild&lt;/a&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;&amp;nbsp;for more information.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;How can&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; line-height: 18px; text-indent: -24px;&quot;&gt;&amp;nbsp;I check if my installer is signed?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 18px;&quot;&gt;&lt;span style=&quot;text-indent: -24px;&quot;&gt;&lt;span style=&quot;color: #17365d;&quot;&gt;Use&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -24px;&quot;&gt;&lt;span style=&quot;color: #990000; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;pkgutil&amp;nbsp;&amp;nbsp; --check-signature&amp;nbsp;&amp;nbsp; pkg-path&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 2.0in; mso-add-space: auto;&quot;&gt;
&lt;div style=&quot;text-indent: -24px;&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-indent: -24px;&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Productbuild command:&lt;/span&gt;&lt;span style=&quot;font-size: 20pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;You can also build packages using
productbuild. This command provides you many different options to create a
package than those in packagemaker. However, you can only create flat packages
using this. It has three different modes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;·&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;You can create a product
archive for your application bundles.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.5in; mso-add-space: auto; mso-list: l3 level2 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;productbuild &amp;nbsp;&amp;nbsp;&amp;nbsp;[--product definition-plist] &amp;nbsp;&amp;nbsp;&amp;nbsp;{--component component-path [install-path]}&amp;nbsp; &amp;nbsp;product-output-path&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.5in; mso-add-space: auto;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;·&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;Create a product archive
using a distribution file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.5in; mso-add-space: auto; mso-list: l3 level2 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;productbuild &amp;nbsp;&amp;nbsp;&amp;nbsp;[options]&amp;nbsp;&amp;nbsp;
&amp;nbsp;--distribution &amp;nbsp;&amp;nbsp;&amp;nbsp;dist-path&amp;nbsp;&amp;nbsp;
&amp;nbsp;[--package-path&amp;nbsp;&amp;nbsp; &amp;nbsp;search-path]&amp;nbsp;&amp;nbsp; &amp;nbsp;product-output-path
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.5in; mso-add-space: auto;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level1 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;·&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;Synthesize a
distribution for one or more component packages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 1.5in; mso-add-space: auto; mso-list: l3 level2 lfo4; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;o&lt;span style=&quot;line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;productbuild &amp;nbsp;&amp;nbsp;&amp;nbsp;--synthesize &amp;nbsp;&amp;nbsp;&amp;nbsp;[--product&amp;nbsp;
&amp;nbsp;definition-plist]&amp;nbsp;&amp;nbsp; &amp;nbsp;{--package&amp;nbsp;&amp;nbsp; &amp;nbsp;pkg-path}&amp;nbsp;&amp;nbsp; &amp;nbsp;distribution-output-path&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #17365d; font-family: Arial, Helvetica, sans-serif; line-height: 115%;&quot;&gt;&amp;nbsp;For more details about this command, see
&lt;a href=&quot;https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/productbuild.1.html&quot;&gt;manual page for productbuild&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-indent: 12.0pt;&quot;&gt;
&lt;span style=&quot;color: #17365d; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;So,
this was a little explanation about packaging in Mac. There are a lot of
details which have not been covered here. However, I will try to post more
articles about this. For now, Adiós!&lt;/span&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/5461532192053418732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2012/06/creating-packages-for-mac.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5461532192053418732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/5461532192053418732'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2012/06/creating-packages-for-mac.html' title='Creating Packages for Mac'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ0IyxKmMa6-ONkYZmCpaKsSJrrPntBhut4icFyh0W7VMkzO6bjGJPb7tbhyM-8BX-dkZqBtz-MoLXokPA1ADmJuDOsYPHRvDLPY9kPttnzGH_Ly0m8Qfq3auE0WMNMkQ52gWSrBiXJV5P/s72-c/Screen+Shot+2012-06-05+at+5.28.50+PM.png" height="72" width="72"/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2831440541785741913.post-8288718873147582439</id><published>2012-03-06T09:49:00.002-08:00</published><updated>2013-01-29T08:05:51.743-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="introduction"/><category scheme="http://www.blogger.com/atom/ns#" term="packagemaker 3"/><title type='text'>Packagemaker 3: An Introduction</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;Packagemaker 3 - An Introduction&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Packagemaker is Apple&#39;s official packaging tool which is used for packaging the applications before distributing them. It is part of XCode developer software suite. Earlier, it was installed as part of XCode installation, however, with the release of XCode 4.3, it is a part of separate package (Auxiliary Tools for XCode) which has to be downloaded separately. You need an Apple Id to download these tools.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;At the time of writing, the latest Packagemaker version is 3.0.5. This version offers great improvements over the previous versions in terms of GUI mode of creating the installers. Talking about the GUI mode, most of the things are self-explanatory, so it is pretty easy to end up with a decent, working installer. However, if you are planning to use the command line mode for creating the installers, it is highly likely that you are going to have some trouble as the documentation is just not good enough.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Before moving on, lets have a look at the supported package formats-&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are two types of packages- Bundles and Flat Packages.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Bundle vs Flat Package&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Bundle contains data in a hierarchical manner. You can &amp;nbsp;do RightClick --&amp;gt; Show Package Contents and browse through all the items present inside as if they were part of some folder structure and modify it. For some, it was good to be able to see what is inside the package, tweak it according to their will and requirements and then use it. However, for others, it was a security issue because users had the ability to modify the contents of the packages.&lt;br /&gt;So Apple came up with concept of Flat packages. These packages behave as files instead of folders. With these, you cannot browse through the contents easily though it is possible if you are curious enough to peek inside the package.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;If your application distribution target is MacOS 10.5 and above, PM3 will create flat packages. For MacOS 10.4 and below, PM3 also supports Backwards-Compatibility mode that creates older packages(Bundles).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Here, we will be talking more about the flat packages, though we will be pointing out the significant differences from the Bundles if any.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Want to peek inside a flat package?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;There are some tools available for opening/modifying flat packages as well. If you want to see inside the package, open it using &lt;b&gt;Flat Package Editor.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;This tool allows you to see the basic structure of the package which in most cases will be one of the following-&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZeNQohOwOxF9nAtBdST1Fuijb_taJNwANmw2Hou2WuvElQdwXmwp4RvOp2GtIoMYia9xL9aadV80l4AWikgC-SboKnzxRH2SXelD0o02FA2z4Sxjf6yS2OausObEPN2Y3X5tvoQtdALYI/s1600/Capture1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZeNQohOwOxF9nAtBdST1Fuijb_taJNwANmw2Hou2WuvElQdwXmwp4RvOp2GtIoMYia9xL9aadV80l4AWikgC-SboKnzxRH2SXelD0o02FA2z4Sxjf6yS2OausObEPN2Y3X5tvoQtdALYI/s320/Capture1.JPG&quot; width=&quot;298&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Component Package&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgThogRFF5D2rNDKpJiv6v-Z9XZ2rSLto0kLdZIGY1LcTd3TExlSD3VsGCFMi5PwyKIrgxf43HHRhj0aAbK_VkriVz8LN57AuKFFdMySOd2UsAEKW39pNPPUwPsILrqmShKRtqCD-3Cxhv9/s1600/Capture2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgThogRFF5D2rNDKpJiv6v-Z9XZ2rSLto0kLdZIGY1LcTd3TExlSD3VsGCFMi5PwyKIrgxf43HHRhj0aAbK_VkriVz8LN57AuKFFdMySOd2UsAEKW39pNPPUwPsILrqmShKRtqCD-3Cxhv9/s320/Capture2.JPG&quot; width=&quot;275&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh621eEnEHQ9pj9s5piGfwzVbnG5PTavFWSdBrpIc9wmxETTiVkTgtvcix70lrj1_-ZaddFAhySmROYDH-HkBd2YPz_iHFmlWsem2e12ikQ5QGi3Zyn2joGRP3U3PRnA73MDbpxMf80R6gW/s1600/Capture3.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh621eEnEHQ9pj9s5piGfwzVbnG5PTavFWSdBrpIc9wmxETTiVkTgtvcix70lrj1_-ZaddFAhySmROYDH-HkBd2YPz_iHFmlWsem2e12ikQ5QGi3Zyn2joGRP3U3PRnA73MDbpxMf80R6gW/s320/Capture3.JPG&quot; width=&quot;248&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Distribution Package(Left) and Component Package(Right)&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;After getting the above information, some of you won&#39;t be satisfied as it just shows the high level structure and doesn&#39;t allow to see what is inside the Payload or Scripts.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;So, what next!.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Is it not possible to see the contents of the flat package?&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Well! Everything is possible in this world if you are curious enough to know and do it.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Let&#39;s take a look at a command-line tool - &lt;b&gt;pkgutil.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;We can use this utility to perform a number of operations in our packages. I will be mentioning only some of the operations here. You can get more detailed information at the man pages of pkgutil.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;For those of you who were dying to see the contents of the flat package, we can expand the flat package using pkgutil.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;pkgutil &amp;nbsp; &amp;nbsp; --expand &amp;nbsp; &amp;nbsp; FlatPackage.pkg &amp;nbsp; &amp;nbsp; NewPackage.pkg&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Now, newly created package is older-style package which we can browse through by doing RightClick --&amp;gt; Show Package Contents. After going inside, double click the Payload file to extract the contents! So finally you got what you were looking for. Here you can modify files at your will.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;But will the package work after we modify the files?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Yes! As far as we don&#39;t change the basic structure of the package.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Suppose we modified some script inside the Scripts directory to bypass some settings that were not allowing installation in my machine. Now we have to flatten the package again. Use&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;pkgutil &amp;nbsp; &amp;nbsp;--flatten &amp;nbsp; &amp;nbsp;OlderStylePkg.pkg &amp;nbsp; &amp;nbsp;NewFlatPackage.pkg&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;And you get your modified package back in flat format ready for installation.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Types of Flat Packages:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;So in the images above, you see two different types of packages. One contains only compressed files inside while the other one contains packages inside as well.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;So what&#39;s the difference between the two?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;The one with only compressed files inside is &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;Component Package&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;. Their primary purpose is to dump the payload in the system where they are installed and of course perform the preinstall and postinstall actions.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Well, you must be wondering that this is exactly what a package is supposed to do when installed. So what is it that &amp;nbsp;they can not do during the installation?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;They can&#39;t show any License, ReadMe, etc to the user. They cannot perform InstallationCheck as well.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;If we want to show all these things to the user before installation, we use &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Distribution Package&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&amp;nbsp;for this purpose. Distribution Packages contain the component packages to be installed, a Distribution file that has the information about the location and name of license files, background images and javascript functions for InstallationCheck actions. It also contains the ususal Resources directory that contains required localization directories which then contain the localized resources (License, background image, etc).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;When you will build the package using GUI mode, you will notice that whenever you try to add license, background, etc or InstallationCheck actions to your package, the type of your package changes to Distribution.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Conclusion:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;This was a little introduction about the Packagemaker 3, package format and types and about some useful tools to interact with those packages.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;With PM3, building a package using its GUI is fairly simple, however, for people who need to create packages everyday and use some sort of automation for creating packages, its command line mode can be of great help. I will be talking about command line mode for building packages in my next post.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Adios!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Links to External Resources:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Apple&#39;s User Guide:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/PackageMakerUserGuide/Introduction/Introduction.html&quot;&gt;https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/PackageMakerUserGuide/Introduction/Introduction.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;More about Flat Package format:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html&quot;&gt;http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #351c75; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Many good articles at:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mactech.com/search/google?cx=014498448673098268608%3Atxq2lx97m8a&amp;amp;cof=FORID%3A11&amp;amp;query=packagemaker&amp;amp;sa.x=0&amp;amp;sa.y=0&amp;amp;sa=Search&amp;amp;ie=utf-8&amp;amp;safe=high&amp;amp;form_build_id=form-afede056da65b0af051f2b2cba08c3d4&amp;amp;form_id=google_cse_searchbox_form&quot;&gt;http://www.mactech.com/search/google?cx=014498448673098268608%3Atxq2lx97m8a&amp;amp;cof=FORID%3A11&amp;amp;query=packagemaker&amp;amp;sa.x=0&amp;amp;sa.y=0&amp;amp;sa=Search&amp;amp;ie=utf-8&amp;amp;safe=high&amp;amp;form_build_id=form-afede056da65b0af051f2b2cba08c3d4&amp;amp;form_id=google_cse_searchbox_form&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://macinstallers.blogspot.com/feeds/8288718873147582439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://macinstallers.blogspot.com/2012/03/packagemaker-3-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/8288718873147582439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2831440541785741913/posts/default/8288718873147582439'/><link rel='alternate' type='text/html' href='http://macinstallers.blogspot.com/2012/03/packagemaker-3-introduction.html' title='Packagemaker 3: An Introduction'/><author><name>Vikrams</name><uri>http://www.blogger.com/profile/06858040861591199868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZeNQohOwOxF9nAtBdST1Fuijb_taJNwANmw2Hou2WuvElQdwXmwp4RvOp2GtIoMYia9xL9aadV80l4AWikgC-SboKnzxRH2SXelD0o02FA2z4Sxjf6yS2OausObEPN2Y3X5tvoQtdALYI/s72-c/Capture1.JPG" height="72" width="72"/><thr:total>0</thr:total></entry></feed>