我刚刚从THAWTE购买了代码签名证书(MS authenticode),并且显然已经在我的构建机器上安装了它.我以用户身份登录,当我打开cmd提示符时,我可以使用带有signtool.exe的证书对EXE进行签名.
不幸的是,这个相同的命令行在机器上运行的hudson进程中不起作用.
我得到的错误信息是:
SignTool错误:未找到符合所有给定条件的证书.
我认为这是因为hudson服务运行的帐户不同于我从用于从thawte获取证书的帐户运行signtool.exe的帐户.
所以,我的问题是:我该如何解决这个问题?我以为我要从thawte下载一个文件,但它只是以某种方式使用IE来神奇地在用户的缓存中安装证书.我可能想要导出(或任何正确的术语)到我可以存储/保存或在任何其他机器上使用的文件.
我该怎么做?如何使用系统/服务帐户中其他用户的文件或证书正确调用signtool?
我重读了Ad Hoc发行版的所有文档和帖子,但仍有问题.如果我尝试"无线"分发(使用Safari下载.plist和.ipa文件),应用程序开始下载,图标被正确绘制,名称将从"正在安装..."更改,但当其大约90%完成时得到"无法下载..."提醒.
如果我使用iTunes方法转移应用程序我得到'应用程序"xx"没有安装在iPhone"xx"上,因为权利不正确.
Q1:我已经读过你不再需要单独添加.mobileprovision文件,因为XCode(我正在使用4.0.1)将它添加到包中 - 这是真的吗?
Q2:当我在Safari(在iPhone上)下载'.mobileprovision时,它只是将其显示为文本.这是我的问题或不相关的症状吗?
问题3:这个问题是否与Entitlements.plist有关?我找不到Apple或任何博客的任何文档,这些文档与我在使用XCode 4.0.1编辑此文件时看到的内容有关.如果我按照说明(New-> New File-> Code Signing-> Entitlements),我会得到一个只有'可以调试'密钥的默认文件.我已经尝试将此设置为NO,添加一个get-task-allow键(替换现有的 - 可能是可调试的是同一个键?)添加我的应用程序标识符,并添加一个带有上述两个键的iPhone Entitlements Dictionary(根据Apple的文档).
问题4:试图让权利和代码签名工作的iPhone开发者的自杀率是多少?
为了减少我在类似问题上看到的建议:我确实将Code Signing Entitlements设置为我的Entitlements.plist for distribution and Release.我已经尝试重新启动XCode,重建,存档等我尝试重新启动iPhone我已经回到了iPhone
更新:在XCode 4.0.1中,编辑Entitlements.plist时有一个菜单选项(编辑器 - >显示原始键和值),它将把键从"可以调试"切换到"获取任务允许"
使用后macdeployqt我签署我的应用程序,以避免Gatekeeper问题.
我可以使用codesign所有框架和捆绑包内的所有内容,但是当我来签署捆绑包时,我收到一个错误:
$ codesign --force --verify --verbose --sign "Developer ID Application: My ID" MyApplication.app
MyApplication.app: bundle format unrecognized, invalid, or unsuitable
In subcomponent: /Users/username/Dev/Apps/MyApplication/MyApplication.app/Contents/Frameworks/QtConcurrent.framework
Run Code Online (Sandbox Code Playgroud)
如果我检查签名:
$codesign -vvv MyApplication.app/Contents/Frameworks/QtConcurrent.framework/Versions/5/QtConcurrent
MyApplication.app/Contents/Frameworks/QtConcurrent.framework/Versions/5/QtConcurrent: valid on disk
MyApplication.app/Contents/Frameworks/QtConcurrent.framework/Versions/5/QtConcurrent: satisfies its Designated Requirement
Run Code Online (Sandbox Code Playgroud)
根据http://furbo.org/2013/10/17/code-signing-and-mavericks/,似乎我应该签署类似这样的框架包
$ codesign --force --verify --verbose --sign "Developer ID Application: My ID" MyApplication.app/Contents/Frameworks/QtConcurrent.framework/Versions/5
Run Code Online (Sandbox Code Playgroud)
但这会导致
MyApplication.app/Contents/Frameworks/QtConcurrent.framework/Versions/5: bundle format unrecognized, invalid, or unsuitable
Run Code Online (Sandbox Code Playgroud) 我刚刚升级到XCode 6并尝试构建我的开发者ID签名的Mac应用程序.但是,我现在得到以下codeign错误:
unsealed contents present in the root directory of an embedded framework
Run Code Online (Sandbox Code Playgroud)
这适用于Dropbox.framework我使用的.显然无法签署.错误是什么意思?怎么了?
在一台新的Mac上,我安装了xcode,需要设置一个hello-world项目的配置,以便部署到我的iPad上.
注意:我正在使用新的免费配置(没有付费的Apple帐户)
好?如何在不将我的操作系统恢复到工厂并完全启动的情况下解决此问题?
注意:关于SO的解决方案涉及从Dev Console中撤销密钥和生成新的私钥,如下所示: 如何将私钥添加到分发证书?
但是,在"免费"帐户上,我无法访问"证书"部分!我无法在网上开发门户网站.但是,我确实看到xcode专门用于处理证书(参见上面的步骤9-10),但它无法正常工作.我真的不知道从哪里开始.我是Mac和iOS以及xcode的新手.失意.感谢Apple,在简单的hello-world应用程序上获得简单的入职体验.
我已经为Firefox开发了一些扩展,我很生气,很难让扩展签名.如果未签署扩展程序,则在安装时会显示"作者未经过验证",对我来说只是看起来不对.
我有一个简单的构建脚本,从源代码构建我的.xpi文件,我有一个PKZip的许可副本(根据许多教程需要构建一个Firefox需要的签名xpi文件),但我还没有找到一种获得实际工作的免费/廉价证书的方法或一组执行该技巧的指令.
由于我的免费扩展,我不想花400美元购买商业证书,但我不介意花费50美元左右来完成它.我有Linux和Windows机器,虽然我的构建脚本目前使用Windows,并且最方便使用.
你怎么解决这个问题?在构建扩展时,我需要做什么才能自动安全地签署扩展程序?
编辑:我很欣赏谷歌的点击率,但他们提供的步骤不够完整,如何真正获得有效的证书.我的感觉让我想起了这个经典:

我有一个Mac OS X应用程序,由主目标和依赖框架组成.自从在我的Mac OS X应用程序上启用代码签名后,我注意到Xcode每次运行时都会重建主目标,即使我没有触及一行代码.
这是一个问题,因为依赖框架需要知道主目标文件的CRC.每次Xcode重建主目标时,CRC都会改变.
在代码签名之前,我将构建主目标一次,生成CRC,将CRC输入到我的框架代码中,并再次构建主目标.Xcode会注意到只有框架发生了变化,所以它不会重建主目标.
有什么建议?谢谢!
西蒙
在尝试签署由我工作的公司创建的一些安装程序时,我遇到了一个错误,我无法解决.我使用相同的证书,已成功使用另一台机器(Win7)以相同的方式签署准相同的安装程序.无论如何,在运行CruiseControl.net的Windows Server 2008上,我尝试使用signtool.exe对安装程序进行签名,但它失败并出现以下错误:
The following certificates were considered:
Issued to: <our company>
Issued by: <some ca>
Expires: <is valid>
SHA1 hash: <...>
Issued to: <...>
Issued by: <...>
Expires: <...>
SHA1 hash: <...>
After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Subject Name filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.
Run Code Online (Sandbox Code Playgroud)
我尝试将证书安装到不同的证书库,尝试使用不同版本的signtool.exe并尝试直接使用.cer文件,但没有区别.我在所有情况下都收到了上述错误.我尝试了以下命令行命令
signtool.exe sign /debug /n …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建和归档应用程序.编译后,一个警告窗口出现,要求的" codesign wants to sign using key "my account Name" in your keychain"和按钮Always Allow,Deny并且Allow,当我按下Always allow或者allow,什么都不会发生,只有deny工作.
我Allow all applications to access this item在私钥信息中启用了" ",但它对我没用.
我正在使用VNC远程Mac(El Capitan)和Xcode 7.2.我没有使用任何第三方实用程序,我没有安装任何鼠标相关的应用程序.
我试过下面的链接
https://forums.developer.apple.com/thread/25092
我想知道这个问题背后的原因,我该如何解决?
最近,当我打算将我的APK签名发布到Play商店时,我得到了这个新选项:
按"签名帮助"链接,打开此网页:https: //developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2
搜索更多,我发现了这个:
事实证明,它是Android 7.x的新验证,可以帮助使APK更安全,但也有点小.
我尝试使用这个新功能,就像在博客上写的那样,它确实使APK有点小.此外,正如它的编写,它仅适用于Android 7.x及更高版本(但您可以在同一个APK上使用这两种方法实际签名,让您也可以在旧版本的Android上安装该应用程序).
我不明白使用新的签名机制是否安全,以及他们对文档的确切警告.
我读过至少一个警告,我认为大多数开发人员都不需要特别照顾:
警告:如果您使用APK签名方案v2对应用程序进行签名并对应用程序进行进一步更改,则应用程序的签名将失效.出于这个原因,在使用APK签名方案v2签署您的应用程序之前使用诸如zipalign之类的工具,而不是之后.
我想我可以忽略这个警告,因为我只是让IDE本身使用默认的构建行为来构建APK.
我尝试使用所有3种方式签署应用程序:
似乎单独的v2不能安装在7.x之前版本的Android上,但其余的可以,而且似乎v2小于v1,而v1和v2比v1稍微大一点.
从旧签名切换到新签名是否安全(启用两个签名)?
用户升级会有什么问题吗?用户从v1升级到v2,或从v2(或v1和v2)升级到v1(如果出现问题) - 是否有任何问题?
我应该知道任何警告吗?我是对的,我可以忽略我提到的警告吗?
除了更好的安全性之外,使用v1和v2(一起)提供的签名是什么,我在v1上没有?
我的猜测是,只有Android 7,我们才能使用v2,这提供了一种拥有更小的APK的方法.这是真的吗?
code-signing ×10
macos ×3
certificate ×2
iphone ×2
objective-c ×2
xcode ×2
adhoc ×1
android ×1
apk ×1
authenticode ×1
cocoa ×1
entitlements ×1
firefox ×1
hudson ×1
ios ×1
keychain ×1
private-key ×1
qt ×1
signtool ×1
windows ×1
xcode6 ×1
xcode7.2 ×1