update iconset
CI / build-and-test (push) Canceled after 0s

This commit is contained in:
admin committed 2026-10-06 08:47:32 +02:00
1 parent d277e901f0
commit e9da06fab5
2 files changed
+50 -5

No files matched your search

+50 -5
View File
@@ -20,7 +20,8 @@ BRIDGE_EXECUTABLE_NAME="LehrerApp.McpBridge" # Name der Bridge-Binary (= Assembl
BUNDLE_ID="de.deinname.lehrerapp" # CFBundleIdentifier
VERSION="1.0.0" # CFBundleShortVersionString
MIN_MACOS="12.0" # LSMinimumSystemVersion
ICON_PNG="icon.png" # Quell-Icon (min. 512x512 oder 1024x1024)
ICON_COMPOSER="NewMac.icon" # App-Symbol aus Icon Composer (braucht Xcode mit actool)
ICON_PNG="icon.png" # Ersatz-Icon, falls actool fehlt (min. 512x512 oder 1024x1024)
RUNTIME_IDS=("osx-arm64" "osx-x64") # Architekturen, für die gebaut wird
UNIVERSAL_BUILD=true # true = zusätzlich Universal Binary via lipo
CODESIGN_ADHOC=true # true = Ad-hoc-Signierung am Ende
@@ -92,8 +93,53 @@ place_binary "${BUILD_DIR}/publish" "${EXECUTABLE_NAME}"
echo " -> Bridge"
place_binary "${BUILD_DIR}/publish-bridge" "${BRIDGE_EXECUTABLE_NAME}"
echo "=== 4/7: Icon konvertieren (.icns) ==="
if [ -f "${ICON_PNG}" ]; then
echo "=== 4/7: App-Symbol erzeugen ==="
ICON_KEY=""
ICON_NAME="$(basename "${ICON_COMPOSER}" .icon)"
# Übersetzt das Icon-Composer-Dokument mit actool nach Resources: Assets.car (macOS 26+, inkl.
# Dunkel-/Getönt-Varianten) plus ${ICON_NAME}.icns als Darstellung für ältere Systeme.
# actool gibt es nur im vollen Xcode - zeigt xcode-select auf die Command Line Tools, wird
# Xcode.app direkt angesprochen.
compile_composer_icon() {
[ -d "${ICON_COMPOSER}" ] || { echo " -> Kein '${ICON_COMPOSER}' gefunden."; return 1; }
local dev_dir="${DEVELOPER_DIR:-}"
if ! DEVELOPER_DIR="${dev_dir}" xcrun --find actool > /dev/null 2>&1; then
dev_dir="/Applications/Xcode.app/Contents/Developer"
local find_error
if ! find_error="$(DEVELOPER_DIR="${dev_dir}" xcrun --find actool 2>&1 > /dev/null)"; then
echo " -> actool nicht nutzbar (volles Xcode nötig, Lizenz mit 'sudo xcodebuild -license' bestätigt?):"
echo " ${find_error}"
return 1
fi
fi
if ! DEVELOPER_DIR="${dev_dir}" xcrun actool "${ICON_COMPOSER}" \
--compile "${RESOURCES_DIR}" \
--app-icon "${ICON_NAME}" \
--platform macosx \
--minimum-deployment-target "${MIN_MACOS}" \
--output-partial-info-plist "${BUILD_DIR}/icon-partial.plist" \
--output-format human-readable-text; then
echo " -> actool konnte '${ICON_COMPOSER}' nicht übersetzen."
return 1
fi
if [ ! -f "${RESOURCES_DIR}/Assets.car" ]; then
echo " -> actool hat keine Assets.car erzeugt."
return 1
fi
}
if compile_composer_icon; then
ICON_KEY="<key>CFBundleIconName</key><string>${ICON_NAME}</string>"
if [ -f "${RESOURCES_DIR}/${ICON_NAME}.icns" ]; then
ICON_KEY="${ICON_KEY}<key>CFBundleIconFile</key><string>${ICON_NAME}</string>"
fi
echo " -> App-Symbol aus '${ICON_COMPOSER}' erzeugt."
elif [ -f "${ICON_PNG}" ]; then
echo " -> WARNUNG: Ersatzweise wird '${ICON_PNG}' als Icon verwendet."
ICONSET_DIR="${BUILD_DIR}/icon.iconset"
mkdir -p "${ICONSET_DIR}"
@@ -111,8 +157,7 @@ if [ -f "${ICON_PNG}" ]; then
iconutil -c icns "${ICONSET_DIR}" -o "${RESOURCES_DIR}/icon.icns"
ICON_KEY="<key>CFBundleIconFile</key><string>icon.icns</string>"
else
echo " -> Kein '${ICON_PNG}' gefunden, App-Bundle wird ohne Icon erstellt."
ICON_KEY=""
echo " -> WARNUNG: Kein '${ICON_PNG}' gefunden, App-Bundle wird ohne Icon erstellt."
fi
echo "=== 5/7: Info.plist schreiben ==="
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB