<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Xcode on hobbyworker취미생활자</title>
    <link>https://hobbyworker.me/zh-hans/tags/xcode/</link>
    <description>Recent content in Xcode on hobbyworker취미생활자</description>
    <generator>Hugo</generator>
    <language>zh-hans</language>
    <copyright>2026 hobbyworker</copyright>
    <lastBuildDate>Tue, 19 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://hobbyworker.me/zh-hans/tags/xcode/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>macOS 应用上架 Mac App Store (3): 上传配置与 App Store Connect 注册</title>
      <link>https://hobbyworker.me/zh-hans/dev/2026-05-19-distribute-macos-app-mas-3-export-and-app-store-connect/</link>
      <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/zh-hans/dev/2026-05-19-distribute-macos-app-mas-3-export-and-app-store-connect/</guid>
      <description>完成 MAS 构建目标的配置与代码分支后，接下来需要搭建将该构建上传到 App Store 的路径。本文以示例应用 FocusTimer 为基准，讲解编写用于上传的 ExportOptions-MAS.plist、注册 App Store Connect 应用记录，以及验证构建确保两个渠道不被破坏的方法，从而收尾本系列。</description>
    </item>
    <item>
      <title>macOS 应用上架 Mac App Store (2): 区分两个渠道的配置与代码分支</title>
      <link>https://hobbyworker.me/zh-hans/dev/2026-05-18-distribute-macos-app-mas-2-build-config-and-code/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/zh-hans/dev/2026-05-18-distribute-macos-app-mas-2-build-config-and-code/</guid>
      <description>创建好 MAS 构建目标后，需要拆分配置文件和代码，使该目标真正符合 App Store 规则。本文以示例应用 FocusTimer 为基准，逐步讲解创建 MAS 专用 entitlements 和 Info.plist、对齐构建设置，以及用 #if canImport(Sparkle) 分支自动更新代码的方法。</description>
    </item>
    <item>
      <title>macOS 应用上架 Mac App Store (1): 创建独立构建目标</title>
      <link>https://hobbyworker.me/zh-hans/dev/2026-05-17-distribute-macos-app-mas-1-target-setup/</link>
      <pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/zh-hans/dev/2026-05-17-distribute-macos-app-mas-1-target-setup/</guid>
      <description>将 macOS 应用上架 Mac App Store，需要一个独立于直接分发构建的构建目标，因为 App Store 审核禁止 Sparkle 等自带自动更新机制。本文以示例应用 FocusTimer 为基准，逐步讲解注册 MAS 专用 Bundle ID、在 Xcode 中复制构建目标，以及处理复制操作留下的清理负担的方法。</description>
    </item>
    <item>
      <title>macOS 应用自主分发 (3): 托管更新 Feed 与构建配置</title>
      <link>https://hobbyworker.me/zh-hans/dev/2026-05-16-distribute-macos-app-3-update-hosting-and-build/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/zh-hans/dev/2026-05-16-distribute-macos-app-3-update-hosting-and-build/</guid>
      <description>直接分发的 macOS 应用的自动更新 Feed 必须托管在无需认证即可访问的公开位置。本文以示例应用 FocusTimer 为基准，讲解如何用 GitHub Pages 托管更新仓库、连接到自己控制的自定义域名，并完成 ExportOptions.plist 及应用侧配置，收尾直接分发的全部一次性准备工作。</description>
    </item>
    <item>
      <title>macOS 应用自主分发 (2): 创建 Sparkle 自动更新签名密钥</title>
      <link>https://hobbyworker.me/zh-hans/dev/2026-05-15-distribute-macos-app-2-sparkle-signing-key/</link>
      <pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/zh-hans/dev/2026-05-15-distribute-macos-app-2-sparkle-signing-key/</guid>
      <description>对于直接分发的 macOS 应用，使用 Sparkle 框架实现自动更新已是事实上的标准。本文以示例应用 FocusTimer 为基准，逐步讲解如何生成 Sparkle 用于验证更新文件的 EdDSA 签名密钥、将公钥嵌入应用，以及安全备份和恢复私钥的方法。</description>
    </item>
    <item>
      <title>macOS 应用自主分发 (1): Developer ID 证书与公证准备</title>
      <link>https://hobbyworker.me/zh-hans/dev/2026-05-14-distribute-macos-app-1-developer-id-certificate/</link>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/zh-hans/dev/2026-05-14-distribute-macos-app-1-developer-id-certificate/</guid>
      <description>若要在不经过 Mac App Store 的情况下直接分发 macOS 应用，首先需要配置 Developer ID 证书和公证 (notarization)。本文以示例应用 FocusTimer 为基准，逐步讲解安装命令行工具、申请 Developer ID Application 证书、以及为公证注册 App 专用密码和 notarytool 配置文件等一次性准备工作。</description>
    </item>
  </channel>
</rss>
