This file is indexed.

/usr/share/qt5/doc/qtdoc/osx-deployment.html is in qt5-doc-html 5.5.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- osx.qdoc -->
  <title>Qt for OS X - Deployment | Qt 5.5 </title>
  <link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
    <div class="main">
    <div class="main-rounded">
        <div class="navigationbar">
        <ul>
<li><a href="index.html">Qt 5.5</a></li>
<li>Qt for OS X - Deployment</li>
<li id="buildversion">Qt 5.5.1 Reference Documentation</li>
    </ul>
    </div>
</div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#the-bundle">The Bundle</a></li>
<li class="level1"><a href="#static-linking">Static Linking</a></li>
<li class="level2"><a href="#building-qt-statically">Building Qt Statically</a></li>
<li class="level2"><a href="#linking-the-application-to-the-static-version-of-qt">Linking the Application to the Static Version of Qt</a></li>
<li class="level1"><a href="#frameworks">Frameworks</a></li>
<li class="level2"><a href="#building-qt-as-frameworks">Building Qt as Frameworks</a></li>
<li class="level2"><a href="#linking-the-application-to-qt-as-frameworks">Linking the Application to Qt as Frameworks</a></li>
<li class="level2"><a href="#creating-the-application-package">Creating the Application Package</a></li>
<li class="level1"><a href="#application-dependencies">Application Dependencies</a></li>
<li class="level2"><a href="#qt-plugins">Qt Plugins</a></li>
<li class="level2"><a href="#additional-libraries">Additional Libraries</a></li>
<li class="level2"><a href="#os-x-version-dependencies">OS X Version Dependencies</a></li>
<li class="level1"><a href="#the-mac-deployment-tool">The Mac Deployment Tool</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Qt for OS X - Deployment</h1>
<span class="subtitle"></span>
<!-- $$$osx-deployment.html-description -->
<div class="descr"> <a name="details"></a>
<p>This document describes how to create a <a href="osx.html">OS X</a> bundle and make sure that the application finds the resources it needs at run-time. We demonstrate the procedures in terms of deploying the <a href="../qtwidgets/qtwidgets-tools-plugandpaint-example.html">Plug &amp; Paint</a> example application that comes with the Qt installation package.</p>
<p>The Qt installers for OS X include a <a href="osx-deployment.html#macdeploy">deployment tool</a> that automates the procedures described here.</p>
<a name="the-bundle"></a>
<h2 id="the-bundle">The Bundle</h2>
<p>On OS X, a GUI application must be built and run from a bundle, which is a directory structure that appears as a single entity when viewed in the Finder. A bundle for an application typically contains the executable and all the resources it needs. Here is the snapshot of an application bundle structure:</p>
<p class="centerAlign"><img src="images/deployment-mac-bundlestructure.png" alt="" /></p><p>The bundle provides many advantages to the user:</p>
<ul>
<li>It is easily installable as it is identified as a single entity.</li>
<li>Information about a bundle is accessible from code.</li>
</ul>
<p>This is specific to OS X and beyond the scope of this document. For more information about bundles, see <a href="http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles/index.html">Apple's Developer Website</a>.</p>
<p><code>qmake</code> automatically generates a bundle for your application. To disable this, add the following statement to your application's project file (<code>.pro</code>):</p>
<pre class="cpp">CONFIG-=app_bundle</pre>
<a name="static-linking"></a>
<h2 id="static-linking">Static Linking</h2>
<p>If you want to keep things simple and have a few files to deploy, you must build your application with statically linked libraries.</p>
<a name="building-qt-statically"></a>
<h3 >Building Qt Statically</h3>
<p>Start by installing a static version of the Qt library. Remember that you cannot use plugins and that you must build the dependent libraries such as image formats, SQL drivers, and so on with static linking.</p>
<pre class="cpp">cd <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span>
<span class="operator">.</span><span class="operator">/</span>configure <span class="operator">-</span><span class="keyword">static</span> <span class="operator">&lt;</span>other parameters<span class="operator">&gt;</span>
make sub<span class="operator">-</span>src</pre>
<p>You can check the various options that are available by running <code>configure</code> -help.</p>
<a name="linking-the-application-to-the-static-version-of-qt"></a>
<h3 >Linking the Application to the Static Version of Qt</h3>
<p>Once Qt is built statically, the next step is to regenerate the makefile and rebuild the application. First, we must go into the directory that contains the application:</p>
<pre class="cpp">cd <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>examples<span class="operator">/</span>tools<span class="operator">/</span>plugandpaint</pre>
<p>Now run <code>qmake</code> to create a new makefile for the application, and do a clean build to create the statically linked executable:</p>
<pre class="cpp">make clean
qmake <span class="operator">-</span>config release
make</pre>
<p>You probably want to link against the release libraries, and you can specify this when invoking <code>qmake</code>. If you have Xcode Tools 1.5 or higher installed, you may want to take advantage of &quot;dead code stripping&quot; to reduce the size of your binary even more. You can do this by passing <code>LIBS+= -dead_strip</code> to <code>qmake</code> in addition to the <code>-config release</code> parameter.</p>
<p>Now, provided that everything compiled and linked without any errors, we should have a <code>plugandpaint.app</code> bundle ready for deployment. Try installing the bundle on a machine running OS X that does not have Qt or any Qt applications installed.</p>
<p>You can check what other libraries your application links to using the <code>otool</code>:</p>
<pre class="cpp">otool <span class="operator">-</span>L plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>MacOs<span class="operator">/</span>plugandpaint</pre>
<p>Here is what the output looks like for the statically linked <a href="../qtwidgets/qtwidgets-tools-plugandpaint-example.html">Plug &amp; Paint</a>:</p>
<pre class="cpp">plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>MacOS<span class="operator">/</span>plugandpaint:
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>Carbon<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>Carbon
        (compatibility version <span class="number">2.0.0</span><span class="operator">,</span> current version <span class="number">128.0.0</span>)
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>QuickTime<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>QuickTime
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">10.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libz<span class="operator">.</span><span class="number">1.dylib</span>
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">1.2.3</span>)
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>ApplicationServices<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>ApplicationServices
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">22.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libstdc<span class="operator">+</span><span class="operator">+</span><span class="operator">.</span><span class="number">6.dylib</span>
        (compatibility version <span class="number">7.0.0</span><span class="operator">,</span> current version <span class="number">7.3.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libgcc_s<span class="operator">.</span><span class="number">1.dylib</span>
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">1.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libmx<span class="operator">.</span>A<span class="operator">.</span>dylib
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">92.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libSystem<span class="operator">.</span>B<span class="operator">.</span>dylib
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">88.0.0</span>)</pre>
<p>If you see <i>Qt</i> libraries in the output, it probably means that you have both dynamic and static Qt libraries installed on your machine. The linker always chooses dynamic linking over static. If you want to use only static libraries, you can either:</p>
<ul>
<li>move your Qt dynamic libraries (<code>.dylibs</code>) away to another directory while you link the application and then move them back,</li>
<li>or edit the <code>Makefile</code> and replace link lines for the Qt libraries with the absolute path to the static libraries.</li>
</ul>
<p>For example, replace the following:</p>
<pre class="cpp"><span class="operator">-</span>lQtGui</pre>
<p>with this:</p>
<pre class="cpp"><span class="operator">/</span>where<span class="operator">/</span><span class="keyword">static</span><span class="operator">/</span>qt<span class="operator">/</span>lib<span class="operator">/</span>is<span class="operator">/</span>libQtGui<span class="operator">.</span>a</pre>
<p>The <a href="../qtwidgets/qtwidgets-tools-plugandpaint-example.html">Plug &amp; Paint</a> example consists of several components: The core application (<a href="../qtwidgets/qtwidgets-tools-plugandpaint-example.html">Plug &amp; Paint</a>), and the <a href="../qtwidgets/qtwidgets-tools-plugandpaintplugins-basictools-example.html">Basic Tools</a> and <a href="../qtwidgets/qtwidgets-tools-plugandpaintplugins-extrafilters-example.html">Extra Filters</a> plugins. As we cannot deploy plugins using the static linking approach, the bundle we have prepared so far is incomplete. The application will run, but the functionality will be disabled due to the missing plugins. To deploy plugin-based applications we should use the framework approach, which is specific to OS X.</p>
<a name="frameworks"></a>
<h2 id="frameworks">Frameworks</h2>
<p>In this approach, ensure that the Qt runtime is redistributed correctly with the application bundle, and that the plugins are installed in the correct location so that the application finds them.</p>
<p>There are two ways to distribute Qt with your application in the frameworks approach:</p>
<ul>
<li>Private framework within your application bundle.</li>
<li>Standard framework (alternatively use the Qt frameworks in the installed binary).</li>
</ul>
<p>The former is good if you have Qt built in a special way, or want to make sure the framework is there. It just comes down to where you place the Qt frameworks.</p>
<p>The latter option is good if you have many Qt applications and you want them use a single Qt framework rather than multiple versions of it.</p>
<a name="building-qt-as-frameworks"></a>
<h3 >Building Qt as Frameworks</h3>
<p>We assume that you already have installed Qt as frameworks, which is the default when installing Qt, in the /path/to/Qt directory. For more information on how to build Qt without Frameworks, visit the <a href="osx-issues.html">Qt for OS X - Specific Issues</a> documentation.</p>
<p>When installing, the identification name of the frameworks is set. This name is used by the dynamic linker (<code>dyld</code>) to find the libraries for your application.</p>
<a name="linking-the-application-to-qt-as-frameworks"></a>
<h3 >Linking the Application to Qt as Frameworks</h3>
<p>After building Qt as frameworks, we can build the <a href="../qtwidgets/qtwidgets-tools-plugandpaint-example.html">Plug &amp; Paint</a> application. First, we must go to the directory that contains the application:</p>
<pre class="cpp">cd <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>examples<span class="operator">/</span>tools<span class="operator">/</span>plugandpaint</pre>
<p>Run <code>qmake</code> to create a new makefile for the application, and do a clean build to create the dynamically linked executable:</p>
<pre class="cpp">make clean
qmake <span class="operator">-</span>config release
make</pre>
<p>This builds the core application. Use the following to build the plugins:</p>
<pre class="cpp">cd <span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>plugandpaintplugins
make clean
qmake <span class="operator">-</span>config release
make</pre>
<p>Now run the <code>otool</code> for the Qt frameworks, for example Qt Gui:</p>
<pre class="cpp">otool <span class="operator">-</span>L <span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span></pre>
<p>You would get the following output:</p>
<pre class="cpp"><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>:
<span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
        (compatibility version <span class="number">4.0.0</span><span class="operator">,</span> current version <span class="number">4.0.1</span>)
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>Carbon<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>Carbon
        (compatibility version <span class="number">2.0.0</span><span class="operator">,</span> current version <span class="number">128.0.0</span>)
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>QuickTime<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>QuickTime
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">10.0.0</span>)
<span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        (compatibility version <span class="number">4.0.0</span><span class="operator">,</span> current version <span class="number">4.0.1</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libz<span class="operator">.</span><span class="number">1.dylib</span>
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">1.2.3</span>)
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>ApplicationServices<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>ApplicationServices
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">22.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libstdc<span class="operator">+</span><span class="operator">+</span><span class="operator">.</span><span class="number">6.dylib</span>
        (compatibility version <span class="number">7.0.0</span><span class="operator">,</span> current version <span class="number">7.3.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libgcc_s<span class="operator">.</span><span class="number">1.dylib</span>
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">1.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libmx<span class="operator">.</span>A<span class="operator">.</span>dylib
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">92.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libSystem<span class="operator">.</span>B<span class="operator">.</span>dylib
        (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">88.0.0</span>)</pre>
<p>For the Qt frameworks, the first line (i.e&#x2e; <code>path/to/Qt/lib/QtGui.framework/Versions/4/QtGui (compatibility version 4.0&#x2e;0, current version 4.0&#x2e;1)</code>) becomes the framework's identification name which is used by the dynamic linker (<code>dyld</code>).</p>
<p>But when you are deploying the application, your users may not have the Qt frameworks installed in the specified location. For that reason, you must either provide the frameworks in an agreed location, or store the frameworks in the bundle. Regardless of which solution you choose, you must make sure that the frameworks return the proper identification name for themselves, and that the application looks for these names. Luckily we can control this with the <code>install_name_tool</code> command-line tool.</p>
<p>The <code>install_name_tool</code> works in two modes, <code>-id</code> and <code>-change</code>. The <code>-id</code> mode is for libraries and frameworks, and allows us to specify a new identification name. We use the <code>-change</code> mode to change the paths in the application.</p>
<p>Let's test this out by copying the Qt frameworks into the Plug &amp; Paint bundle. Looking at <code>otool</code>'s output for the bundle, we can see that we must copy both the <a href="../qtcore/qtcore-module.html">QtCore</a> and <a href="../qtgui/qtgui-module.html">QtGui</a> frameworks into the bundle. We will assume that we are in the directory where we built the bundle.</p>
<pre class="cpp">mkdir plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>Frameworks
cp <span class="operator">-</span>R <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework
        plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>Frameworks
cp <span class="operator">-</span>R <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework
       plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>Frameworks</pre>
<p>First we create a <code>Frameworks</code> directory inside the bundle. This follows the OS X application convention. We then copy the frameworks into the new directory. As frameworks contain symbolic links, we use the <code>-R</code> option.</p>
<pre class="cpp">install_name_tool <span class="operator">-</span>id @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
       plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
install_name_tool <span class="operator">-</span>id @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
       plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span></pre>
<p>Then we run <code>install_name_tool</code> to set the identification names for the frameworks. The first argument after <code>-id</code> is the new name, and the second argument is the framework that we want to rename. The text <code>@executable_path</code> is a special <code>dyld</code> variable telling <code>dyld</code> to start looking where the executable is located. The new names specifies that these frameworks are located in the directory directly under the <code>Frameworks</code> directory.</p>
<pre class="cpp">install_name_tool <span class="operator">-</span>change path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>MacOs<span class="operator">/</span>plugandpaint
install_name_tool <span class="operator">-</span>change path<span class="operator">/</span>to<span class="operator">/</span>qt<span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
        @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
        plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>MacOs<span class="operator">/</span>plugandpaint</pre>
<p>Now, the dynamic linker knows where to look for <a href="../qtcore/qtcore-module.html">QtCore</a> and <a href="../qtgui/qtgui-module.html">QtGui</a>. We must ensure that the application also knows where to find the library, using <code>install_name_tool</code>'s <code>-change</code> mode. This basically comes down to string replacement, to match the identification names that we set earlier to the frameworks.</p>
<p>Finally, the <a href="../qtgui/qtgui-module.html">QtGui</a> framework depends on <a href="../qtcore/qtcore-module.html">QtCore</a>, so we must remember to change the reference for <a href="../qtgui/qtgui-module.html">QtGui</a>:</p>
<pre class="cpp">install_name_tool <span class="operator">-</span>change path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span></pre>
<p>After this, we run <code>otool</code> again and see that the application can find the libraries.</p>
<p>The plugins for the <a href="../qtwidgets/qtwidgets-tools-plugandpaint-example.html">Plug &amp; Paint</a> example makes it interesting. The basic steps we need to follow with plugins are:</p>
<ul>
<li>put the plugins inside the bundle,</li>
<li>run the <code>install_name_tool</code> to check whether the plugins are using the correct library,</li>
<li>and ensure that the application knows where to look for the plugins.</li>
</ul>
<p>We can put the plugins anywhere we want in the bundle, but the best location is to put them under Contents/Plugins. When we built the Plug &amp; Paint plugins, based on the <code>DESTDIR</code> variable in their <code>.pro</code> file, the plugins' <code>.dylib</code> files are in the <code>plugins</code> subdirectory under the <code>plugandpaint</code> directory. We just have to move this directory to the correct location.</p>
<pre class="cpp">mv plugins plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents</pre>
<p>For example, If we run <code>otool</code> on the <a href="../qtwidgets/qtwidgets-tools-plugandpaintplugins-basictools-example.html">Basic Tools</a> plugin's <code>.dylib</code> file, we get the following information.</p>
<pre class="cpp">libpnp_basictools<span class="operator">.</span>dylib:
libpnp_basictools<span class="operator">.</span>dylib
       (compatibility version <span class="number">0.0.0</span><span class="operator">,</span> current version <span class="number">0.0.0</span>)
<span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
       (compatibility version <span class="number">4.0.0</span><span class="operator">,</span> current version <span class="number">4.0.1</span>)
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>Carbon<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>Carbon
       (compatibility version <span class="number">2.0.0</span><span class="operator">,</span> current version <span class="number">128.0.0</span>)
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>QuickTime<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>QuickTime
       (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">10.0.0</span>)
<span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
       (compatibility version <span class="number">4.0.0</span><span class="operator">,</span> current version <span class="number">4.0.1</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libz<span class="operator">.</span><span class="number">1.dylib</span>
       (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">1.2.3</span>)
<span class="operator">/</span>System<span class="operator">/</span>Library<span class="operator">/</span>Frameworks<span class="operator">/</span>ApplicationServices<span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span>A<span class="operator">/</span>ApplicationServices
       (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">22.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libstdc<span class="operator">+</span><span class="operator">+</span><span class="operator">.</span><span class="number">6.dylib</span>
       (compatibility version <span class="number">7.0.0</span><span class="operator">,</span> current version <span class="number">7.3.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libgcc_s<span class="operator">.</span><span class="number">1.dylib</span>
       (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">1.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libmx<span class="operator">.</span>A<span class="operator">.</span>dylib
       (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">92.0.0</span>)
<span class="operator">/</span>usr<span class="operator">/</span>lib<span class="operator">/</span>libSystem<span class="operator">.</span>B<span class="operator">.</span>dylib
       (compatibility version <span class="number">1.0.0</span><span class="operator">,</span> current version <span class="number">88.0.0</span>)</pre>
<p>Then we can see that the plugin links to the Qt frameworks it was built against. As we want the plugins to use the framework in the application bundle, we change them the same way as we did for the application. For example for the Basic Tools plugin:</p>
<pre class="cpp">install_name_tool <span class="operator">-</span>change <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>plugins<span class="operator">/</span>libpnp_basictools<span class="operator">.</span>dylib
install_name_tool <span class="operator">-</span>change <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
        @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
        plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>plugins<span class="operator">/</span>libpnp_basictools<span class="operator">.</span>dylib</pre>
<p>We must also modify the code in <code>tools/plugandpaint/mainwindow.cpp</code> to <a href="../qtcore/qdir.html#cdUp">cdUp()</a> to ensure that the application finds the plugins. Add the following code to the <code>mainwindow.cpp</code> file:</p>
<pre class="cpp"><span class="preprocessor">#elif defined(Q_OS_MAC)</span>
<span class="keyword">if</span> (pluginsDir<span class="operator">.</span>dirName() <span class="operator">=</span><span class="operator">=</span> <span class="string">&quot;MacOS&quot;</span>) {
    pluginsDir<span class="operator">.</span>cdUp();
}
<span class="preprocessor">#endif</span></pre>
<div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/deployment-mac-application.png" alt="" /></td><td >The additional code in <code>tools/plugandpaint/mainwindow.cpp</code> also enables us to view the plugins in the Finder, as shown in the image.<p>We can also add plugins extending Qt, for example adding SQL drivers or image formats. We just need to follow the directory structure outlined in plugin documentation, and make sure they are included in the <a href="../qtcore/qcoreapplication.html#libraryPaths">QCoreApplication::libraryPaths</a>(). Let's quickly do this with the image formats, following the procedure outlined earlier.</p>
<p>Copy Qt's image format plugins into the bundle:</p>
<pre class="cpp">cp <span class="operator">-</span>R <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>plugins<span class="operator">/</span>imageformats
        pluginandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>plugins</pre>
<p>Use <code>install_name_tool</code> to link the plugins to the frameworks in the bundle:</p>
<pre class="cpp">install_name_tool <span class="operator">-</span>change <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
        @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtgui/qtgui-module.html">QtGui</a></span>
        plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>plugins<span class="operator">/</span>imageformats<span class="operator">/</span>libqjpeg<span class="operator">.</span>dylib
install_name_tool <span class="operator">-</span>change <span class="operator">/</span>path<span class="operator">/</span>to<span class="operator">/</span><span class="type"><a href="../qtcore/qt.html">Qt</a></span><span class="operator">/</span>lib<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        @executable_path<span class="operator">/</span><span class="operator">.</span><span class="operator">.</span><span class="operator">/</span>Frameworks<span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span><span class="operator">.</span>framework<span class="operator">/</span>Versions<span class="operator">/</span><span class="number">4.0</span><span class="operator">/</span><span class="type"><a href="../qtcore/qtcore-module.html">QtCore</a></span>
        plugandpaint<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>plugins<span class="operator">/</span>imageformats<span class="operator">/</span>libqjpeg<span class="operator">.</span>dylib</pre>
<p>Update the source code in <code>tools/plugandpaint/main.cpp</code> to look for the new plugins. After constructing the <a href="../qtwidgets/qapplication.html">QApplication</a>, we add the following code:</p>
<pre class="cpp"><span class="type"><a href="../qtcore/qdir.html">QDir</a></span> dir(<span class="type"><a href="../qtwidgets/qapplication.html">QApplication</a></span><span class="operator">::</span>applicationDirPath());
dir<span class="operator">.</span>cdUp();
dir<span class="operator">.</span>cd(<span class="string">&quot;plugins&quot;</span>);
<span class="type"><a href="../qtwidgets/qapplication.html">QApplication</a></span><span class="operator">::</span>setLibraryPaths(<span class="type"><a href="../qtcore/qstringlist.html">QStringList</a></span>(dir<span class="operator">.</span>absolutePath()));</pre>
<p>First, we tell the application to only look for plugins in this directory. In our case, we want the application to look for only those plugins that we distribute with the bundle. If we were part of a bigger Qt installation we could have used <a href="../qtcore/qcoreapplication.html#addLibraryPath">QCoreApplication::addLibraryPath</a>() instead.</p>
</td></tr>
</table></div>
<p><b>Warning:</b> While deploying plugins, we make changes to the source code and that resets the default identification names when the application is rebuilt. So you must repeat the process of making your application link to the correct Qt frameworks in the bundle using <code>install_name_tool</code>.</p>
<p>Now you should be able to move the application to another OS X machine and run it without Qt installed. Alternatively, you can move your frameworks that live outside of the bundle to another directory and see if the application still runs.</p>
<p>If you store the frameworks in another location outside the bundle, the technique of linking your application is similar; you must make sure that the application and the frameworks agree where to be looking for the Qt libraries as well as the plugins.</p>
<a name="creating-the-application-package"></a>
<h3 >Creating the Application Package</h3>
<p>When you are done linking your application to Qt, either statically or as frameworks, the application is ready to be distributed. For more information, refer to the <a href="https://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/OSXWorkflowGuide/Introduction/Introduction.html">Tools Workflow Guide</a>.</p>
<p>Although the process of deploying an application do have some pitfalls, once you know the various issues you can easily create packages that all your OS X users will enjoy.</p>
<a name="application-dependencies"></a>
<h2 id="application-dependencies">Application Dependencies</h2>
<a name="qt-plugins"></a>
<h3 >Qt Plugins</h3>
<p>All Qt GUI applications require a plugin that implements the <a href="qpa.html">Qt Platform Abstraction</a> (QPA) layer in Qt 5. For OS X, the name of the platform plugin is <code>libqcocoa.dylib</code>. This file must be located within a specific subdirectory (by default, <code>platforms</code>) under your distribution directory. Alternatively, it is possible to adjust the search path Qt uses to find its plugins, as described below.</p>
<p>Your application may also depend on one or more Qt plugins, such as the JPEG image format plugin or a SQL driver plugin. Be sure to distribute any Qt plugins that you need with your application. Similar to the platform plugin, each type of plugin must be located within a specific subdirectory (such as <code>imageformats</code> or <code>sqldrivers</code>) in your distribution directory.</p>
<p>When deploying an application that uses Qt WebKit to display HTML pages from the World Wide Web, you must include all text codec plugins to support as many HTML encodings possible.</p>
<p>The search path for Qt plugins (as well as a few other paths) is hard-coded into the <a href="../qtcore/qtcore-module.html">QtCore</a> library. By default, the first plugin search path will be hard-coded as <code>/path/to/Qt/plugins</code>. But using pre-determined paths has certain disadvantages. For example, they may not exist on the target machine. So you must check various alternatives to ensure that the Qt plugins are found:</p>
<ul>
<li><a href="qt-conf.html">Using <code>qt.conf</code></a>. This is the recommended approach as it provides the most flexibility.</li>
<li>Using <a href="../qtcore/qcoreapplication.html#addLibraryPath">QApplication::addLibraryPath</a>() or <a href="../qtcore/qcoreapplication.html#setLibraryPaths">QApplication::setLibraryPaths</a>().</li>
<li>Using a third party installation utility to change the hard-coded paths in the <a href="../qtcore/qtcore-module.html">QtCore</a> library.</li>
</ul>
<p>The <a href="plugins-howto.html">How to Create Qt Plugins</a> document outlines the issues you need to pay attention to when building and deploying plugins for Qt applications.</p>
<a name="additional-libraries"></a>
<h3 >Additional Libraries</h3>
<p>You can check which libraries your application is linking against by using <code>otool</code>. Run this with the application path as an argument:</p>
<pre class="cpp">otool <span class="operator">-</span>L MyApp<span class="operator">.</span>app<span class="operator">/</span>Contents<span class="operator">/</span>MacOS<span class="operator">/</span>MyApp</pre>
<p>Compiler-specific libraries rarely have to be redistributed with your application. But there are several ways to deploy applications, as Qt can be configured, built, and installed in several ways on OS X. Typically your goals help determine how you are going to deploy the application. The last sections describe a few things that you must be aware of while deploying your application.</p>
<a name="os-x-version-dependencies"></a>
<h3 >OS X Version Dependencies</h3>
<p>Qt 5 applications can be built and deployed on OS X 10.6 (Snow Leopard) and higher. This is achieved using <i>weak linking</i>. In <i>weak linking</i>, Qt tests whether a function added in a newer version of OS X is available on the computer it is running on. This allows Qt to use newer features when it runs on a newer version of OS X, while remaining compatible on the older versions.</p>
<p>For more information about cross development issues on OS X, see <a href="https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/cross_development/Introduction/Introduction.html">Apple's Developer Website</a>.</p>
<p>The linker is set to be compatible with all OS X versions, so you must change the <code>MACOSX_DEPLOYMENT_TARGET</code> environment variable to get <i>weak linking</i> to work for your application. You can add the following:</p>
<pre class="cpp">QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.3</pre>
<p>to your .pro file, and qmake will take care of this for you.</p>
<p>For more information about C++ runtime environment, see <a href="https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/CppRuntimeEnv/CPPRuntimeEnv.html">Apple's Developer Website</a></p>
<a name="the-mac-deployment-tool"></a>
<h2 id="the-mac-deployment-tool">The Mac Deployment Tool</h2>
<a name="macdeploy"></a><p>The Mac deployment tool can be found in QTDIR/bin/macdeployqt. It is designed to automate the process of creating a deployable application bundle that contains the Qt libraries as private frameworks.</p>
<p>The mac deployment tool also deploys the Qt plugins, according to the following rules (unless <code>-no-plugins</code> option is used):</p>
<ul>
<li>The platform plugin is always deployed.</li>
<li>Debug versions of the plugins are not deployed.</li>
<li>The designer plugins are not deployed.</li>
<li>The image format plugins are always deployed.</li>
<li>The print support plugin is always deployed.</li>
<li>SQL driver plugins are deployed if the application uses the <a href="../qtsql/qtsql-index.html">Qt SQL</a> module.</li>
<li>Script plugins are deployed if the application uses the <a href="../qtscript/qtscript-index.html">Qt Script</a> module.</li>
<li>The SVG icon plugin is deployed if the application uses the <a href="../qtsvg/qtsvg-index.html">Qt SVG</a> module.</li>
<li>The accessibility plugin is always deployed.</li>
</ul>
<p>To include a 3rd party library in the application bundle, copy the library into the bundle manually, after the bundle is created.</p>
<p><code>macdeployqt</code> supports the following options:</p>
<div class="table"><table class="generic">
 <thead><tr class="qt-style"><th >Option</th><th >Description</th></tr></thead>
<tr valign="top" class="odd"><td ><code>-verbose=&lt;0-3&gt;</code></td><td >0 = no output, 1 = error/warning (default), 2 = normal, 3 = debug</td></tr>
<tr valign="top" class="even"><td ><code>-no-plugins</code></td><td >Skip plugin deployment</td></tr>
<tr valign="top" class="odd"><td ><code>-dmg</code></td><td >Create a .dmg disk image</td></tr>
<tr valign="top" class="even"><td ><code>-no-strip</code></td><td >Don't run 'strip' on the binaries</td></tr>
<tr valign="top" class="odd"><td ><code>-use-debug-libs</code></td><td >Deploy with debug versions of frameworks and plugins (implies <code>-no-strip</code>)</td></tr>
<tr valign="top" class="even"><td ><code>-executable=&lt;path&gt;</code></td><td >Let the given executable also use the deployed frameworks</td></tr>
<tr valign="top" class="odd"><td ><code>-qmldir=&lt;path&gt;</code></td><td >Deploy imports used by .qml files in the given path</td></tr>
</table></div>
</div>
<!-- @@@osx-deployment.html -->
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2015 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>