macOS Big Sur で「アプリケーションを開く権限がありません」エラーの解決方法
問題の概要
macOS Big Sur (バージョン11) にアップグレード後、一部のアプリケーションが「アプリケーションを開く権限がありません」というエラーで起動できなくなる問題が発生します。この問題は、未知の開発者からのアプリケーションや、特定の条件下でインストールされたアプリケーションで頻繁に発生します。
エラーメッセージの詳細:
Error Domain=NSOSStatusErrorDomain Code=-10826 "kLSNoLaunchPermissionErr: User doesn't have permission to launch the app (managed networks)"
主な原因
この問題には複数の原因が考えられます:
- ゲートキーパーの制限: 未知の開発者からのアプリケーションに対するセキュリティ制限
- 不正なコード署名: アプリケーションの署名が破損または無効になっている
- ファイル権限の問題: アプリケーション内の実行ファイルに適切な権限が設定されていない
- UPX圧縮の問題: UPXで圧縮されたバイナリがBig Surで正常に認識されない
- 環境固有の問題: GitのCRLF改行コードやビルド環境の問題
解決方法
方法1: コード署名の再作成(推奨)
最も効果的な解決策の一つです:
# Xcodeコマンドラインツールのインストール(未インストールの場合)
xcode-select --install
# アプリケーションの再署名
sudo codesign --force --deep --sign - /Applications/アプリ名.app
方法2: 検疫属性の解除
アプリケーションの検疫属性を解除します:
sudo xattr -d -r com.apple.quarantine /Applications/アプリ名.app
方法3: 実行権限の付与
アプリケーション内の実行ファイルに権限を付与します:
sudo chmod +x /Applications/アプリ名.app/Contents/MacOS/実行ファイル名
TIP
実行ファイル名はアプリケーションによって異なります。通常はアプリ名と同じですが、Contents/MacOS
ディレクトリ内を確認してください。
方法4: UPX圧縮の解除(該当する場合)
アプリケーションがUPXで圧縮されている場合:
# UPXのインストール(Homebrewを使用)
brew install upx
# バイナリの圧縮解除
sudo upx -d /Applications/アプリ名.app/Contents/MacOS/実行ファイル名
方法5: 再帰的な権限設定
アプリケーション全体の権限を一括で設定します:
sudo chmod -R 755 /Applications/アプリ名.app
詳細なトラブルシューティング
コード署名の検証
アプリケーションの署名状態を確認するには:
pkgutil --check-signature /Applications/アプリ名.app
署名が無効な場合は、アプリケーションを再インストールすることを検討してください。
ディスクイメージ経由の配布
アプリケーションを配布する場合は、圧縮ファイルではなくディスクイメージ(.dmg)を使用することで、この問題を予防できます。
開発者向けの注意点
アプリケーションを開発している場合:
.gitattributes
ファイルでPLISTファイルがLF改行で処理されるように設定- GitHubでの自動圧縮を避け、ローカルで適切に圧縮してからアップロード
- ビルド環境をクリーンに保つ
予防策
- 信頼できるソースからのみアプリケーションをインストール
- ディスクイメージ経由でのアプリケーション配布
- 定期的な開発者証明書の更新
- アプリケーションの正規のインストーラー使用
WARNING
システムのセキュリティ設定を無効化(SIPやAMFIの無効化など)することは、セキュリティリスクを高めるため、最終手段としてのみ検討してください。
まとめ
macOS Big Surでの「アプリケーションを開く権限がありません」エラーは、主にコード署名とファイル権限に関連する問題です。上記の解決方法を順番に試してみてください。ほとんどの場合、コード署名の再作成と検疫属性の解除で問題は解決します。
アプリケーション開発者の方は、配布方法とビルド環境の見直しで、ユーザーがこの問題に遭遇する可能性を減らすことができます。