Dev

Distributing a macOS App Yourself (3): Hosting the Update Feed and Build Settings

The Last Piece — Where to Put the Updates In Part 1 we prepared the Developer ID certificate and notarization, and in Part 2 we prepared the Sparkle signing key. That means we now have a way to sign the app, notarize it, and verify the authenticity of updates. But the location pointed to by SUFeedURL (https://updates.example.com/appcast.xml), which we wrote into the app’s Info.plist in Part 2, still has nothing in it. In this final part, we’ll host the update feed that goes in that spot and finish the build settings, completing the entire one-time setup. ...

May 16, 2026 · 7 min · 1457 words · Juhyun Lee
한국어 日本語 简体中文 Bahasa Indonesia Español Français Português Tiếng Việt 繁體中文
Dev

Distributing a macOS App Yourself (2): Creating the Sparkle Auto-Update Signing Key

Automatic Updates, and Why You Need One More Layer of Signing In Part 1, we finished setting up the Developer ID certificate and notarization. With that, you’re ready to deliver the app to users for the first time. But an app isn’t done after a single release — you have to keep shipping new versions that fix bugs and add features. For a Mac App Store app, the App Store handles updates for you. A directly distributed app doesn’t get that, so you have to build an automatic-update feature into the app yourself. On macOS, the de facto standard for this role is the open-source framework Sparkle. With Sparkle in place, the app periodically checks an “update feed (appcast),” and if a new version exists, it notifies the user, downloads it, and installs it. ...

May 15, 2026 · 7 min · 1372 words · Juhyun Lee
한국어 日本語 简体中文 Bahasa Indonesia Español Français Português Tiếng Việt 繁體中文
Dev

Distributing a macOS App Yourself (1): Developer ID Certificate and Notarization Setup

What It Means to Distribute Directly with Developer ID There are broadly two ways to get a macOS app into users’ hands. One is through the Mac App Store (MAS), and the other is direct distribution — letting users download a .dmg (or .app) file you build yourself from a website, GitHub, or similar. Direct distribution has clear advantages. You don’t have to wait for App Store review, there are no payment commissions, and you can ship updates whenever and however you like. In exchange, the things the App Store used to handle for you — code signing, notarization, and automatic updates — are now yours to set up. ...

May 14, 2026 · 9 min · 1744 words · Juhyun Lee
한국어 日本語 简体中文 Bahasa Indonesia Español Français Português Tiếng Việt 繁體中文
Dev

Convert Text to Filename Using Automator on macOS

Overview The procedure described in this report will guide you through creating a Quick Action using Automator on macOS. This Quick Action can be used to convert text into a more filename-friendly format. The conversion process removes special characters, transforms the text to lowercase, and replaces spaces with hyphens. Procedure Open Automator Press Cmd + Space to open Spotlight, type “Automator,” and hit Enter. Create a new Service In the Automator app, select “Quick Action” (previously called “Service”) and click “Choose.” Configure the Quick Action At the top of the new window, change the “Workflow receives current” drop-down menu to “text.” Make sure the “in” drop-down is set to “any application.” Add a “Run Shell Script” action In the search bar on the left, type “Run Shell Script” and drag the action to the right pane. Configure the “Run Shell Script” action Change “Pass input” to “as arguments.” Paste the following script in the text box: for text_input in "$@" do echo "$text_input" | sed 's/[^a-zA-Z0-9 ]//g' | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g' done Add a “Copy to Clipboard” action In the search bar on the left, type “Copy to Clipboard” and drag the action to the right pane, below the “Run Shell Script” action. Save the Quick Action Press Cmd + S and give your Quick Action a name, e.g., “Convert Text to filename” The script is now ready to use from the right-click context menu in any text editor that supports macOS Services. ...

April 6, 2023 · 2 min · 367 words · Juhyun Lee
한국어 日本語 简体中文 Bahasa Indonesia Español Français Português Tiếng Việt 繁體中文
Dev

Pytrends 11: Discovering Real-Time Trending Searches for Up-to-the-Minute Insights

Overview The realtime_trending_searches() function in the pytrends library allows you to retrieve real-time trending searches on Google. By analyzing this data, you can gain insights into the latest trends and topics that are capturing the attention of your audience, helping you to create timely, relevant, and engaging content. In this tutorial, we will cover: Importing the necessary libraries Setting up the pytrends request Retrieving real-time trending searches data Analyzing the results Retrieve Real-Time Trending Searches Data First, we need to import the necessary libraries and set up our pytrends request. ...

April 5, 2023 · 2 min · 306 words · Juhyun Lee
한국어 日本語 简体中文 Bahasa Indonesia Español Français Português Tiếng Việt 繁體中文