Comments (13)
PS. This is issue can be bypassed by accepting the security warning but I reckon it shouldn't be there in the first place.
from maccy.
It could be due to a recent upgrade of Sparkle, but it should go away after accepting, this should only be a one-time issue. Does it persist with multiple updated?
from maccy.
Hi there, thanks for the quick reply and hard work on Maccy, which is an amazing software.
I'm not sure it is an issue with Sparkle per se as:
- Other projects I have installed that use sparkle (e.g. iTerm) does not show any issue with the updater and update themselves correctly.
- I recall an article mentioning that sparkle framework may have issue with sandboxed application in Sonoma, as this is only supported by sparkle v2 APIs.
This is why I was curious about which version of sparkle was bundled with Maccy.
I did not confirm the version mismatch popup and cannot confirm if this a recurring error or if it goes away.
from maccy.
We migrated to use Spark 2.5 which is distributed as a Swift Package 3 months ago, this is why I believe it might complain. However, it should only complain just once. FWIW I haven't seen such an error myself during or after the upgrade, so maybe there is something on your end?
I recall an article mentioning that sparkle framework may have issue with sandboxed application in Sonoma, as this is only supported by sparkle v2 APIs.
Can you share the link
from maccy.
Please see sparkle-project/Sparkle#2514
from maccy.
Reading through the issue, it looks like I would either need to run unsandboxed Sparkle or build it from sources with a custom bundle identifier. None of the options seem optimal to me. So far I lean towards keeping things as is and waiting for Sparkle 2.6 release.
from maccy.
Sparkle 2.6 has been released.
from maccy.
As far as I understand, I would need to checkout Sparkle back to the source code (I switched to using it as a package at some point). Then it has to be manually built from the source with a custom build ID. @zorgiepoo Is there any way to keep using a package manager to build/pass build ID during the application building phase?
from maccy.
You do not need to use a custom bundle ID. Sparkle 2.6 and later disables sandboxing on the Downloader XPC Service by default and it was updated to use a new bundle ID. So you can use Sparkle 2.6 through a package manager.
Using a custom bundle ID for Sparkle's XPC Services and sandboxing the downloader XPC Service is optional and would require recompiling Sparkle from source, which seems less convenient for you.
from maccy.
I am not that familiar with how Sparkle works internally. Does disabling sandbox on XPC Service affect Maccy sandbox in any way? Do I need to do something extra?
Maccy/Maccy/Maccy.entitlements
Lines 4 to 14 in 5484768
from maccy.
No, nothing extra.
XPC Services can be sandboxed (or not sandboxed in this case) differently from the main app (i.e, they provide privilege separation). They execute in different processes and are separate, but communicate with each other. You are already using Sparkle's installer launcher XPC Service which is not sandboxed for example (and does not have this issue). Maccy will continue to be sandboxed, just that the downloader XPC Service now won't be.
This is what I've been sending to a few other developers:
Due to a sandboxing issue new to macOS Sonoma and due to this app and other apps using Sparkle's Downloader XPC Service, users may see a one-time system warning dialog when checking for updates about "Downloader" differs from previously opened versions.
It looks like Maccy wants to use the Sparkle's Downloader XPC Service from following Sparkle's sandboxing guide because the app is not entitled with an outgoing network connection (com.apple.security.network.client) entitlement. So there are a couple ways to fix this issue:
- Maccy can update to Sparkle 2.6.0 or later (which disables sandboxing for the Downloader XPC Service by default to avoid conflicts) (easiest way)
- Maccy can re-compile their current version of Sparkle with a custom XPC_SERVICE_BUNDLE_ID_PREFIX
See sparkle-project/Sparkle#2514 for more information on the issue.
from maccy.
Another viable option I failed to mention before is enabling the Outgoing Network Connection (com.apple.security.network.client) entitlement on your app instead of enabling Sparkle's Downloader XPC Service (as there are other drawbacks with it, e.g. Sparkle can't use WebKit 2). I updated the sandbox documentation for the downloader service here.
Each option has its own upsides/downsides.
from maccy.
I've upgraded to Sparkle 2.6 and will test how it works with the next release. @zorgiepoo Thank you very much for your help with this issue and your work on Sparkle!
from maccy.
Related Issues (20)
- Option to add custom templates that can be pasted anytime HOT 1
- Named pins HOT 1
- Buggy with Mac clipboard. Sugestions? HOT 1
- Maccy Doesn't Start at Login, Even Though Preferences are set to Launch at Login
- Freezeing macbook after clipboarding an svg file when working on graphics. HOT 1
- app often hangs after being updated to 0.31.0 HOT 4
- conflicts of command + num HOT 1
- "dontIgnoreOnlyNextEvent" for when Maccy is currently ignoring HOT 4
- Menu bar icon disappears under some circumstances (macOS Sequoia developer beta) HOT 9
- Maccy's Clipboard not working HOT 4
- Edit text HOT 4
- ⌘⌫ is captured by search field and does not delete history entry HOT 3
- Love to have a Time-based Clear Option HOT 1
- Maccy Free HOT 1
- Screenshots saved to a file aren't copied to the Clipboard. HOT 1
- The history doesn't clean completely HOT 1
- Paste not working on fresh install HOT 1
- ⌥⇧C to open Maccy does not work on MacOS Sequoia public beta HOT 2
- Enhancing Efficiency with Predefined Shortcut Functionality HOT 1
- Append or prepend selected text to your clipboard with different separators HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from maccy.