зеркало из https://github.com/nextcloud/desktop.git
Add ability to notarise package from mac-crafter
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Родитель
1b747fa134
Коммит
8f2061da95
|
@ -18,6 +18,7 @@ enum PackagingError: Error {
|
|||
case projectNameSettingError(String)
|
||||
case packageBuildError(String)
|
||||
case packageSigningError(String)
|
||||
case packageNotarisationError(String)
|
||||
}
|
||||
|
||||
func buildPackage(buildWorkPath: String, productPath: String) throws -> String {
|
||||
|
@ -45,3 +46,14 @@ func signPackage(packagePath: String, packageSigningId: String) throws {
|
|||
try fm.moveItem(atPath: packagePathNew, toPath: packagePath)
|
||||
}
|
||||
|
||||
func notarisePackage(
|
||||
packagePath: String, appleId: String, applePassword: String, appleTeamId: String
|
||||
) throws {
|
||||
guard shell("xcrun notarytool submit \(packagePath) --apple-id \(appleId) --password \(applePassword) --team-id \(appleTeamId) --wait") == 0 else {
|
||||
throw PackagingError.packageNotarisationError("Failure when notarising package!")
|
||||
}
|
||||
guard shell("xcrun stapler staple \(packagePath)") == 0 else {
|
||||
throw PackagingError.packageNotarisationError("Could not staple notarisation on package!")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -65,6 +65,15 @@ struct Build: ParsableCommand {
|
|||
@Option(name: [.long], help: "Git clone command; include options such as depth.")
|
||||
var gitCloneCommand = "git clone --depth=1"
|
||||
|
||||
@Option(name: [.long], help: "Apple ID, used for notarisation.")
|
||||
var appleId: String?
|
||||
|
||||
@Option(name: [.long], help: "Apple ID password, used for notarisation.")
|
||||
var applePassword: String?
|
||||
|
||||
@Option(name: [.long], help: "Apple Team ID, used for notarisation.")
|
||||
var appleTeamId: String?
|
||||
|
||||
@Option(name: [.long], help: "Apple package signing ID.")
|
||||
var packageSigningId: String?
|
||||
|
||||
|
@ -222,6 +231,15 @@ struct Build: ParsableCommand {
|
|||
|
||||
if let packageSigningId {
|
||||
try signPackage(packagePath: packagePath, packageSigningId: packageSigningId)
|
||||
|
||||
if let appleId, let applePassword, let appleTeamId {
|
||||
try notarisePackage(
|
||||
packagePath: packagePath,
|
||||
appleId: appleId,
|
||||
applePassword: applePassword,
|
||||
appleTeamId: appleTeamId
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче