FAQ・トラブルシューティング
よくある質問と、いままさに直面しているであろうエラーについて。
「古いノート PC では動いたのに、新しいマシンで protect/run が失敗する」
デフォルトでは、暗号化された成果物は、それを作成したマシンに固定されます — 別のマシンに移しても、固定は一緒には移動しません。新しいマシンを有効化し(次回の protect/build で自動的に行われます)、そこから再度暗号化してください。事前に管理下にない複数のマシンで 1 つの成果物を実行する必要がある場合は、代わりにポータブル形式の成果物を使ってください — 詳しくはコードの暗号化を参照してください。
「成果物を作ったのと同じマシンなのに VaultLockedError になる」
これは、マシンの識別情報が別のデバイスに見えるほど変化した(大規模な OS の再インストール、一部の仮想化/クローン環境など)か、ローカルのボルトファイルが移動または改変されたか、のいずれかを意味します。MagicLock がどちらなのかを教えられない理由についてはセキュリティモデルを参照してください。マシンを再プロビジョニングするには magiclock activate を再実行してください。
「SDK をインストールせずに .pya を実行できますか?」
実行する(magiclock run app.pya)ためには magiclock のインストールが必要ですが、それ以上は何も要りません。アカウントもログインもネットワークも不要です。出荷したアプリを実行する相手は、あなたとの間にアカウントを持つ必要はなく、パッケージがインストールされていれば十分です。
「Python 3.12 でビルドした .pya が 3.13 で読み込めない」
想定どおりの動作です — 詳しくはAPI リファレンスの互換性に関する注意を参照してください。1 つの成果物を複数の Python バージョンにまたがって使い回すのではなく、新しいインタプリタのバージョンで protect/build を再実行してください。
「サブスクリプションが失効すると、すでに出荷済みのアプリはどうなりますか?」
更新するまで新規の暗号化は行えなくなります — magiclock protect/build はサブスクリプションエラーで失敗します。すでに生成・出荷済みの成果物は、これまでどおり復号・実行され続けます。復号がサブスクリプションの状態を確認することは一切ありません。詳しくはアカウントと有効化を参照してください。
「紛失した、または退役させたマシンをどう解除すればよいですか?」
magiclock deactivate # run on the machine itself, or via the account portalこれによりシートが解放され、そのマシンがあなたのアカウントの下で新たに何かを暗号化することができなくなります。そのマシンがすでに生成した成果物には影響しません — 理由についてはアカウントと有効化を参照してください。
「CI が NotLoggedInError / NotActivatedError で失敗する」
対話的なブラウザサインインは、ヘッドレスなランナー上では機能しません。アカウントポータルでトークンを発行し、非対話的に渡してください。
export MAGICLOCK_TOKEN=<token-from-your-account-portal>
magiclock protect app.py詳しくはアカウントと有効化を参照してください。
「ネットワークが全くない状態で protect/build が失敗する」
直近の確認成功から 12 時間の猶予枠があり、それを過ぎるまで暗号化はブロックされません — 詳しくはアカウントと有効化の表を参照してください。一度もオンラインでの有効化に成功していない場合、頼れる猶予はありません。一度だけ接続して猶予を確立してください。
それでも解決しない場合
失敗しているコマンドに --help を付けて再実行すると、利用可能な正確なフラグが確認できます(magiclock protect --help など)。それでも解決しない場合は、アカウントポータルのサポート窓口からお問い合わせください。