SDK iOS 8.0中的产品类型单元测试捆绑包需要代码签名


128

得到

SDK'iOS 8.0'中的产品类型'Unit Test Bundle'需要代码签名

我的应用程序目标是很好的代码签名-但我的测试目标不是。我购买了一台新计算机,从该计算机创建了新的开发证书,相应地更新了配置文件,同时安装了这两个文件,但是无法克服此代码签名错误。

是否可以在本地擦除所有证书/配置文件,以便重新安装?

可能是某种错误。


我遇到了类似的错误-我的解决方法是进入构建设置,然后选择配置文件,而不是自动选择它们。
scb998

Answers:


129

问题是该项目处于源代码控制之下,每次我拉.xcodeproj时都会更新。并且由于我的供应配置文件与源代码管理中的配置文件不同,因此单元测试目标会自动切换为“不编码符号”。因此,我只需要在每次git pull之后在此处设置配置文件即可。

显然,如果要部署到设备上,那么如果存在单元测试目标,则必须对其进行代码签名。

脚步:

1)将目标更改为测试目标(AppnameTests)

在此处输入图片说明

2)确保“代码签名身份”不是“不要代码签名”。选择一个个人资料进行签名

在此处输入图片说明

这就是我要做的所有更改才能使其正常工作。


我面临上述问题中提到的相同问题,但无法弄清楚如何解决,我已就此问题发表了一个问题。stackoverflow.com/questions/27312745/...
尼尔

您能否告诉我有关该操作的分步过程。
Neal 2014年

在Xcode 8中出现了问题。解决方案与您的不同,但是很接近。谢谢你给我指路!
user3259235 '16

另外,除了设置“代码签名身份”之外,您可能还必须设置“开发团队”。
bitsand

100

我通过转到“编辑方案”来解决此问题(暂时),然后在“构建”部分中,从“运行”中删除我的单元测试目标。


1
接得好!你为什么暂时说?对我来说,这似乎是一个合理的解决方案。您是否已将应用提交到商店?
mokagio 2014年

将应用程序提交到App Store没问题。我之所以说“暂时”,是因为我发现可以通过摆弄代码签名来实现更永久的修复,但这是快速而又轻松的修复。
ZS

2
太好了,谢谢。在我看来,这是个不错的解决方案,单元测试目标无论如何都不应运行。+1
mokagio

您能详细说明一下吗?你的意思是我必须“建造”?我不理解“从运行中删除我的单元测试”
LKM,2015年

66

此处的其他建议对我没有帮助,但我通过转到修复了该错误Product > Scheme > Edit Scheme。然后,我单击Build了左侧,并取消选择旁边的所有复选框AppNameTests。我正在使用XCode 6.3

在此处输入图片说明


@Almo不要取消选中“测试”下面的任何框,而要取消选中标有APPNAMEtests的行中的所有内容(您可以取消选中)。我将在答案中包含一个屏幕截图以帮助阐明。
奥利维亚·斯托克

1
我这样做了,除了测试以外,一切都没有检查。事实证明,我必须删除.plist文件才能停止尝试对测试进行代码签名。我的项目构建了一个静态库,因此不需要对其进行代码签名。
Almo

1
嗯好吧 好吧,可以肯定的是,有很多原因可以导致此问题,并且有很多方法可以解决此问题。如果没有其他人提到您的解决方案,则可以考虑将其发布为另一个可能的答案。
奥利维亚·斯托克

3
@huggie¯\ _(ツ)_ /¯欢迎使用iOS编程!
奥利维亚·斯托克

1
@OliviaStork你强迫我。非常感谢您救了我的工作。
Anurag Shrivastava '18

29

我通过在测试目标的构建设置中手动选择配置文件来修复它。

测试目标设置->构建设置->代码签名->代码签名身份。以前,它被设置为“ Do n't code sign”。


谢谢,选择选择配置文件显然对我有用。
Mike Weller 2014年

还要确保在顶部而不是“基本”选择“全部”过滤器。
2014年

13

另外,如果您设置了构建目标设备,则在测试和调试时问题将消失。仅当您尝试将应用程序部署到实际的物理设备时才需要签名的代码图

我将我的应用程序从“ myIphone”更改为模拟器iPhone 6 Plus,并且在我开发应用程序时可以解决该问题。


1
但是如果您想将应用程序部署到物理设备上怎么办呢!
Marwen Trabelsi'3

8

就我而言,我面临的问题是:

CodeSign错误:SDK'iOS 8.4'中产品类型'Unit Test Bundle'需要代码签名

很明显,目标没有执行任何操作,因此快速解决方案是将其删除。

在此处输入图片说明


2

从命令行运行xcodebuild进行工作的CI上的集成测试时,出现此错误。我设法通过将项目级别设置设置为codesign使其工作。由于某种原因,目标设置被忽略,并恢复为项目设置。


2

如果上述解决方案无效,请按照以下步骤操作

从目标中选择appnameTests在“信息”下

更改以下

捆绑包标识符:com.ProjectName。$(PRODUCT_NAME:rfc1034identifier)

到com.ProjectName.appname

套装名称:$(PRODUCT_NAME)

捆绑名称:appname

编译并执行


1

我通过将同一部分(“代码签名”)中的“配置文件”从“自动”更改为“ MyProvisioningProfile名称”来解决此问题


0

嗨,我今天也面临着同样的问题。阅读“ Spentak”的答案后,我尝试将目标的代码签名设置为iOSDeveloper,但仍然无法正常工作。但是在将“ Provisioning Profile”更改为“ Automatic”之后,该项目得以构建并运行,没有任何代码签名错误。


0

有时,当您从github或其他第三方教程站点下载项目时,就会发生这种情况。这些应用程序通常使用不同的标识或公司/名称进行签名。如果发生这种情况,如果您无法解决该问题,则只需创建一个新的xcode项目并将所有标头和实现文件复制到新项目中。也不要忘记依赖文件,例如框架文件。这对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.