Skip to content

macOS Big Sur で「アプリケーションを開く権限がありません」エラーの解決方法

問題の概要

macOS Big Sur (バージョン11) にアップグレード後、一部のアプリケーションが「アプリケーションを開く権限がありません」というエラーで起動できなくなる問題が発生します。この問題は、未知の開発者からのアプリケーションや、特定の条件下でインストールされたアプリケーションで頻繁に発生します。

エラーメッセージの詳細:

Error Domain=NSOSStatusErrorDomain Code=-10826 "kLSNoLaunchPermissionErr: User doesn't have permission to launch the app (managed networks)"

主な原因

この問題には複数の原因が考えられます:

  1. ゲートキーパーの制限: 未知の開発者からのアプリケーションに対するセキュリティ制限
  2. 不正なコード署名: アプリケーションの署名が破損または無効になっている
  3. ファイル権限の問題: アプリケーション内の実行ファイルに適切な権限が設定されていない
  4. UPX圧縮の問題: UPXで圧縮されたバイナリがBig Surで正常に認識されない
  5. 環境固有の問題: GitのCRLF改行コードやビルド環境の問題

解決方法

方法1: コード署名の再作成(推奨)

最も効果的な解決策の一つです:

bash
# Xcodeコマンドラインツールのインストール(未インストールの場合)
xcode-select --install

# アプリケーションの再署名
sudo codesign --force --deep --sign - /Applications/アプリ名.app

方法2: 検疫属性の解除

アプリケーションの検疫属性を解除します:

bash
sudo xattr -d -r com.apple.quarantine /Applications/アプリ名.app

方法3: 実行権限の付与

アプリケーション内の実行ファイルに権限を付与します:

bash
sudo chmod +x /Applications/アプリ名.app/Contents/MacOS/実行ファイル名

TIP

実行ファイル名はアプリケーションによって異なります。通常はアプリ名と同じですが、Contents/MacOSディレクトリ内を確認してください。

方法4: UPX圧縮の解除(該当する場合)

アプリケーションがUPXで圧縮されている場合:

bash
# UPXのインストール(Homebrewを使用)
brew install upx

# バイナリの圧縮解除
sudo upx -d /Applications/アプリ名.app/Contents/MacOS/実行ファイル名

方法5: 再帰的な権限設定

アプリケーション全体の権限を一括で設定します:

bash
sudo chmod -R 755 /Applications/アプリ名.app

詳細なトラブルシューティング

コード署名の検証

アプリケーションの署名状態を確認するには:

bash
pkgutil --check-signature /Applications/アプリ名.app

署名が無効な場合は、アプリケーションを再インストールすることを検討してください。

ディスクイメージ経由の配布

アプリケーションを配布する場合は、圧縮ファイルではなくディスクイメージ(.dmg)を使用することで、この問題を予防できます。

開発者向けの注意点

アプリケーションを開発している場合:

  • .gitattributesファイルでPLISTファイルがLF改行で処理されるように設定
  • GitHubでの自動圧縮を避け、ローカルで適切に圧縮してからアップロード
  • ビルド環境をクリーンに保つ

予防策

  1. 信頼できるソースからのみアプリケーションをインストール
  2. ディスクイメージ経由でのアプリケーション配布
  3. 定期的な開発者証明書の更新
  4. アプリケーションの正規のインストーラー使用

WARNING

システムのセキュリティ設定を無効化(SIPやAMFIの無効化など)することは、セキュリティリスクを高めるため、最終手段としてのみ検討してください。

まとめ

macOS Big Surでの「アプリケーションを開く権限がありません」エラーは、主にコード署名とファイル権限に関連する問題です。上記の解決方法を順番に試してみてください。ほとんどの場合、コード署名の再作成と検疫属性の解除で問題は解決します。

アプリケーション開発者の方は、配布方法とビルド環境の見直しで、ユーザーがこの問題に遭遇する可能性を減らすことができます。