Post

Replies

Boosts

Views

Activity

Safari Web Extension Error Stack Traces in Sentry Show webkit-masked-url://hidden/ — Any Way to Restore Real Script Paths?
I’m a developer working on a Safari Web Extension that’s distributed via the App Store and also tested locally through Xcode. I’m running into an issue that’s affecting my ability to debug errors reported to my Sentry error logging instance from production. The Problem When an error is thrown in one of my extension scripts (e.g., background.js, popup.js, or content.js), the error is sent to Sentry but the captured JavaScript error stack trace replaces the file paths with the webkit-masked-url://hidden placeholder like this: ReferenceError: Cannot access uninitialized variable. at ? (webkit-masked-url://hidden/:14677:28) at ? (webkit-masked-url://hidden/:16307:3) This happens consistently across both App Store builds and local Xcode runs. It prevents me from seeing which script the error came from or resolving the actual source code lines using uploaded source maps in Sentry. My Setup Safari Version: 18.5 (Stable on macOS) Distribution: App Store and local Xcode development Extension Type: Safari Web Extension Error Reporting: Sentry (@sentry/browser SDK) Bundler: Webpack with inline-source-map What I’ve Confirmed I can see the actual source files in Safari’s Web Inspector under the Sources tab when the extension is running. My source maps are uploaded to Sentry correctly and are associated with the matching release. Errors from Safari are being captured by Sentry, but the file URLs are masked, so stack traces cannot be resolved against my original source. My Question Is this behavior (masking file URLs in stack traces with webkit-masked-url://hidden/) intentional for Safari Web Extensions? If so, is there any supported method or workaround to allow exception stack traces to reveal the original script path (e.g., popup.js, background.js) so tools like Sentry or even console logs can point to real locations? I fully understand the privacy/security rationale behind the masking, but as the extension developer, this is making it extremely difficult to debug runtime issues in production. I’d really appreciate any insight into: Whether this masking is expected and permanent behavior If there are any entitlements, debug settings, or Info.plist keys that can alter this behavior for development or for trusted/own extensions If Apple recommends a different way to log extension errors that includes script name or source references Thanks in advance for your help! I’m happy to share more technical details or try out suggestions.
0
0
57
3w
Is changing macOS Network Locations programmatically allowed in Mac App Store apps?
I would like to develop a macOS app that would automatically switch Network Locations based on certain criteria. I want to publish this on the Mac App Store, but I'm unsure if this functionality is permitted. I've searched through the App Store Review Guidelines and documentation on NetworkExtension and SystemConfiguration frameworks, but I haven't found clear information on whether: Programmatically changing Network Locations is allowed in sandboxed App Store apps What specific entitlements would be required If there are any API-approved ways to do this without shell commands I'd like to avoid investing significant development time if this type of functionality would ultimately be rejected. As a relatively new Apple platform developer, any guidance on: The appropriate frameworks/APIs to use Required entitlements Whether this functionality is even permitted for App Store distribution would be incredibly helpful. Thank you in advance for any insights!
2
0
119
Mar ’25
Safari Extension rejected for using "for [Platform]" in name - despite many precedents
Hi devs community, I've run into an interesting situation with App Review that I'd like to get the community's perspective on. My Safari extension "Protego for Reddit" (a content filter for Reddit) was rejected under Guidelines 2.3.7 for using "Reddit" in the name/subtitle, citing potential customer confusion. What's puzzling is there are many established apps using the same naming pattern for the app name and subtitle, all currently on the App Store: Narwhal 2 for Reddit - "Highly customizable Reddit app" Sink It for Reddit - "Upgrade Your Reddit Experience" Reno for Reddit - "instagram styled Reddit app" Dystopia for Reddit - "A Better Way to Reddit" MultiTab for Reddit - "Best viewer for image/video" Nano for Reddit - "The wrist-based Reddit client" Focus for Reddit - "A unofficial app for Reddit" Monocle for Reddit - "A comprehensive Reddit client" Redirect for Reddit - "Redirects to old.Reddit.com!" Alerts for Reddit - "News" rex for Reddit - "Lurk with ease!" Comet for Reddit - "Fast, Robust, and Beautiful" Redista client for Reddit - "Entertainment" Readder for Reddit - "Entertainment" lurkur for Reddit - "a new way to browse" Pics HD for Reddit - "Entertainment" Apollo for Reddit - "Closed. Goodbye and thank you!" and more I submitted a reply to the app review rejection and they told me that if I disagree with the outcome of their review that I need to file appeal to the App Review Board. I've already submitted an appeal pointing out these precedents and explaining that the name accurately describes the app's functionality without implying any official association. While I wait for the response, I'm curious about a few things: For those who maintain apps with "for [Platform]" in the name: Do you face this rejection with every update? Did you only have to appeal once, after which subsequent updates were approved? Was there any special process to get your app "whitelisted" for this naming convention? Has anyone noticed if this is a recent change in enforcement? The number of existing apps with similar names suggests this wasn't always strictly enforced. For those who successfully appealed similar rejections: How long did the appeal process take? Did you need to escalate beyond the initial appeal? My concern is whether I'll need to go through this rejection/appeal cycle with every update, which would significantly impact our ability to push out timely fixes and improvements. I've had to delay two updates due to this issue. Context: App description: Safari extension for filtering Reddit content on Mac Current name: "Protego for Reddit" Subtitle: "Filter your Reddit Feed" Version: 1.3 Status: Awaiting appeal response Many of these established apps even use "Reddit" in their subtitles, which makes the rejection of my subtitle "Filter your Reddit Feed" particularly confusing. Thanks in advance for any guidance or shared experiences!
2
0
361
Nov ’24