世界を動かす技術を、日本語で。

Macソフトウェアの配布が私のコルチゾールレベルを上昇させている

概要

  • Claude Code プロファイル管理用のシンプルなユーティリティをGo言語で開発
  • 配布・署名 に関する各OSの課題とApple Developer Programの高額なコスト
  • 本人確認や署名の手続き の煩雑さやユーザー体験の悪さを指摘
  • WindowsやAzure など他プラットフォームでも同様の問題点
  • 現状のコード署名業界の高コスト と非効率性への不満

Claude Codeプロファイル管理ユーティリティ公開と配布

  • 開発目的 :Claude CodeプロファイルをDeepSeekやOpenRouterモデルと連携しやすくするユーティリティの提供
  • 配布方法 :ccode.kronis.devやItch.ioで初回リリース、バイナリ配布やソースコード公開
  • Go言語の利点 :クロスプラットフォームな静的実行ファイル生成が容易
  • 配布状況
    • Linux:chmod +xで簡単に実行可能
    • Windows:.exe生成可能だがSmartScreenの警告あり、ユーザーが回避可能
    • macOS:ダウンロードソフトに対するクアランティン(隔離)機能が強制される

macOSでの配布とApple Developer Programの課題

  • macOSの課題 :署名されていないバイナリは隔離され、ターミナルで回避操作が必要
  • ユーザー体験の悪化 :一般ユーザー向けには煩雑な手順
  • Apple Developer Programのコスト :年額費用が高額、個人開発者や趣味開発者には負担
  • 収益構造の問題
    • Itch.ioの「Pay What You Want」モデルでは多くが無料利用
    • 手数料やVATを差し引くと開発者の手元に残る金額が非常に少ない
  • Appleのエコシステム批判
    • macOS/iOSアプリ開発にはMacが必須
    • 署名や配布に高コストと煩雑な手続きが必要

Appleの本人確認プロセスの煩雑さ

  • 本人確認方法 :MacBookのWebカメラでID撮影が必須
  • 問題点
    • 照明やカメラ性能によって認証失敗が多発
    • iPhoneアプリでの認証はスムーズだが、iPhone未所持者には不利
    • 書類のスキャンアップロードが不可
  • 手続きの不親切さ
    • 何度も最初からやり直しが必要
    • 登録後も反映遅延や不明瞭なステータス表示

Appleエコシステムへの不満

  • ハードウェア評価 :MシリーズチップやiPhone SEなどは高評価
  • ユーザー体験の課題
    • ソフトウェアカスタマイズの制限
    • 独特なUI・ショートカットの仕様
    • ベンダーロックインによる開発・配布の自由度低下
    • 必要以上のコスト負担と不便な仕組み

Windows・Azureなど他プラットフォームの署名事情

  • Windowsコード署名 :Certumなどで年額200ユーロ以上、個人には高額
  • Azure Artifact Signing :月額8.54ユーロの安価プランも、EUでは法人限定
  • 業界全体の課題
    • TLS証明書時代の高額化と同様の「囲い込み」状態
    • 競争や代替手段の不足による価格高止まり
    • 公的IDカードなどによる簡易署名の普及が望ましい

まとめと提案

  • 現状のコード署名の仕組み :高コスト・煩雑・非効率
  • 開発者・小規模プロジェクトへの負担増大
  • 公的IDやデジタル署名の活用 による簡易・低コストな認証インフラの必要性
  • 大手企業の独占構造や高コスト体質への強い批判

Hackerたちの意見

Gatekeeperが嫌なユーザーは、ターミナルでこれを実行すれば10秒でオフにできるよ:sudo spctl —-master-disable 「いや、それは大きすぎるハンマーだ、安全じゃない…」って言う人もいるけど、じゃあ実際に何が欲しいの? Gatekeeperを維持したいなら、その摩擦が好きってことだし、嫌ならオフにすればいい。どっちか選んでよ、両方は無理だから!もちろん、開発者がユーザーの選択を代わりにすることはできないけど…それが正しいことじゃない? ユーザーが自分のマシンで実行できるコードを決めるべきだよね。デフォルト設定は制限的だけど、ちゃんと理解してる人なら簡単に変更できるし。追記:ちなみに、iOSでは署名されてないソフトウェアをインストールする方法は全くないし、Android(もうすぐ)ではそのプロセスが10秒じゃなくて24時間かかるんだ。これって実際におかしいよね、ユーザーの選択肢を奪ってるから。追記の追記:はっきり言うと、現代のmacOSにはオフにできない他の制限がたくさんあって、それがすごくイライラする。Gatekeeperはその中には入ってないけどね。編集:Sequoiaからは、ターミナルコマンドを実行した後に設定でボックスにチェックを入れなきゃいけないことを知った。だから、10秒じゃなくて30秒かかるかも。それはちょっと面倒だけど、まあ大したことじゃないかな。

「完了」と「ゴミ箱に移動」のオプションだけじゃなくて、毎回手動でシステム設定に入らなくても実行できるオプションが欲しいんだけど、セキュリティ機能を無効にせずにね?追加の摩擦は、開発者にAppleに年会費を払わせるための方法に感じる。安全性を助けてるとは言わないけど、前者に偏ってる気がする。

10秒でも30秒でも、エンドユーザーにとっては面倒すぎるよ。実際、Macで開発してるけど、趣味やオープンソースプロジェクトのターゲットシステムとしてAppleはもう諦めた。隔離、コード署名、ノータライズ(年99ドルが必要)など、もう価値がないと思う。Appleユーザーには良いかもしれないけど、もうこのプラットフォームに配布するのは面倒だからやめる。macOSは徐々にWindowsみたいになってきて、クリーンインストールしたら、ユーザーが自分のコンピュータを実際にコントロールするために、いろんな不要なソフトウェアをオフにしなきゃいけない。

ユーザーが自分のマシンでどのコードを実行できるかを決めるべきなのに、Appleはそれに反対して、自分たちが決めるんだよね。普通のユーザーは、非認証アプリを有効にするための隠れた5ステッププロセスなんて見つけられないし、Appleもそれを分かってる。Gatekeeperって名前は適切だよね。ユーザー自身がゲートの外にいるんだから。これは、StallmanやFSFが何十年も前から警告してきたことの集大成だよ。この論理で言うと、安全のためにリビングに警察官を配置しなきゃいけないってことになる。

これは開発者が自分のコンピュータで何のソフトウェアを実行するかを選ぶことじゃなくて、Appleがあなたのために選んで、あなたはその後に保護を無効にしなきゃいけないってことだよね(どんな影響があるのか?)。これは誰かを守るためじゃなくて、普通の人たちをApp Storeから逸れさせないための怖いダイアログを出してるだけだよ。技術に詳しくないユーザーは、ターミナルでこれを回避しようとはしないだろうし、Appleが30%の手数料と分析データを集められるApp Storeに戻るだけだよ。

何が本当に欲しいの? 自分が信じるものを選ぶ権利をくれよ。“Appleを信じるか、自分以外の誰も信じないか、あるいは文字通り誰でも信じるか”ってのは、明らかに誠実な実装じゃないよね。Appleは、誤った混同や二項対立を使って話を誘導するのが得意だから、セキュアブートの議論がどうなったかも思い出してほしい。Appleはうまく「Appleが暗号鍵を持っている」vs「暗号なし」に話を持っていって、みんな「なんで自分のデバイスの鍵を持てないの?」って疑問を忘れちゃったんだよね。

これが正しい方法だとは思わないな。正しい方法は、Appleが無料のアプリで、アプリ内課金がない場合に限って、無料の開発者IDを配布することだと思う。これなら、良いリリースプラクティスを守りつつ、全体的に好意的な印象を与えられると思う。

何が本当に欲しいの? 大金を払わずにゲートキーパーを喜ばせて、Appleのハードウェアを持つこと?

何が本当に欲しいの? UIオプションがあれば理にかなうよ。ほとんどのユーザーがそれに慣れてるからね。

何がしたいの? アプリを右クリックして「開く」を選んで、認証ダイアログでプログラムを実行できるようにしたいんだ。前はできたのに、Appleがそれをなくしちゃって、毎回システム設定に行かなきゃいけないのが本当に面倒くさい。

Linuxはchmod +xが必要だから許されるのに、MacOSでxattrを実行しなきゃいけないのはブログ記事にするほどの文句になるの?真面目な質問だけど、Windows 11は本当に警告なしで信頼されていない.exeを実行するの?

設定を変更すれば全く実行できないようにもできるけど、初期設定では3回クリックさせられるメッセージが出る。知識が浅い人には十分に怖がらせる内容だよね。もちろん、それを全部オフにすることもできるけど。

デフォルトではWindows 11は信頼されていない.exe/PEファイルを実行しないよ。Microsoft Defender SmartScreenが管理していて、ポップアップで人を怖がらせるから、以前にやったことがないとプログラムを実行するのは直感的じゃない。

主な違いは、LinuxではGUIでできることだね。ユーザーに「プログラムとしてファイルを実行する」をクリックさせるのは、xattrのような難解なCLIコマンドよりもずっと説明しやすいし、納得させやすいよ。

ちょっと脱線するけど、Gatekeeperがソフトウェアの名前として素晴らしい選択肢の一例だってことに感謝するようになった。

20年間、インディーとしてMacとPCのソフトウェアを開発してきた。投稿者に共感するよ。Appleは、彼らのプラットフォームでアプリを開発させてくれることに感謝すべきだと思ってる感じがする。投稿者はAppleの後方互換性への軽蔑について触れてないけど、Appleは定期的に開発者システムを一掃するのが好きだよね。10年前に開発したアプリを最新のmacOSで動かそうとすると、多分動かないよ。Microsoftは後方互換性がずっと優れていて、開発者プログラムに参加させられることもない。でも、Windowsの認証コードデジタル証明書を更新するたびに、完全にボッタクリにあう。デジタル証明書だけで年99ドル以上かかるからね。完全に詐欺だよ。

Appleの後方互換性への軽蔑 これは完全に正しいね。AppleはABIやAPIの安定性を維持する代わりに、毎年新しいiOSバージョンで既存のアプリが壊れないように、数千の開発者にメンテナンスの負担を押し付けている。これにかかる時間は、バグ修正や機能追加、新しいアプリの開発に使えるはずなのに。安定性があれば、エコシステム全体に大きな利益をもたらすのに、なんか間違ったトレードオフだよね。Appleはアプリが死ぬことを望んでいるみたいだけど、アプリのキュレーションはまだ信頼できるアプローチだと思う。ほとんどのiOSアプリはゲームだけど、他のゲームプラットフォームと比べると、iOSの開発者は毎年ゲームを更新し続けないといけないのが大変だよね。(AppleがiOSとmacOSで32ビットゲームを殺すのを喜んでたのも忘れちゃいけないし、64ビットに移行されなかったゲームも多い。)2004年から2020年までの間に、Nintendo DS/DSi/3DSのような他の携帯ゲームプラットフォームでは、ゲームが主要なハードウェアの改訂やファームウェアの改訂を経ても動き続けていたのに対して、Switchでは2017年以降、Switch 1と2の間でゲームが一般的に動いているのが対照的だね。

正直、後方互換性がないのは支持するな。大手企業のアプリの多くがまだIntelベースで、パフォーマンスを無駄にしてるから。Rosettaが廃止されると、やっと変わるだろうね。オープンソースのアプリはすべてネイティブだし。

ちなみに、Microsoft Storeを通じて無料で出荷できて、署名の費用もかからないよ。

著者のフラストレーションに共感したよ。エンドユーザーにバイナリを配布する方法を考えるのが大変だったから、どうやってやるかを詳しく説明したガイドを書いたんだ。Appleのドキュメントは驚くほどひどくて、ブログ記事も見つからなかったから、試行錯誤で何がうまくいくかを逆アセンブルして、GitHubの人気OSSプロジェクトを参考にしたよ。

自分もいくつかメモを書いたよ。ちょっと古いけど、まだ役に立つかもね。 https://successfulsoftware.net/2018/11/16/how-to-notarize-yo... https://successfulsoftware.net/2023/04/28/moving-from-altool...

著者です。記事にちょっとした更新を加えたよ。正直言うと、Certumや他のプロバイダーの価格と比べると、Windows用に何かに署名したい時、Appleが特別に高いわけではないかも(どこもそんな感じだし)。Windows関連をもっと調べてみたら、Azure Artifact Signingが月8.54ユーロで手頃らしいけど、残念ながらEUの個人ユーザーにはサポートがないんだ(アメリカとカナダだけで、EUは組織向けのサポートしか受けられない)。ここでSIA(Ltd.の相当)を設立しなきゃいけないかも - それは後で考えてたことだけど、Azureを使うにはちょっとした障害になってる。私のトーンはフラストレーションがあったかもしれないけど、コード署名業界には「Let's Encrypt」のような瞬間が必要だと思う - 少なくともAzure Artifact Signingがやろうとしていたように、個々の開発者向けに、すべてのプラットフォームでコモディティ化してほしい!残念ながら、プラットフォームが意図的に壁を作っていると、そういうのは無理みたい。コード署名のアイデア自体は嫌いじゃないけど、うまくやればいいアイデアだと思う。多くのウェブサイトのTLSと同じようにね。

公平に考えないで。ついにAppleの開発者アカウントに登録したけど、数週間かかったんだ。多分、運転免許証のアップロードが受け付けられなかったのは、(Appleの)電話のカメラの光がホログラムに当たって反射してたからだと思う。それで、申請プロセスを(Appleの)ノートパソコンに移して試したら、そこから溝にはまっちゃった。どうやら、同じ書類を使ってるのに、競合する2つの申請に分かれちゃったみたい。一つは成功したようだけど、もう一つは失敗したっぽい。良い点は、彼らが私のお金を取ったこと。悪い点は、買ったものをもらえなくて、個人情報を再アップロードするのに数週間かかったこと。結局、私が作ったコードをiPhoneに入れるために、こんなことをしなきゃいけなかったんだ。

Windows SmartScreenにアプリがブロックされないようにするには、拡張検証コード署名証明書を追加で購入する必要があるよ。普通のコード署名証明書じゃ足りないからね。これについての8年前のStack Overflowの議論を見てみて。

「Microsoft SmartScreenの警告を即座に、かつ永久に取り除く確実な方法は、Microsoftが承認した証明書発行機関(CA)から“拡張検証”(EV)コード署名証明書を購入し、そのEV証明書でアプリに署名することです。こういったEV証明書は、通常年間300ドルから700ドルくらいかかるので、価格を比較した方がいいよ。そして、登録されたビジネスにのみ発行されるから、もし個人開発者なら、個人事業主でアクティブなビジネスライセンスを持っている必要があるよ。」

オープンソースや開発全般に関心がある人がこれを見て「これが使いたいOSだ!」って思うのが理解できない。なんでそんなに多くの開発者が薄っぺらいノートパソコンのために妥協できるのか、全く分からないよ。

薄さじゃなくて、素晴らしいバッテリー寿命がポイントだね。

薄いだけじゃないよ:静かで速くて、最高のトラックパッドがあって、合理的なキーボード(タッチバーを出してエスケープキーを削除したあの愚かな決定を除けば)もレイアウトがあまり変わらないし、すべての電源状態が毎回正しく動作する。これについては、友達の中で一番頑固な人間だと思うけど、パンデミック中にデスクトップを数年使った後、次の5年間はMacのラップトップを避けてたんだ。それは本当に最悪だった。新しいM5 MacBook Airが実際にはウェブブラウジングのタスクで速くて、しかも(なんか変だけど)自分が最近完成させたモンスターの現代Xeonビルドに対しても競争力があると気づいて、ついに折れたんだ。しかもファンもないし!私にとってはもう終わったよ:Appleは画面の品質を除いてすべてに勝ったと思う(今はOLEDにハマっちゃってて、ノートパソコンにタッチスクリーンがないというAppleの立場には根本的に反対だし、子供たちと過ごす時間が増えた今、その姿勢はますます強まってる)。

ユーザーとしては、実際にGatekeeperが好きなんだ。95%の時間は問題ないし、残りの5%の時は設定で未署名コードを許可するボタンをクリックすればいいだけ。少なくとも、ソースについて考える時間をくれるし、本当に信頼できるかどうかも考えさせられる(その95%の時間はAppleに任せてるけど)。無料のビジネスアイデア:Appleの開発者アカウントを取得して、他の人のためにコードに署名することで、少しの収入をもらうってのはどう?まだそんなのないのが驚きなんだけど(あるのかな?)。

もしこれがすでに開発者アカウントの利用規約違反じゃないなら、すぐにでもそうなるだろうね。このダイアログは、普通の非技術的なユーザー(Appleの主要市場)がApp Storeから逸れないようにするためのものだよ。彼らはあなたを守ってるんじゃなくて、あなたを誘導してるんだ。

1年前は君に賛成してたけど、今日は逆の立場を取るよ。今はソフトウェアに埋め込まれている悪意のあるコードの量が指数的に増えてるからね。確かにこれは、悪意のあるソフトウェアもそうでないソフトウェアにも課せられる痛い税金だけど、より良いシステムが見つかるまで、このシステムは実際に一部の悪意のある行為者を諦めさせると思う。特に料金を払わなきゃいけないからね。Macユーザーとしては、開発者がこのソフトウェアを提供するためにかなりの料金を支払ったかどうか知りたい。それが自分にとって有用なサインなんだ。もし支払っていなくて、パスポートもアップロードしていなかったら、このソフトを使うリスクについて真剣に考えなきゃいけないと思う。

サイン済みで公証されたソフトウェアがユーザーを攻撃したケースはたくさんあるよ。

悪意のある行為者は簡単に料金を払えるよ。彼らはビジネスを運営しているか、国家の関係者として働いているからね。

うわぁ。昨日このID確認プロセスを通ったけど、8回目くらいでやっと成功したよ。本当にひどいデザインだね。今は、ランダムな第三者と書類のやり取りをして、LLCに関連付けられたアカウントを取得しようとしてる。ソフトウェアを書いて配布できるのは素晴らしいことだけど、iOSの独占があるから、どうすることもできないよね。