Skip to content

Fix build issues, crashes, and Rules Editor remove button#100

Open
jrhubott wants to merge 9 commits intoPyroh:mainfrom
jrhubott:fix-compile
Open

Fix build issues, crashes, and Rules Editor remove button#100
jrhubott wants to merge 9 commits intoPyroh:mainfrom
jrhubott:fix-compile

Conversation

@jrhubott
Copy link

Summary

  • Fix build: remove empty scheme scripts, bump deployment target to macOS 11, migrate Sparkle to SPM
  • Fix EXC_BAD_ACCESS crash when opening Rules Editor and Running Apps windows (KVO on @objc let properties)
  • Update Sparkle storyboard bindings for v2 API
  • Fix Rules Editor "-" (remove) button by binding table view selectionIndexes to NSArrayController
  • Update SPM Package.resolved to v3 format

Test plan

  • Build with xcodebuild -scheme Fluor -configuration Debug build
  • Launch app, open Rules Editor, add a rule, select it, click "-" — rule should be removed
  • Open Rules Editor and Running Apps windows without crash
  • Verify Preferences window opens and Sparkle update check works

…te Sparkle to SPM

Remove empty shell script pre/post actions from Fluor.xcscheme that caused
build failures. Update MACOSX_DEPLOYMENT_TARGET from 10.12 to 10.13 to match
SmoothOperators minimum requirement. Replace manual Sparkle.framework reference
(hardcoded to original developer's path) with Swift Package Manager dependency
on Sparkle 2.x, and update storyboard references from SUUpdater to
SPUStandardUpdaterController.
…indows

The Rules Editor crash was caused by a toolTip binding using the nested
key path `objectValue.url.path`. The `url` property on Item is declared
as `@objc let`, which doesn't expose a mutable ivar to the ObjC runtime.
When KVO set up auto-notifying for this nested path, NSKeyValueIvarSetter
received a nil ivar and dereferenced it (address 0x0).

Also removed the unused selectionIndexes binding on the table view,
changed both windows from NSPanel to NSWindow (customClass removal),
and updated editRules/showRunningApps to use makeKeyAndOrderFront with
NSApp.activate — matching the working pattern from showAbout/showPreferences.
Migrate Preferences.storyboard Sparkle bindings to use the v2 key paths
(self.updater.automaticallyChecksForUpdates, etc.) and remove the unused
SPUStandardUpdaterController custom object. Bump CFBundleVersion to 2371
and downgrade scheme version to 1.3 for broader Xcode compatibility.
…ntroller

The "-" button in the Rules Editor was permanently disabled because the
table view's selectionIndexes were not bound to the NSArrayController.
Without this binding, canRemove stayed false and selectedObjects was
always empty. Also updates CLAUDE.md with gotchas and bumps build number.
# Conflicts:
#	Fluor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant