问题标签 [codesign]
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.
iphone - 如果我们想用不同的证书为 iPhone 应用程序签名,我们是否必须更改捆绑 ID?
我们有一个 iPhone 应用程序需要由另一家公司为其企业计划辞职。
使用他们的证书辞职是唯一需要的步骤吗?似乎必须使用唯一的捆绑 ID 创建新的配置文件。
ios - 应用程序未通过协同设计验证。签名无效,或未使用 Apple 提交证书签名
所以我对与 Apple 进行代码设计并不陌生。我知道这是应用程序开发的新手部分,但我遇到了这个错误,我无法解决它。我了解我通过钥匙串访问创建了一个私钥,使用该私钥生成证书,使用该证书和 appID 生成配置文件,并使用“App Store”配置文件进行协同设计以进行分发。但我认为由于 xcode 4.2,我遇到了这个错误。但这是我为尝试解决此问题所做的工作:
- 使用 uinstall-devtools --mode=all 卸载 xcode,然后重新启动并重新安装 xcode 4.0.2。
- 从供应门户中删除并重新下载了证书。(没有无效错误)
- 删除了与我正在使用的 appID 关联的所有配置文件,并且只重新下载了 App Store Distribution 配置文件。
- 我确保我在项目中明确选择了正确的配置文件和发布的目标设置。
- 我确保在方案中为“存档”选择了发布设置。
我能想到的一件事可能是问题是我的目标是 iOS 版本 4.2,而基本 sdk 是 4.3。
但我已经通过苹果的文档:https ://developer.apple.com/legacy/library/technotes/tn2250/_index.html#//apple_ref/doc/uid/DTS40009933
我的问题在我安装 xcode 4.2 后开始出现,然后又回到 4.0.2。
另一件奇怪的事情是,当我为 ad hoc 构建时,我得到了同样的警告,但 ad hoc 构建工作。似乎我无法在忽略警告的情况下提交到应用商店。
xcode - Xcode 4:构建时始终未能通过代码验证
我正在使用正确的分发证书构建我的应用程序并构建一个存档,以便我可以提交给 Apple。
验证后,它一直给我这个关于验证失败的错误。
当我查看日志时,错误显示:
应用程序未通过协同设计验证。签名无效,或未使用 iPhone 分发证书签名。(-19011)
知道如何解决这个问题吗?
谢谢,
JH
PS:使用 Xcode 4.2
iphone - OTHER_CODE_SIGN_FLAGS 钥匙串标志被忽略了吗?
我刚刚了解了使用 OTHER_CODE_SIGN_FLAGS 指定钥匙串的可能性,其中包括构建和签署应用程序所需的证书。但不幸的是,我无法让它工作。
我的脚本看起来像这样:
但这失败了:
但是,如果我首先切换到钥匙串,它可以工作,但这在可能同时发生多个构建的构建服务器上不可用:
希望你们能帮忙-Morten
ios - Codesign 返回 1(对象 ifile 格式无效或不合适)错误
我正在使用 Xcode 4.1 build 4B110f 试图让我的 iOS 应用程序准备好上传。它通过了 Product|Archive 步骤,没有任何错误,两次请求允许签署某些东西。但是当我尝试从组织者验证存档时,它失败了:
我查看了所有类似的问题和解决方案(其中一些毫无意义,或者适用于真正旧版本的工具)。没有人有丝毫不同。
我还检查了 3 次验证是否使用“生产”证书,生成存档的协同设计步骤也是如此。我什至把上面的输出变成了一个 schell 脚本,这样我就可以手动尝试所有的证书:每次都得到相同的结果。
也许正在签名的 .app 文件真的不合适?
顺便说一句,codesign 没有版本标志,但手册页的日期是 2006 年 6 月 1 日。二进制文件的文件日期是 2010 年 11 月 20 日。
更新(第二天):
研究该问题进一步发现了一个晦涩的参考资料,说 codesign 需要以下环境变量集:
使用失败的验证运行的输出,我创建了一个 shell 脚本,它在失败的 codesign --force 步骤和 viola 之前导出了这个 var!代码设计有效。
但这并不能真正帮助我准备上传代码。有没有办法将它包含到由 Organizer Validate 按钮运行的脚本中?
稍后,解决方案!:
根据理论,有一个脚本在某个地方生成了在 Organizer Validate... 运行期间运行的所有命令,我用 grep 和 find 进行了一些挖掘。该脚本确实存在,它的名称是:
这只是 Perl,解决方法是在开始时将所需的环境变量添加到关联数组 %ENV 中,例如在第 72 行:
这完全解决了问题。 我不知道网络上所有其他认为他们通过删除证书、构建清理、关闭和重新启动 Xcode 等组合来修复它的海报来自哪里。我只是悄悄地断言,这个修复有利于科学而不是迷信,并且在 Xcode 4.1 Build 4B110f 及其相关的 PackageApplication 脚本下对我有用,在带有 Perl 5.10.0 的 Snow Leopard 10.6.8 下运行
macos - 使用终端从 Mac OS X 钥匙串中删除私钥
我已经使用带有命令的“安全”终端应用程序将 iOS 开发的开发人员身份(证书 + 私钥)导入到钥匙串
这会将 p12 文件中包含的两个项目(证书和私钥)导入给定的钥匙串。但是,我忘了指定-T /usr/bin/codesign
,它将协同设计应用程序添加到私钥的访问列表中。我试图将 codesign 应用程序添加到访问列表中无济于事:
- 我尝试使用添加的参数重新导入身份,但这似乎并没有改变私钥的访问列表。
- 我还尝试使用
security delete-certificate
并重新导入从钥匙串中删除证书。这不会更改私钥的访问列表。
由于我只能通过 ssh 访问机器,因此无法使用 Keychain GUI 应用程序。因此,我正在寻找一种从钥匙串中删除私钥的方法(以便之后我可以重新导入身份)。我检查了该security
工具的手册页,但没有找到删除私钥的方法。
有什么方法可以仅使用终端命令从钥匙串中删除私钥(因为我只有 ssh 访问有问题的机器)?
macos - 使用 Network-HSM 在 OS X 上进行代码签名
我被要求重新设计我们的构建/签名/发布流程。我对 Windows 的东西非常满意,并且我已经确定了几个可以满足我们需要的联网 HSM 产品。它们基本上直接与 CryptoAPI 集成,因此进行签名的人可以正常使用 signtool.exe。
我们目前有一个单独的 Mac 团队,他们自己构建/签名/发布。这在我们的一个 DC 中的几台 Mac Mini 上运行良好。我也想保护我们的 Mac 软件密钥,因此我试图找出如何将联网 HSM 集成到我们的 Mac 签名过程中。
我在任何地方都找不到有关此的任何好信息!所以我希望这里有人已经这样做了,可以减轻我的痛苦。
实际问题是;
1) 我可以将 HSM 与标准 Mac 代码签名工具一起使用吗?2)任何人都可以推荐上述供应商/产品吗?3) 谁能指出一些关于 Mac 代码签名和 Mac 加密基础设施内部工作的优秀文档?
干杯
BHB
xcode - 您如何为 Mac App Store 设计框架包?
最近提交后,我收到以下错误:
无效签名 - 嵌套应用程序包 (FooBar.app/Contents/Frameworks/GData.framework) 未签名、签名无效或未使用 Apple 提交证书签名。有关详细信息,请参阅代码签名和应用程序沙盒指南。
无效签名 - 嵌套应用程序包 (FooBar.app/Contents/Frameworks/Growl.framework) 未签名、签名无效或未使用 Apple 提交证书签名。有关详细信息,请参阅代码签名和应用程序沙盒指南。
签名无效 - 嵌套的应用程序包 libcurl (FooBar.app/Contents/Frameworks/libcurl.framework) 未签名、签名无效或未使用 Apple 提交证书签名。有关详细信息,请参阅代码签名和应用程序沙盒指南。
所以我根据Technote 2206签署了所有框架包:
技术说明 2206 说:
签名框架
将框架视为捆绑包,因此得出可以直接签署框架的结论似乎是合乎逻辑的。然而,这种情况并非如此。为避免在签署框架时出现问题,请确保签署特定版本而不是整个框架:
# 这是错误的方式:
codesign -s my-signing-identity ../FooBarBaz.framework
# 这是正确的方法:
codesign -s my-signing-identity ../FooBarBaz.framework/Versions/A
当我尝试验证结果时,它对我来说看起来不错:
为了好玩,我确实尝试直接签署框架包,但仍然被拒绝。但这正是文档所说的不应该做的事情。
任何猜测为什么会被认为是无效的?我使用的证书与我用于对我的应用程序进行代码签名的证书相同——过去曾使用过的证书。
我唯一的猜测是与现有的 plists (我需要拥有框架的 Info.plists 中的标识符吗?)或权利 - 有什么建议吗?
iphone - 从命令行确定代码签名身份?
我正在尝试设置一种自动方式来签署我的 iOS 应用程序。在使用 codesign 之前,有没有办法从命令行以编程方式确定我的有效签名身份是什么?
例如,对于命令
我怎么知道“iPhone Distribution: Joe Developer”是一个有效的身份?我将如何计算其他有效身份?
我更喜欢在命令行中执行此操作的方法,但在可可中也可以。
xcode - 应用程序在 Xcode 4.2 中验证期间未通过协同设计验证
我在使用分发配置文件时遇到问题。
我曾多次尝试使用以下说明创建分发配置文件:http: //developer.apple.com/ios/manage/distribution/index.action
但是当我验证程序时出现错误:
应用程序未通过协同设计验证。签名无效,或未使用 iPhone 分发证书签名。
我已完成以下步骤: 1.我在钥匙串访问中创建了证书。2.我已经在 iOS Provisioning Portal 中创建了配置文件 3.我已经创建了一个应用程序 ID 4.我已经在 Xcode 的代码签名部分设置了配置文件
此外,我已经检查过钥匙链访问中没有重复或过时的证书。
我查看了stackoverflow并没有找到解决方案。
可能是什么问题?