【问题标题】:Creatin a minimal macOS app bundle创建最小的 macOS 应用程序包
【发布时间】:2016-10-28 16:41:27
【问题描述】:

我正在尝试创建一个最小的应用程序包。我在 apple.com 上找到了以下页面:

https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html

我的Info.plis如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>MyApp</string>
    <key>CFBundleSignature</key>
    <string>MYAP</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleVersion</key>
    <string>1.0.0</string>
    <key>CFBundleIdentifier</key>
    <string>com.myself.myapp</string>
    <key>CFBundleDisplayName</key>
    <string>MyApp</string>
    <key>CFBundleName</key>
    <string>MyApp</string>
</dict>
</plist>

我的可执行文件是一个具有-rwxrwxr-- 权限的文本文件,上面写着:

#!/bin/sh
touch ~/Desktop/hello.txt

我可以在终端中执行。 我的文件夹结构如下:

MyApp.app/
   Contents/
      Info.plist
      MacOS/
          MyApp
      Resources/

所以我希望这个应用程序能够工作。然而,当我点击它时,我收到以下消息:

您无法打开应用程序“MyApp.app”,因为 PowerPC 不再支持应用程序。

有人知道这是怎么回事吗?操作系统如何确定这是一个 PowerPC 应用程序? 我的 OSX 版本是 10.11.6 (15G1108)。我认为这适用于 10.11.5

编辑:添加 Shebang

【问题讨论】:

  • 如果单行脚本应该是一个 bash 脚本,它可能应该以适当的 shebang 开头。我猜操作系统希望您的可执行文件看起来像 Intel CPU 的可执行文件,而不是为 PowerPC 编译的可执行文件或包含两者的 fat 二进制文件。
  • 我用编译好的 c++ hello world 替换了脚本,问题依旧。
  • 这篇文章可能会有所帮助 - 看起来应用程序可能会被标记为不兼容 X86-64,而您唯一能做的就是使用 lsregister 工具重置启动服务数据库...看看你认为,我只是想帮忙。 forums.sketchup.com/t/power-pc-error-message-on-macbook-pro/…
  • 我试图修正错别字,但它不会让我

标签: macos osx-elcapitan


【解决方案1】:

感谢 Mark Setchell,我发现了发生的事情:

  • 在上次更新中,OSX 停止接受没有 shebang 的脚本,并将我的应用标记为“Not x86_64”
  • 当我尝试修复它/用编译文件替换脚本时,标志仍然存在

所以解决方案是修复我的脚本并移动应用程序以重置启动服务数据库。 (其中存储绝对路径)

【讨论】:

  • 酷 - 干得好!并感谢您与社区分享。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2018-05-25
  • 1970-01-01
  • 2020-03-29
  • 2021-08-11
  • 2020-08-01
相关资源
最近更新 更多