我在signtool.exe中寻找方便的signwizard,但在Windows SDK 7.0中找不到它.
它现在是一个单独的工具还是仅剩下CLI?
我正在尝试使用该codesign命令将我的 OS X 应用程序沙箱化(这是一个常见的 lisp 应用程序,不使用 Xcode)。我创建了一个非常基本的权利 plist,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
我正在调用codesign命令:
codesign -s - -f --entitlements "/path/to/my/app/MyApp.app/Contents/entitlements.plist" "/path/to/my/app/MyApp.app/"
Run Code Online (Sandbox Code Playgroud)
但该命令返回以下错误:
/path/to/my/app/MyApp.app/Contents/entitlements.plist: cannot read entitlement data
Run Code Online (Sandbox Code Playgroud)
这个错误是否意味着我使用了错误的命令?如果是这样,命令有什么问题?
我在签署基于 Qt 的应用程序 un OS X 时遇到问题。我使用的是 Qt 5.3.2。
我已经阅读了包含矛盾信息的各种信息来源。
这是我运行bin/macdeployqtQt 实用程序后应用程序包的内容
SimpleHello.app/
Contents/
Info.plist
PkgInfo
Frameworks/
QtCore.framework/
Resources/
Versions/
5/
QtCore
QtGui.framework/ ... same as Qt core
QtPrintSupport.framework/ ... same as Qt core
QtWidgets.framework/ ... same as Qt core
MacOS/
SimpleHello
PlugIns/ ... some plugins
Resources/
empty.lproj
qt.conf
Run Code Online (Sandbox Code Playgroud)
第一的:
我试过:http : //successfulsoftware.net/2012/08/30/how-to-sign-your-mac-os-x-app-for-gatekeeper/
但是,它似乎在 OS X 10.10 Yosemite 中不再有效
第二:
我能够在没有任何错误的情况下签署整个申请。但是,当运行spctl以验证应用程序的有效性时,我得到
spctl -a -vvvv SimpleHello.app
SimpleHello.app/: rejected
source=obsolete resource envelope …Run Code Online (Sandbox Code Playgroud) 我在向苹果商店提交电子应用程序时遇到问题
\n\nERROR ITMS-90296: "App sandbox not enabled. The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list: [( "com.smarterback.desktop.pkg/Payload/SmarterBack.app/Contents/Frameworks/SmarterBack Helper EH.app/Contents/MacOS/SmarterBack Helper EH", "com.smarterback.desktop.pkg/Payload/SmarterBack.app/Contents/Frameworks/SmarterBack Helper NP.app/Contents/MacOS/SmarterBack Helper NP", "com.smarterback.desktop.pkg/Payload/SmarterBack.app/Contents/Frameworks/SmarterBack Helper.app/Contents/MacOS/SmarterBack Helper", "com.smarterback.desktop.pkg/Payload/SmarterBack.app/Contents/MacOS/SmarterBack" )] Refer to App Sandbox page at https://developer.apple.com/devcenter/mac/app-sandbox/ for more information on sandboxing your app."\nRun Code Online (Sandbox Code Playgroud)\n\n所以我更改了我的 .plist 文件以启用沙箱,并且提交一切顺利,但是该修复还有另一个问题,现在我的应用程序不想启动,因为它无法找到\xe2\x80\x9cSmarterBack 助手\xe2\x80\x9d
\n\n[8801:0907/140725.080936:FATAL:atom_main_delegate_mac.mm(50)] Unable to find helper app\n0 Electron Framework 0x000000010c4fdde3 _ZN9brightray12MainDelegate24OverrideChildProcessPathEv + 836531\n1 Electron Framework 0x000000010c4d3297 _ZN9brightray12MainDelegate24OverrideChildProcessPathEv + …Run Code Online (Sandbox Code Playgroud) 我使用 CMake
add_custom_command(TARGET POST_BUILD COMMAND codesign ...)
Run Code Online (Sandbox Code Playgroud)
用于在构建时签署可执行文件。
它工作正常,但是当 CPack 生成包时,它会在可执行文件上重写 rpath 并在它们上调用 strip 命令。这会更改文件并使签名无效。在 CPack 完成安装之后和实际打包之前,CMake 有没有办法对二进制文件进行签名?
errSecInternalComponent我在运行 codesign 命令时得到了。如果我转到钥匙串并将证书更改为always trust并再次运行codesign命令,我得到Warning: unable to build chain to self-signed root for signer "Developer ID Application: xxxxxx (xxxxxx)"./workspace/Myapp.app: errSecInternalComponent
第一次发生这种情况是当我从另一个 MacOS 导出开发人员证书并导入它时。然后我尝试删除钥匙串,重新创建它,安装苹果根证书,但仍然遇到相同的错误。
最后,我生成了一个新的开发人员证书并将其添加到钥匙串中,但仍然无法正常工作。
我不知道这个MAC有什么不同。现在正在运行 Majave。当问题第一次发生时,它正在运行 High Sierra。
我正在向 Mac App Store 提交应用程序。该应用程序基于 Java,因此 Java.runtime 框架嵌入在应用程序包中。
这在 Java 8 及更早版本中运行良好,但在 Java 11 中会导致一些问题。Apple 要求您使用自己的证书和权利文件对所有框架进行签名。因此,我使用带有 --force 选项的协同设计工具来替换现有签名,对所有二进制文件和 .dylib 文件以及框架本身进行签名。同样,这对于旧的 Java 版本来说是没问题的。
问题是,从 Java 11 开始,CFBundleIdentifier 包含在可执行文件中。此 CFBundleIdentifier 不会被 codesign 替换,因此仍然是“net.java.openjdk.cmd”。然后,Apple 会拒绝该应用程序,因为此 CFBundleIdentifier 已存在于 Mac App Store 中。
提供的错误消息显示了问题:
CFBundleIdentifier Collision - The Info.plist CFBundleIdentifier value 'net.java.openjdk.cmd' of 'java' is already in use by another application.
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是是否可以在使用协同设计或临时时替换现有可执行文件的 CFBundleIdentifier。解决方法是使用我自己的 OpenJDK 构建来设置不同的 CFBundleIdentifier,但这非常不切实际,并且会导致构建耗时。
我有一个统一构建的 OSX 应用程序。运行良好,直到我用 codesign 对其进行签名,然后它因异常而失败
Exception Type: EXC_CRASH (Code Signature Invalid)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Run Code Online (Sandbox Code Playgroud)
有什么方法可以获得有关代码签名无效的更多信息吗?
我使用来自活跃 Apple Developer 帐户的 Developer ID 证书对其进行了签名:
codesign -f --deep -s "Developer ID Application: Ro Anders" --entitlements adventure.entitlements ./adventure.app/
Run Code Online (Sandbox Code Playgroud)
然后用
codesign -dv --verbose=4 adventure.app
Run Code Online (Sandbox Code Playgroud)
并且响应没有报告任何问题
Executable=/Users/ro/multiplayer-adventure/H2HAdventure/target/OSX/adventure.app/Contents/MacOS/adventure
Identifier=com.h2hadventure.adventure
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=346 flags=0x0(none) hashes=3+5 location=embedded
VersionPlatform=1
VersionMin=657664
VersionSDK=658432
Hash type=sha256 size=32
CandidateCDHash sha1=8b8a11c38e8cbe2fb7934f528bcc6ea0763c7291
CandidateCDHash sha256=f50657e61a2183b5a28bd651914a0994421ecbe3
Hash choices=sha1,sha256
Page size=4096
CDHash=f50657e61a2183b5a28bd651914a0994421ecbe3
Signature size=9062
Authority=Developer ID Application: Ro Anders …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人熟悉这个错误,只有当我将我的应用程序上传到 Apple 进行公证时才会发生:
"AppName.zip/AppName.app/Contents/Resources/EWSMacCompress.tar.gz/EWSMacCompress.tar/EWSMac.framework/Versions/A/EWSMac83886082"
"The signature algorithm used is too weak."
Run Code Online (Sandbox Code Playgroud)
附加信息:
- 我多年来一直在为我的应用程序签名,没有任何问题。该错误仅在发送应用程序进行公证时发生。
- 我在 2018 年 11 月提交了一个错误,向 Apple 提供了他们要求的所有信息 - 但从未得到进一步解决。
- 我最近再次联系了 Apple,他们向我指出了上次更新于 2016 年的一些资源页面。它简要地提到了一个类似的错误 - 但仍然没有任何关于如何解决它的信息:https : //developer.apple.com/ library/archive/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG301
- 对这个错误的搜索没有产生任何有用的信息。
- 有问题的 tar.gz 文件是一个 eSellerate 许可框架。很多人可能都知道,十多年来,它一直是 Mac 软件的流行许可平台。虽然我前段时间切换到不同的许可平台,但我仍然有成千上万的客户拥有 eSellerate 许可(我确信许多其他 Mac 开发人员的情况也是如此)。
据我了解,整个情况必须对 tar.gz 档案中的文件进行签名 - 我也找不到任何信息
任何帮助将不胜感激!
谢谢,利奥
我在公证和分发从 pyinstaller 打包到 Catalina 的应用程序时遇到问题。
在我的 entitlements.plist 中,我将 com.apple.security.cs.allow-jit 和 com.apple.security.cs.allow-unsigned-executable-memory 设置为 true。
我还尝试设置 com.apple.security.cs.disable-library-validation。但是,如果我这样做,我什至无法打开它。它只是要求我把它扔掉。
这是我的代码签名命令。
codesign --deep --force --options runtime --entitlements entitlements.plist --sign "$DEVELOPER" "$APP.app" --timestamp
当我打开时,我得到了这个。
[1276] Error loading Python lib '/var/folders/kb/ww5w7w_s45139t2n329cr3lw0000gn/T/_MEI3Jv8Ln/libpython3.7m.dylib': dlopen: dlopen(/var/folders/kb/ww5w7w_s45139t2n329cr3lw0000gn/T/_MEI3Jv8Ln/libpython3.7m.dylib, 10): no suitable image found. Did find:
/var/folders/kb/ww5w7w_s45139t2n329cr3lw0000gn/T/_MEI3Jv8Ln/libpython3.7m.dylib: code signature in (/var/folders/kb/ww5w7w_s45139t2n329cr3lw0000gn/T/_MEI3Jv8Ln/libpython3.7m.dylib) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
/var/folders/kb/ww5w7w_s45139t2n329cr3lw0000gn/T/_MEI3Jv8Ln/libpython3.7m.dylib: stat() failed with errno=3
Run Code Online (Sandbox Code Playgroud)
我codesign -f …