問題タブ [app-bundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Mac の Java Swing アプリが起動しない
netbeans でアプリを作成し、プロジェクトをビルドして jar ファイルを作成しました。jar ファイルをダブルクリックすると、問題なくアプリが起動します。appbundlerを使用してアプリをパッケージ化し ました。ここからのすべての指示に従います。
コマンドを発行するant bundle-filemanager
と、ディレクトリに FileManager.app が表示されdist
ます。ここにbuild.xmlがあります
FileManager.app をダブルクリックしても起動しません。ドックにアイコンを表示するだけで、ドックから消えます。
ソースコードはこちらからもご覧いただけます
java - Apple の新しい Java 6 for Mavericks などに jar をバンドルする方法は?
Mac OS X 上の Java は、大きな頭痛の種でした。
Apple はまず、Java リリースを Oracle に引き継ぐことを明らかにしました。Oracle は、Java 7 と、jar (およびネイティブ) をパッケージ化するためのAppBundler Ant タスクのみを提供しました。
ああ、そして Apple は、App Store への提出物は JRE 全体 (60MB 以上) をコピーする AppBundler 機能を使用するよう主張し始めました。うわぁ!歯を磨いて、ブロートウェアの時流に参加する以外に何もすることはありません...
魔法のように、今では Mavericks 用の JRE 6 があります (2013 年 10 月に公開されましたが、Apple が Java サポートが終了したと言っていたので注意を払っていませんでした)。JRE 6 のパッケージ化ツールは古いJarBundler Ant Task であり、JRE のバンドルへのコピーをサポートしていません。
ここで質問があります。JRE 6 互換のバンドル ツールではできない場合に、JRE をアプリにパッケージ化するという新しい App Store の標準を満たすにはどうすればよいでしょうか。
注意: JarBundler は、Appleバイナリを使用JavaApplicationStub
して JVM を呼び出します。アプリ バンドル内の JVM をスタブで検索することは不可能でしょうか? これに関するドキュメントが見つかりません。
FWIW、JRE 6 が必要なのは、フットプリントが小さい (約半分のサイズ) だけでなく、JOGL (OpenGL Java バインディング) が 6 未満ではうまく機能し、7 未満では使用できないためです。ちなみに、誰が素晴らしいですか) まだ (1 年以上経っても) 完全に解決していません。
xcode - OSX App Bundle が起動しない
Mac OSX アプリ バンドルに問題があります。アプリバンドルを実行したい場合、何も起こりません (ダブルクリックmyApp.app
)。
./myApp.app/Contents/MacOS/myApp
実行することで問題なくアプリを実行できます。
ディレクトリ構造:
私のInfo.plist
:
編集:
Console.app の結果:
macos - C バイナリを Mac OS X アプリケーション バンドルにパッケージ化する
最小限のアプリ バンドルにバイナリをパッケージ化しようとしています。しかし、結果に奇妙な動作が見られます。
私のバンドルには、次の最小限の構造があります。
helloworld は、以下からコンパイルされた C バイナリです。
Info.plist には以下が含まれます。
次に、奇妙な動作について説明します。私が走るとき
コマンドは約 30 秒間ハングします。その後、helloworld バイナリが実行されていることを確認できます。ただし、その標準出力は Console.app に表示されません。このバンドルをプログラムで起動すると (NSWorkspace sharedWorkspace] launchApplicationAtURL...)、呼び出しは成功しますが、バイナリはすぐに終了します (コンソールで、エラー コード 2 で終了したことを確認できます)。
これは OS X 10.9.2 上にあります。
私は何を間違っていますか?
objective-c - アプリ バンドルにパッケージ化されたシェル スクリプトをどのように参照しますか?
与えられた 2 つのスクリプト
foo.sh
bar.sh
.app バンドルの/Contents/Resourcesの下にコピーされます。ここで、 foo.sh
#!/bin/bash
. ./bar.sh
エコー $1
のエラーが発生します
そのようなファイル、又はディレクトリはありません
スクリプトがbar.shのソースを取得しようとする行
bar.shを相対的に参照する方法はありますか?
一連の bash スクリプトを .app にバンドルする別の方法はありますか?
java - Ant Mac OS X Appbundler の現在のディレクトリ パスの問題
Java アプリケーションを Mac OS X アプリ バンドルにコンパイルしようとしています。次の設定を追加して、現在の作業ディレクトリを設定します。
Contents/Resources/ に config ディレクトリがあります。
それを実行すると、次の奇妙な動作が発生します。
new File("config/").exists()
false を返します
new File("config/").getAbsolutePath()
/path/to/bundled/app/MyApp.app/Contents/Resources/config を返します
new File("config/").getAbsoluteFile().exists()
true を返します
なぜこれが起こるのかわかりません。コードのどこにでも getAbsoluteFile() を追加したくないのです。
これについて何か考えはありますか?
(注: Oracle JDK 8 を使用しています)
ios - 独自のサーバーから iOS アプリの追加コンテンツを保存してアクセスする場所
自分のサーバーから iOS アプリにダウンロードされた追加コンテンツのストレージとアクセスについて、よくわからないことを理解しようとしています。明らかにこれは可能です。自分のサーバーからのコンテンツのダウンロードというセクションを参照してください。領収書の処理方法とサーバーへの呼び出し方法を理解しています。理解されていないのは次のとおりです。
- サーバーからダウンロードを開始するとき、ダウンロードに必要なファイルの種類は何ですか? それは私が望むものでありえますか?
- アプリバンドルの更新が許可されていないことを考慮して、デバイスのどこに保存する必要がありますか?
- アプリはどのようにデータにアクセスしますか?
最も単純なケースでは、xml または json ファイルを配信しているとします。上記のほとんどは次のように機能すると思います。ファイルをドキュメント ディレクトリに保存し、アプリでファイルパスを使用してデータにアクセスして読み込みます。
しかし、アプリ バンドル内の他のリソースにアクセスできるのと同じように、アクセスできる必要がある画像やその他のデータを含む、より複雑なものである場合はどうなるでしょうか?
私にとって明確でないことの核心は、どのタイプのデータを配信できるか、それが私が望むものである場合 (そうであると推測します)、データタイプを完全に制御できるかどうか、このデータコンテンツをどこにどのように保存するかです。アプリがこのデータに可能な限りシームレスにアクセスできるようにすることはできますか? 具体的な例として、私がゲームを作成しているとします。最初のレベルはアプリ バンドルに含まれており、自分のサーバーを介して 2 番目のレベルを配信しています。アプリ バンドルのレベルと同じ方法でそのレベルをロードできますか?
私が指摘できるリンクやドキュメントがあれば参考になりますが、まだ何も見つけていません。通常のプログラムでは好きなことを何でもできるので、おそらく最も混乱しているのはアプリバンドルの概念です。はそれほど明確ではありません。
java - OS X Gatekeeper 用のコード署名 Java アプリ
Java アプリケーションを OS X ユーザーに配布しようとしています。私は Mac ストアを使用していません。自分の Web サイトから配布する予定です。何を試しても、OS X の Gatekeeper はアプリを拒否します。
これが私の方法です:
(1) 通常どおりアプリをビルドし、JAR ファイルを取得します
(2) https://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.htmlappbundler
の説明に従って使用します。これにより、JAR の周りに .app が作成され、うまく動作し、ディレクトリに JVM が含まれます。MyApp.app/Contents/PlugIns
(3) 開発者証明書でアプリに署名します。
codesign -s 'Developer ID Application: MyCompany Ltd' --deep MyApp.app
...プロセスは正常に完了しました
(4) .app が Gatekeeper の鉄則に準拠していることを確認します。
spctl --assess --verbose=4 --type execute MyApp.app
...そして、返される結果は次のとおりです。
私にはあまり冗長に見えません!私は何が間違っているのでしょうか?または、どうすればより多くの情報を入手できますか?
「封印されたリソース...」に関するSO / Google検索は、署名フレームワーク(私が持っていない)を参照するか、--force
オプションを使用して署名することを提案します(試しましたが機能しません)。