ADR-0021 公証の無い配布版は、入れたあとに隔離属性を外してもらう
状況
- ADR-0020 でアドホック署名にし、dmg の中のアプリは
codesign --verify --deep --strict を通るようになった。これで「壊れている」ではなく「開発元を検証できない」扱いになり、システム設定の「このまま開く」から開けると見込んでいた。
- 実際には、macOS 26.5 の Apple silicon の Mac で、Chrome でダウンロードした dmg から「アプリケーション」に入れて開くと、アドホック署名の版でも「“mdslide”は壊れているため開けません」と表示された。選べるのは「ゴミ箱に入れる」と「キャンセル」だけだった。
spctl -a -t exec の判定も理由の無い「rejected」だった。
- 同じアプリの隔離属性を
xattr -dr com.apple.quarantine で外すと、ダブルクリックと同じ open で普段どおり起動した。
- ADR-0020 の見込みは実機で確かめずに立てていた。CI の署名検証で分かるのは署名が壊れていないことまでで、ダウンロードした利用者の Mac での判定は分からない。
決定
- ADR-0020 の 1〜3(アドホック署名、Hardened Runtime を切る、CI で署名を検証する)は続ける。壊れた署名のまま配る理由は無い。
- ADR-0020 の 4 のうち、システム設定の「このまま開く」の案内は取り下げる。初回の開き方は「アプリケーションに入れる」「ターミナルで
xattr -dr com.apple.quarantine /Applications/mdslide.app を実行する」「開く」の順で案内する。
- 「壊れているため開けません」はアプリの破損ではないこと、「ゴミ箱に入れる」を押さないことを案内に書く。
- 配布の手順を変えたら、ブラウザでダウンロードした dmg を実機の Mac で開いて確かめてからリリースする。
結果
- 公証が無い限り、初回だけターミナルでのコマンドが要る。
- 手順を減らす方法(インストール用のコマンド、Developer ID 署名と公証)は別に判断する。
状態
- 2026-09-12 決定。ADR-0020 の 4 と「結果」の見込みを置き換える。