作成したスタンドアロンアプリケーションのインストーラが他のマシンで開けない
78 次查看(过去 30 天)
显示 更早的评论
App Designerで作ったアプリをスタンドアロンデスクトップアプリケーションとして他の人(MATLABを持っているとは限らない)に配布し使ってもらうことを考えています。
App Designerでアプリを作成した後、 https://jp.mathworks.com/help/matlab/creating_guis/app-sharing.html や https://jp.mathworks.com/matlabcentral/answers/1928010-how-do-i-deploy-an-app-designer-application-to-a-standalone-desktop-app や https://jp.mathworks.com/help/compiler/create-standalone-app-using-application-compiler-app.html 等に従い、「Desginer」タブの「Share」の「Standalone Desktop App」を押してApplication Compilerを開き、「PACKAGING OPTIONS」欄の「Runtime included in package」を選択した上で、「PACKAGE」欄の「Package」を押してパッケージ化しました。
https://jp.mathworks.com/help/compiler/files-generated-after-packaging-application-compiler.html やhttps://jp.mathworks.com/matlabcentral/answers/1959629-matlab-runtime 等によると、生成される三つのフォルダのうち「for_redistribution」フォルダを渡せば良いようなので、他の人にこれを渡して中の「MyAppInstaller_mcr.app」を開いてもらおうとしたのですが、「アプリケーション"MyAppInstaller_mcr.app"を開けません。」というダイアログボックスが表示され開くことができませんでした。ちなみにフォルダごとではなく「MyAppInstaller_mcr.app」そのものを渡しても同様でした。
・どこに問題の原因がありそうでしょうか?
・MATLAB関連のソフトウェアが導入済みかどうかにかかわらず、このMyAppInstaller_mcr.appを無事に開くことができれば、MATLAB Runtimeが(入っていない場合には)インストールされてスタンドアロンアプリが動かせるようになるというのが、本来期待される動作だと理解しています。そもそもこの理解は正しいでしょうか?
環境は以下の通りです。
・スタンドアロンアプリを作成しMyAppInstaller_mcr.appを生成した環境:Apple M2、macOS 14.4.1、MATLAB 24.2.0.2740171 (R2024b) Update 1 (※ちなみに同じマシン上でMATLAB 2023bを使った場合でも同様であることを確認済みです。)
・MyAppInstaller_mcr.appを開いてもらうとした環境:Apple M2、macOS 14.5
よろしくお願いいたします。
0 个评论
回答(1 个)
Kojiro Saito
2024-11-11,4:38
.appを開けないというメッセージで、かつ「開発元を検証できないため開けません」のエラーではなさそうなので、ファイルアクセス権限の問題が考えられます。
該当のMacでターミナルを起動し、MyAppInstaller_mcr.appがあるディレクトリのファイル権限を確認してみてください。例えばデスクトップにファイルを置いている場合は下記のように確認できます。
ls -l ~/Desktop
または
ls -l ~/Desktop/for_redistribution
出力が「-rw-r--r--」のようになっていたら、実行権限(x)がないので「chmod +x」で追加します。
chmod +x MyAppInstaller_mcr.app
MyAppInstaller_mcr.appはパッケージ化したアプリとMATLAB Runtimeをインストールするインストーラーですので、これが開けてインストールができればアプリを実行できるようになります。
3 个评论
Kojiro Saito
2024-11-12,0:10
1. ファイル共有サービス経由のダウンロードで、フォルダー内のパーミッションが変わってしまったためと思われます。
libmwsafe_env.dylibのロードエラーについては、インストール時に格納されるシェルスクリプトを実行することで解消すると思います。/Applications/アプリ名/application/の中に「run_アプリ名.sh」というファイルが置かれるので、
./run_xxx.sh /Applications/MATLAB/MATLAB_Runtime/R2024b 引数1 引数2
のようにシェルスクリプト経由で実行してみてください。
2.生成したアプリの共有方法については公式ドキュメントは見つかりませんでした。
3.MATLAB CompilerではOSのマイナーバージョンまで合わせる必要はないのですが、少なくともAppleシリコン (Arm64)とIntel CPUではMATLAB Runtimeのソフトウェアが別になるので、現在のようにRuntimeをパッケージに含める方法ではうまくいかないと思います。
パッケージ化する際にMATLAB RuntimeをWebからインストールするデフォルトの設定にして作成されるインストーラー (MyAppInstaller_web.app)をIntel CPUのMacに配布してみてください。
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 ビッグ データの処理 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!