mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-25 14:36:01 +03:00
Add ability to notarise package from mac-crafter
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
1b747fa134
commit
8f2061da95
2 changed files with 30 additions and 0 deletions
|
@ -18,6 +18,7 @@ enum PackagingError: Error {
|
||||||
case projectNameSettingError(String)
|
case projectNameSettingError(String)
|
||||||
case packageBuildError(String)
|
case packageBuildError(String)
|
||||||
case packageSigningError(String)
|
case packageSigningError(String)
|
||||||
|
case packageNotarisationError(String)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildPackage(buildWorkPath: String, productPath: String) throws -> 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)
|
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.")
|
@Option(name: [.long], help: "Git clone command; include options such as depth.")
|
||||||
var gitCloneCommand = "git clone --depth=1"
|
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.")
|
@Option(name: [.long], help: "Apple package signing ID.")
|
||||||
var packageSigningId: String?
|
var packageSigningId: String?
|
||||||
|
|
||||||
|
@ -222,6 +231,15 @@ struct Build: ParsableCommand {
|
||||||
|
|
||||||
if let packageSigningId {
|
if let packageSigningId {
|
||||||
try signPackage(packagePath: packagePath, packageSigningId: packageSigningId)
|
try signPackage(packagePath: packagePath, packageSigningId: packageSigningId)
|
||||||
|
|
||||||
|
if let appleId, let applePassword, let appleTeamId {
|
||||||
|
try notarisePackage(
|
||||||
|
packagePath: packagePath,
|
||||||
|
appleId: appleId,
|
||||||
|
applePassword: applePassword,
|
||||||
|
appleTeamId: appleTeamId
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue