aboutsummaryrefslogtreecommitdiffstats
path: root/doc/reference/modules/codesign-module.qdoc
blob: 70a37477bb388daac86d9b31fc35772a15700daf (plain)
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
/****************************************************************************
**
** Copyright (C) 2018 The Qt Company Ltd.
** Copyright (C) 2021 Ivan Komissarov (abbapoh@gmail.com)
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \qmltype codesign
    \inqmlmodule QbsModules
    \since Qbs 1.19

    \brief Provides code signing support.

    The \c codesign module contains properties and rules for code signing on Apple and Android
    platforms.

    \section2 Relevant File Tags

    \table
    \header
        \li Tag
        \li Auto-tagged File Names
        \li Since
        \li Description
    \row
        \li \c{"codesign.entitlements"}
        \li \c{*.entitlements}
        \li 1.19.0
        \li \l{https://developer.apple.com/documentation/bundleresources/entitlements}{Xcode entitlements}
    \row
        \li \c{"codesign.provisioningprofile"}
        \li \c{*.mobileprovision, *.provisionprofile}
        \li 1.19.0
        \li Xcode provisioning profiles
    \row
        \li \c{"codesign.signed_artifact"}
        \li n/a
        \li 1.19.0
        \li This tag is attached to all signed artifacts such as applications or libraries
    \endtable
*/

/*!
    \qmlproperty string codesign::codesignFlags

    Additional flags passed to the \c{codesign} tool.

    \since Qbs 1.19

    \defaultvalue \c{undefined}

    \appleproperty
*/

/*!
    \qmlproperty string codesign::codesignName

    The name of the \c{codesign} binary.

    \since Qbs 1.19

    \defaultvalue \c{"codesign"}

    \appleproperty
*/

/*!
    \qmlproperty string codesign::codesignPath

    Path to the \c{codesign} tool.

    \since Qbs 1.19

    \defaultvalue Determined automatically

    \appleproperty
*/

/*!
    \qmlproperty bool codesign::enableCodeSigning

    Whether to actually perform code signing.

    \since Qbs 1.19
    \defaultvalue \c false
*/

/*!
    \qmlproperty string codesign::provisioningProfile

    Name or UUID of the provisioning profile to embed in the product.
    Typically this should be left blank to allow \QBS to use automatic provisioning.

    \since Qbs 1.19

    \defaultvalue \c undefined

    \appleproperty
*/

/*!
    \qmlproperty path codesign::provisioningProfilesPath

    Path to directory containing provisioning profiles installed on the system.
    This should not normally need to be changed.

    \since Qbs 1.19

    \defaultvalue \c{"~/Library/MobileDevice/Provisioning Profiles"}

    \appleproperty
*/

/*!
    \qmlproperty string codesign::signingIdentity

    Search string used to find the certificate to sign the product. This does not have to be
    a full certificate name like "Mac Developer: John Doe (XXXXXXXXXX)", and can instead be
    a partial string like "Mac Developer" or the certificate's SHA1 fingerprint.
    The search string should generally be one of the following:
    \list
        \li 3rd Party Mac Developer Application
        \li 3rd Party Mac Developer Installer
        \li Developer ID Application
        \li Developer ID Installer
        \li iPhone Developer
        \li iPhone Distribution
        \li Mac Developer
    \endlist

    It is also possible to use the special \c "-" value to use the ad-hoc signing.

    See \l{https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW41}{Maintaining Your Signing Identities and Certificates}
    for complete documentation on the existing certificate types.
    In general you should use \l{codesign::signingType}{signingType} instead.

    \since Qbs 1.19

    \defaultvalue Determined by \l{codesign::signingType}{signingType}

    \appleproperty
*/

/*!
    \qmlproperty string codesign::signingTimestamp

    URL of the timestamp authority server to be contacted to authenticate code signing.
    \c{undefined} indicates that a system-specific default should be used, and the empty
    string indicates the default server provided by Apple. \c{"none"} explicitly disables
    the use of timestamp services and this should not usually need to be changed.

    \since Qbs 1.19

    \defaultvalue \c{"none"}

    \appleproperty
*/

/*!
    \qmlproperty string codesign::signingType

    Type of code signing to use. This should generally be used in preference to an explicit
    signing identity like "Mac Developer: John Doe (XXXXXXXXXX)" since it is not user
    specific and can be set in a project file.
    Possible values include: \c{"app-store"}, \c{"apple-id"}, \c{"ad-hoc"}, which sign for
    the App Store or Mac App Store, Developer ID, and Ad-hoc code signing, respectively.

    \section1 Relation between the signingType and signingIdentity

    The following table shows how the signingIdentity's default value is calculated.

    \table
    \header
        \li \c qbs.targetOS
        \li \c codesign.signingType
        \li \c qbs.buildVariant
        \li \c codesign.signingIdentity
    \row
        \li {1, 4} \c "macos"
        \li \c "ad-hoc"
        \li any
        \li \c "-"
    \row
        \li {1, 2} \c "app-store"
        \li \c "debug", \c "profiling"
        \li \c "Mac Developer"
    \row
        \li \c "release"
        \li \c "3rd Party Mac Developer Application"
    \row
        \li \c "apple-id"
        \li any
        \li \c "Developer ID Application"
    \row
        \li {1, 2} \c "ios", \c "tvos", \c "watchos"
        \li {1, 2} \c "app-store"
        \li \c "debug", \c "profiling"
        \li \c "iPhone Developer"
    \row
        \li \c "release"
        \li \c "iPhone Distribution"
    \endtable

    \since Qbs 1.19

    \defaultvalue Determined automatically

    \appleproperty
*/

/*!
    \qmlproperty string codesign::teamIdentifier

    Human readable name or 10-digit identifier of the Apple development team that the
    signing identity belongs to. This is used to disambiguate between multiple certificates
    of the same type in different teams. Typically this can be left blank if the development
    machine is only signed in to a single development team, and should be set in a profile
    otherwise.

    \since Qbs 1.19

    \defaultvalue \c undefined

    \appleproperty
*/

/*!
    \qmlproperty bool codesign::useApksigner

    If \c true, the package is signed using apksignerFilePath binary.
    Set this property to \c false to use the jarsignerFilePath one.
    Set by the Android.sdk module.

    \since Qbs 1.19

    \defaultvalue \c true

    \androidproperty
*/

/*!
    \qmlproperty string codesign::keystorePath

    The absolute path to the keystore file.

    \since Qbs 1.19

    \defaultvalue \c "${HOME}/.android/debug.keystore"

    \androidproperty
*/

/*!
    \qmlproperty string codesign::keystorePassword

    The keystore password.

    \since Qbs 1.19

    \defaultvalue \c "android"

    \androidproperty
*/

/*!
    \qmlproperty string codesign::keyPassword

    The key password.

    \since Qbs 1.19

    \defaultvalue \c "android"

    \androidproperty
*/

/*!
    \qmlproperty string codesign::keyAlias

    The key alias.

    \since Qbs 1.19

    \defaultvalue \c "androiddebugkey"

    \androidproperty
*/