Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

02.10.2024

Опублікував pbcopy-chromium; Swift Package Manager

Нарешті дійшли руки опублікувати мою утиліту для копіювання з Obsidian Canvas. Тепер вона доступна на GitHub. Трохи деталей про публікацію, бо це мій перший проєкт з відкритим кодом на Swift.

До того я збирав та запускав проєкт в XCode. А потім скопіював виконуваний файл собі в каталог скриптів — все працювало добра. (Взагалі, попри те, що застосунки macOS мають розширення .app та є текою, а не файлом — всередині кожного все одно сидить виконуваний файл.)

Але для публікації хотілося щось чистіше. Знайшов оцю статтю. Стаття раптом відкрила для мене цілий новий тулчейн. Бо, як виявляється, XCode мені абсолютно не потрібний для цієї задачі — достатньо оголосити конфігурацією файлом Package.swift та збирати командою swift. Ось так, давно про це думав та несподівано перейшов до “відкритого” тулчейну, яким можна будувати й інші невеличкі утиліти.

Залишався тільки один нюанс: щоб програма для macOS під час запуску не викликала застережень, її необхідно підписати, тобто нотаризувати. На це теж знайшов [статтю](Build a notarized package with a Swift Package Manager executable – Scripting OS X) та з нею команду codesign. Теж нічого складного. Хоча в мене вже був сертифікат, який був отриманий через XCode.

Додам, що в мене була спочатку ідея робити все це на CI, але саме необхідність підпису змусила відмовитись. Та ще те, що нема сенсу автоматизувати збірку, яку я в кращому випадку робитиму раз на декілька місяців.