问题标签 [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.

0 投票
0 回答
213 浏览

java - Mac 中的 Java swing 应用程序无法启动

我在 netbeans 中制作了一个应用程序并构建了我的项目以创建一个 jar 文件。当我双击 jar 文件时,应用程序可以毫无问题地启动。现在我使用 appbundle打包了应用程序。我遵循这里的每一条指令。

我发出命令ant bundle-filemanager,FileManager.app 出现在dist目录中。这是 build.xml

现在,如果我双击 FileManager.app 它不会启动。只需在 Dock 中显示图标一秒钟,然后从 Dock 中消失。

您还可以在此处查看源代码

0 投票
0 回答
320 浏览

java - 如何将 jar 与 Apple 的新 Java 6 for Mavericks 等捆绑在一起?

Mac OS X 上的 Java 一直是一个令人头疼的问题。

Apple 首先明确表示他们正在将 Java 版本移交给 Oracle,Oracle 仅提供 Java 7 和AppBundler Ant 任务来打包 jars(和本地程序)。

哦,Apple 开始坚持 App Store 提交使用复制整个 JRE 的 AppBundler 功能 - 超过 60mb。哎呀!所以除了磨牙并加入英国媒体报道的潮流之外别无他法......

神奇的是,现在有一个适用于 Mavericks 的 JRE 6(2013 年 10 月发布,但我们没有注意到,因为 Apple 表示他们的 Java 支持已经结束)。JRE 6 的打包工具是旧的JarBundler Ant Task,它不支持将 JRE 复制到包中。

那么问题来了:当兼容 JRE 6 的捆绑工具无法做到时,如何满足新的 App Store 标准将 JRE 与应用程序打包在一起?

注意:JarBundler 使用Apple二进制文件JavaApplicationStub来调用 JVM。让存根在应用程序包中查找 JVM 可能是不可能的?我找不到任何关于此的文档。

FWIW,我需要 JRE 6 不仅是因为占用空间更小(大约一半大小),而且还因为 JOGL(OpenGL Java 绑定)在 6 下工作得很好,在 7 下无法使用。Oracle 以 JOGL 家伙的方式欺骗​​了 Swing 内脏(顺便说一句,谁很棒)还没有(一年多之后)完全锻炼出来。

0 投票
3 回答
1633 浏览

xcode - OSX App Bundle 未启动

我对 Mac OSX 应用程序包有疑问。如果我想运行我的应用程序包,则不会发生任何事情(双击myApp.app)。

我可以./myApp.app/Contents/MacOS/myApp毫无问题地通过执行来运行应用程序。

目录结构:

我的Info.plist

编辑:

Console.app 结果:

0 投票
1 回答
1338 浏览

macos - 在 Mac OS X 应用程序包中打包 C 二进制文件

我正在尝试将我的二进制文件打包在一个简约的应用程序包中。但是我看到结果出现了一些奇怪的行为。

我的包有这个最小的结构:

helloworld 是一个 C 二进制文件,编译自:

Info.plist 包含:

现在是奇怪的行为。当我跑

该命令挂起大约 30 秒。之后,我可以确认 helloworld 二进制文件正在运行。但是,它的标准输出不会显示在 Console.app 中。如果我以编程方式启动此捆绑包(NSWorkspace sharedWorkspace] launchApplicationAtURL...),则调用成功,但二进制文件立即退出(我可以在控制台中看到它以错误代码 2 退出)。

这是在 OS X 10.9.2 上。

我究竟做错了什么?

0 投票
0 回答
75 浏览

macos - AppBundler 应用程序不会停止在 Dock 中跳跃

我使用 AppBundler 版本 1.0 将我的 jar 文件捆绑到 OSX 应用程序。我的应用程序没有任何 UI,我认为这就是我出现问题的原因:启动应用程序时,图标会像任何其他应用程序一样跳到 Dock 上,但不会停止。很长一段时间后它会停止,但我仍然觉得它有点烦人,因为它在用户看来好像启动应用程序有问题。我尝试使用 info.plist 文件(例如 LSBackgroungOnly 键),但这并不能解决我的问题。有人对这个有经验么?

0 投票
1 回答
1032 浏览

c# - 如何在没有 System.UnauthorizedAccessException 的情况下将文件从应用程序包复制到另一个目录?

我尝试将应用程序包中包含的文件作为资源复制到 iPhone 上的临时文件夹。虽然这适用于模拟器,但在设备上我得到一个例外:

System.UnauthorizedAccessException:访问路径“/private/var/mobile/Applications/B763C127-9882-4F76-8860-204AFEA8DD68/Client_iOS.app/testbundle.zip”被拒绝。

我使用的代码如下它无法打开源文件。

将文件复制到目标流的正确方法是什么?

0 投票
2 回答
752 浏览

objective-c - 您如何引用打包在您的应用程序包中的 shell 脚本?

给定两个脚本

foo.sh
bar.sh

在 .app 包中的/Contents/Resources下复制,其中foo.sh

#!/bin/bash
. ./bar.sh
回声 $1

得到一个错误

没有这样的文件或目录

在脚本尝试获取bar.sh的行上

有没有办法相对参考bar.sh

是否有另一种方法可以在 .app 中捆绑一组 bash 脚本?

0 投票
1 回答
735 浏览

java - Ant Mac OS X Appbundle 当前目录路径问题

我正在尝试将 Java 应用程序编译成 Mac OS X 应用程序包。我添加以下设置来设置当前工作目录:

在 Contents/Resources/ 中有一个配置目录。

执行它时,我得到了这个奇怪的行为:

new File("config/").exists()返回假

new File("config/").getAbsolutePath()返回 /path/to/bundled/app/MyApp.app/Contents/Resources/config

new File("config/").getAbsoluteFile().exists()返回真

我不知道为什么会发生这种情况,我想防止在我的代码中到处添加 getAbsoluteFile() 。

对此有什么想法吗?

(注意:我使用的是 Oracle JDK 8)

0 投票
0 回答
350 浏览

ios - 从自己的服务器存储和访问 iOS 应用程序的附加内容的位置

我试图了解一些我不清楚的关于从我自己的服务器下载到我的 iOS 应用程序的附加内容的存储和访问。显然这是可能的,请参阅名为从您自己的服务器下载内容的部分。我了解如何处理收据以及如何致电我的服务器。不明白的是:

  • 当我从服务器启动下载时,下载需要包含什么文件类型?可以是我想要的任何东西吗?
  • 考虑到不允许更新应用程序包,我应该将其存储在设备上的哪个位置?
  • 我的应用程序如何访问数据?

在最简单的情况下,假设我正在交付一个 xml 或 json 文件,我猜上面的大部分内容都会像这样工作:将文件存储在文档目录中,使用应用程序中的文件路径来访问和加载数据。

但是,如果它是更复杂的东西,包括应该可以访问的图像和其他数据,就像应用程序包中的其他资源可以访问一样?

我不清楚的关键是可以交付什么类型的数据,如果它是我想要的任何东西(我认为它是)并且我可以完全控制数据类型,这些数据内容应该存储在哪里以及如何存储我可以让我的应用程序尽可能无缝地访问这些数据吗?举一个具体的例子,假设我正在制作一个游戏,第一个关卡包含在应用程序包中,我通过自己的服务器提供第二个关卡,现在,我可以像在应用程序包中加载那个关卡一样加载那个关卡吗?

如果有我可以指出的链接或文档会有所帮助,但我还没有找到任何东西,也许这是最令人困惑的应用程序包的概念,因为在常规程序中我可以做任何我想做的事情不是那么清楚。

0 投票
1 回答
2863 浏览

java - 用于 OS X Gatekeeper 的代码签名 Java 应用程序

我正在尝试将 Java 应用程序分发给 OS X 用户。我没有使用 Mac 商店 - 它是通过我自己的网站分发的。无论我尝试什么,OS X 的 Gatekeeper 都会拒绝该应用程序。

这是我的方法:

(1) 像往常一样构建app,得到一个JAR文件

(2)appbundler按照此处所述使用:https ://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html 。这会在我的 JAR 周围创建一个运行良好的 .app,并在MyApp.app/Contents/PlugIns目录中包含 JVM。

(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选项签名(我尝试过但不起作用)。