diff --git a/.gitignore b/.gitignore index 5151bab..e98f8c2 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,14 @@ DerivedData/ ## XcodeGen # Entsteht aus project.yml, siehe README — bewusst nicht eingecheckt. *.xcodeproj + +## Sparkle-Tools +# generate_keys/sign_update aus der offiziellen Release-Distribution, +# lokal heruntergeladen (siehe scripts/publish-release.sh) — kein Quellcode. +/bin/ + +## Release-Artefakte +dist/ *.moved-aside *.pbxuser !default.pbxuser @@ -101,7 +109,7 @@ iOSInjectionProject/ .LSOverride # Icon must end with two \r -Icon +Icon # Thumbnails ._* diff --git a/Sources/DropTwo/Info.plist b/Sources/DropTwo/Info.plist index 5370cd8..129da75 100644 --- a/Sources/DropTwo/Info.plist +++ b/Sources/DropTwo/Info.plist @@ -26,5 +26,11 @@ NSHumanReadableCopyright (c) Samuel Zielke + SUEnableAutomaticChecks + + SUFeedURL + https://update.zielke.studio/droptwo/appcast.xml + SUPublicEDKey + 2Oe3MbYRBVMMm0EtwTdZaHVKGOOIzgBWfI94CFkPQOg= diff --git a/project.yml b/project.yml index e257cc1..440728d 100644 --- a/project.yml +++ b/project.yml @@ -11,20 +11,21 @@ settings: SWIFT_VERSION: "5.9" MARKETING_VERSION: "0.1.0" CURRENT_PROJECT_VERSION: "1" - # Ad-hoc-Signatur: laeuft lokal auf dem eigenen Rechner, braucht keine Team-ID. - # Fuer den ersten echten Release auf Manual + DEVELOPMENT_TEAM umstellen. - CODE_SIGN_STYLE: Automatic - CODE_SIGN_IDENTITY: "-" configs: + Debug: + # Ad-hoc-Signatur: laeuft lokal auf dem eigenen Rechner, braucht keine Team-ID. + CODE_SIGN_STYLE: Automatic + CODE_SIGN_IDENTITY: "-" Release: ENABLE_HARDENED_RUNTIME: YES # Pflicht fuer die Notarisierung + CODE_SIGN_STYLE: Manual + CODE_SIGN_IDENTITY: "Developer ID Application" + DEVELOPMENT_TEAM: XY4C2RG3L5 -# Sparkle kommt erst in Schritt 6 dazu. Bis dahin auskommentiert -- -# das haelt fruehe Builds schnell und die Signierung unkompliziert. -# packages: -# Sparkle: -# url: https://github.com/sparkle-project/Sparkle -# from: "2.6.0" +packages: + Sparkle: + url: https://github.com/sparkle-project/Sparkle + from: "2.10.0" targets: @@ -46,7 +47,7 @@ targets: - Sources/DropTwo dependencies: - target: DropTwoCore - # - package: Sparkle + - package: Sparkle settings: base: PRODUCT_BUNDLE_IDENTIFIER: dev.zielke.droptwo @@ -60,10 +61,9 @@ targets: LSMinimumSystemVersion: "13.0" LSUIElement: false # true = reiner Menu-Bar-Betrieb ohne Dock-Icon NSHumanReadableCopyright: "(c) Samuel Zielke" - # Sparkle-Schluessel und Feed-URL folgen in Schritt 6: - # SUFeedURL: https://.../droptwo/appcast.xml - # SUPublicEDKey: ... - # SUEnableAutomaticChecks: true + SUFeedURL: https://update.zielke.studio/droptwo/appcast.xml + SUPublicEDKey: 2Oe3MbYRBVMMm0EtwTdZaHVKGOOIzgBWfI94CFkPQOg= + SUEnableAutomaticChecks: true # Pruefstein fuer den Kern: echte Datei durchjagen, bevor Oberflaeche entsteht. droptwo-cli: diff --git a/scripts/publish-release.sh b/scripts/publish-release.sh index 26bbbd0..21a927c 100755 --- a/scripts/publish-release.sh +++ b/scripts/publish-release.sh @@ -33,7 +33,7 @@ SIGN_UPDATE="${SPARKLE_SIGN_UPDATE:-./bin/sign_update}" } echo "==> Notarisierung prüfen" -if ! spctl -a -t open --context context:primary-signature "$DMG" 2>&1 | grep -q accepted; then +if ! spctl -a -v -t open --context context:primary-signature "$DMG" 2>&1 | grep -q accepted; then echo "FEHLER: DMG ist nicht notarisiert oder nicht gestapled." >&2 echo "Ein Upload jetzt würde Kollegen eine blockierte App ausliefern." >&2 exit 1