Packaging setup: DMG distribution + proper log location

logback.xml: write to ~/Library/Logs/PhotoPhetch/ (standard macOS
app log location), rolling 7-day retention, 50MB cap. Console output
retained for development runs.

build.gradle.kts: fix packaging config — remove missing icon.icns
reference, add copyright, add signing block (disabled by default).

To build:
  ./gradlew packageDmg
  # Output: build/compose/binaries/main/dmg/PhotoPhetch-1.0.0.dmg

Logs viewable in Console.app or:
  tail -f ~/Library/Logs/PhotoPhetch/photophetch.log
This commit is contained in:
Kyle Bolen
2026-08-02 03:12:44 +00:00
parent dc32a3a3d7
commit c34e1201ab
2 changed files with 28 additions and 2 deletions

View File

@@ -43,9 +43,14 @@ compose.desktop {
packageVersion = "1.0.0" packageVersion = "1.0.0"
description = "Import photos from phones into PhotoPhile" description = "Import photos from phones into PhotoPhile"
vendor = "bolenpad" vendor = "bolenpad"
copyright = "© 2026 Kyle Bolen"
macOS { macOS {
bundleID = "com.bolenpad.photophetch" bundleID = "com.bolenpad.photophetch"
iconFile.set(project.file("src/main/resources/icon.icns")) // Uncomment and add icon.icns to src/main/resources/ for a custom icon:
// iconFile.set(project.file("src/main/resources/icon.icns"))
signing {
sign.set(false) // set true + add identity for App Store / Gatekeeper
}
} }
} }

View File

@@ -1,13 +1,34 @@
<configuration> <configuration>
<!-- Console output for development (./gradlew run) -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>%d{HH:mm:ss} [%-5level] %logger{20} - %msg%n</pattern> <pattern>%d{HH:mm:ss} [%-5level] %logger{20} - %msg%n</pattern>
</encoder> </encoder>
</appender> </appender>
<!-- Rolling file output for packaged app -->
<!-- Writes to ~/Library/Logs/PhotoPhetch/ on macOS (standard location) -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/Library/Logs/PhotoPhetch/photophetch.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- Keep 7 days of logs, max 10MB per file -->
<fileNamePattern>${user.home}/Library/Logs/PhotoPhetch/photophetch.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
<totalSizeCap>50MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5level] %logger{30} - %msg%n</pattern>
</encoder>
</appender>
<!-- photophetch package: DEBUG in dev, INFO when packaged -->
<logger name="com.bolenpad.photophetch" level="DEBUG" />
<!-- Always write to file; console only in dev -->
<root level="WARN"> <root level="WARN">
<appender-ref ref="CONSOLE" /> <appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root> </root>
<logger name="com.bolenpad.photophetch" level="DEBUG" />
</configuration> </configuration>