问题标签 [macdeployqt]

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 回答
54 浏览

c++ - macdeployqt 不验证应用程序

我已经在 MacBook Pro(2019)上编译了一个使用 Qt(5.15.2,C++)框架编写的应用程序,并且我的老板提供了一个证书来验证该应用程序。这是我正在运行以验证应用程序:

此函数调用未验证应用程序,并且抛出错误,从我的在线研究来看,该错误似乎没有得到很好的记录。

首先,我收到非致命错误:

/Library/Developer/CommandLineTools/usr/bin/install_name_tool:致命错误:字符串表不在文件末尾(无法处理)在文件:...

其中 ... 是 appName.app 包中包含的 .dylib 的路径。应用程序包中的所有 .dylib 文件都会重复出现此错误。我已经检查并且文件存在于目录中。为什么会这样?我可以查看这些文件,因为它们是二进制文件,所以我不知道它们在里面做什么。

Macdeployqt 然后继续并报告:

错误:“错误:在钥匙串中找不到指定的项目。\n”

我在想我可能为证书指定了错误的名称(我根本不是应用程序开发人员,如果他们认为我知道我在做什么,公司就是在开玩笑!)?

我有两个问题。

  1. 为什么我在 dylib 文件中出现字符串表错误?

  2. 为什么我会收到代码设计错误?如果我的 codesign 开发人员 ID 名称错误,我在看钥匙链中证书信息的哪一部分?

0 投票
1 回答
75 浏览

macos - 无法在另一台 MacBook 上运行 QT macOS 应用程序

为 macOS 构建了一个跨平台的 QT 应用程序。如果我在同一台机器上测试它,这个应用程序就可以工作。当我创建一个.dmg文件时,这也适用于我的机器。当我在另一台机器上测试时,我得到了错误:

您无权打开应用程序“MYAPP”。

我该如何调试它以查看问题所在?


我创建.dmg文件的步骤:

  1. 运行qmakemake直到我有 MYAPP.app(发布版本)

  2. binarycreator -c config/config.xml -p packages/ setup_MYAPP

    这将创建 setup_MYAPP.app

  3. codesign -s "我的 Apple 分发配置文件的完整通用名称" setup_MYAPP.app

    当我在引号之间提供一个无意义的名称时,它会引发错误,所以我认为这很好。

  4. hdiutil create -format UDZO -srcfolder setup_MYAPP.app MYAPP.dmg

    这将创建 MYAPP.dmg,并且安装程序拒绝在另一台 macbook 上运行。


或者:

  1. 运行qmakemake直到我有 MYAPP.app(发布版本)

  2. codesign -s "Full common name of my Apple Distribution profile" MYAPP.app

  3. macdeployqt MYAPP.app/ -dmg -codesign="Full common name of my Apple Distribution profile" -appstore-compliant

    这会创建 MYAPP.dmg,并且该应用程序拒绝在另一台 macbook 上运行。

0 投票
0 回答
155 浏览

macos - 使用带有 arm64 构建的 macdeployqt

我在使用macdeployqtarm64 构建时遇到问题。我在装有 macOS12 (Monterey) 的 Apple Silicon M1 机器上。我已经安装了 Qt 6.2.1 和 XCode 13.1。

我创建了一个非常简单的控制台应用程序。

使用 qmake PRO 文件:

我打电话qmakeQMAKE_APPLE_DEVICE_ARCHS="arm64"。它成功创建了应用程序包。

然后我尝试macdeployqt从 Qt 6.2.1 bin 目录运行:

...我收到很多消息:

我怎样才能解决这个问题?