【问题标题】:Xcode 'CodeSign error: code signing is required'Xcode 'CodeSign 错误:需要代码签名'
【发布时间】:2011-04-17 18:43:02
【问题描述】:

我一直在使用 iOS 4.0 开发一个 iPhone 项目。我刚刚下载了带有 iOS SDK 4.1 的 Xcode 3.2.4,以便可以使用更新后的 iOS。在更新的 Xcode 中打开项目后,我发现目标读取“Base SDK Missing”。我按照here 的说明解决了这个问题。

现在,当我尝试针对任何版本的 iOS 构建时,我收到此错误(错误文本中引用了相应的版本):

CodeSign 错误:SDK“设备 - iOS 4.1”中的产品类型“应用程序”需要代码签名

我安装了由 Xcode 创建的 Team Provisioning Profile,该 Provisioning Profile 有我的证书,并且选择的代码签名实体是“iPhone Developer: Aaron Milam”。

关于我在这里可能缺少什么的任何想法?

【问题讨论】:

  • 在继续之前检查列表:打开 xcode -> 首选项 -> 检查 Apple ID 中是否存在项目,选择代理并查看详细信息 -> 检查签名身份是否存在,配置文件是否存在。如果签名身份不存在需要添加苹果开发证书。那么应该没问题。

标签: iphone ios xcode code-signing


【解决方案1】:

当 Xcode 无法识别您的证书时会发生这种情况。

解决它只是一件痛苦的事,有很多可能性可以帮助您。

但您应该尝试的第一件事是在“窗口”选项卡 => 管理器中删除,即设备中的配置。然后重新添加它们(在苹果网站上再次下载它们)。并尝试再次编译。

顺便问一下,您是否在项目信息窗口中检查了“代码签名身份”?

祝你好运。

【讨论】:

  • 如果它不起作用,那么:1°) 重新启动您的计算机。 2°)删除所有计算机证书(与iPhone相关,并非全部^^)。 3°) 重新下载它们。如果没有你的电脑在我附近,解决这个问题有点困难:/ 祝你好运!
  • 所以我听从了你的指示。我发现在 Xcode 中,选择了 进行代码签名。我重新选择了自己的,最终成功了!感谢您的帮助!
  • 对我来说,我在项目中有正确的设置,但忘记检查目标。在目标构建属性中设置代码签名身份设置就可以了
  • 另外,尝试转到 Build>Clean,然后重试。
  • “解决它只是个麻烦事”在评分最高的 SO 答案中,对于一个有 +60k 浏览量的问题,这是一个非常有力的陈述!就反馈而言,这是一场完美的风暴:负面的,由可靠的来源提供,并得到社区的同意。 @Vinzius,感谢您发布此内容。我希望 Apple 能够解决您的反馈...... 4 年而且还在继续:)
【解决方案2】:

确保您已正确创建配置文件。 如果你这样做了......你必须有......钥匙串访问中的公钥,私钥和证书。 检查你是否拥有所有这些..

XCode 3.2.4 附带自动设备配置...因此您只需登录您的开发人员 帐户它将下载所有有效的配置文件..

如果您在钥匙串和下载的配置文件中拥有所需的一切... 当您选择 iPhone 开发人员时:Aaron Milam'。在构建设置中.. 确保您已选择要为其构建的配置(位于 Target->Build 内的左上角)。 或者您可以执行所有配置以更改所有可用配置,即调试、发布等。

【讨论】:

    【解决方案3】:

    您是否更新了您正在测试的 iPhone 的固件版本?

    【讨论】:

    • 是的。事实上,它刚刚以最新版本寄到了邮件中。我确实检查了更新以确保。
    【解决方案4】:

    考虑到所有证书都已正确安装,最常见的原因是没有在活动目标设置中指定代码签名身份以及项目设置。将这些从 iPhone Developer 更改(Xcode 将根据 App ID 匹配选择正确的配置文件)。

    • 在 Xcode 中,从 Simulator 更改为 Device(在 Xcode 窗口顶部的下拉菜单中),这样您的应用程序部署目标将是 Device。

    • 默认 ID 是一个通配符 ID,就像一个 catch all iD,在代码签名中关联时(如果您使用示例文件进行构建,它们很明显没有 com.coolapps.appfile 导入,在这种情况下,如果没有“团队配置文件”,您的构建将会失败。所以您需要在您的

    • 中设置它
    • Xcode->Project ->Edit Project Settings->Build (tab)->Code Signing Identity (header) ->Any iOS (change from Any iOS Simulator)->(选择'iPhone Developer'作为值并且它将默认为通配符开发配置文件(团队配置文件:*)

    还有(非常重要)

    • Xcode->Project ->Edit Active Target ->Build (tab)->Code Signing Identity (header) ->Any iOS (change from Any iOS Simulator)->(选择 'iPhone Developer' 作为值,它将默认为通配符开发配置文件(团队配置文件:*)

    适合初学者的完整步骤: http://codevelle.wordpress.com/2010/12/21/moving-from-ios-simulator-to-the-ios-device-smoothly-without-code-sign-error/

    【讨论】:

      【解决方案5】:
      • 我喜欢 Stack Overflow:

      • 我意识到有些时间过于具体是不够的,因为我们可能有不同的 Xcode 版本,我自己在同一个 Mac Pro 上有 2 个 xcode 版本。所以在这里我想提供一个通用说明,希望它适用于所有 Xcode 版本:

      • 我的 2 个版本是 xcode 3.2.6 和 4.0。您需要找到(甚至是谷歌的设置)您的 xcode BUILD SETTINGS 及其在 CODE SIGNING 下的 CODE SIGNING 您有 CODE SIGN IDENTITY 这为您提供了 IDENTIFIERS 列表(如果您没有 IDENTIFIERS 去这里获取一个并且需要注册https://developer.apple.com/ios/manage/overview/index.action - 按照 Apple 的说明“使用开发配置助手在 iOS 上获取您的应用程序”)如果您有一个标识符列表,只需选择一个有效的标识符并再次运行您的 Xcode。它会起作用的!

      • 3.2.6 特定:在您的代码窗口上 - 单击项目 -> 项目设置 -> 构建(选项卡) -> 向下滚动,因为列表很长 确保您向下滚动以找到您的代码签名部分

      • 特定于 4.0:在您的 xcode 窗口上 - 单击您的项目文件最左边的列 -> 然后在下一个列单击您的目标应用程序 -> 找到代码签名并分配一个标识符。它应该适合你。

      完成!

      【讨论】:

        【解决方案6】:

        另一种可能性 - 当您为存档构建时,请确保您的方案中的存档选择设置为分发,而不是发布。

        转到产品 -> 编辑方案 这会打开一个新对话框。

        选择左侧的存档。确保构建配置是分发。

        【讨论】:

          【解决方案7】:
          1. 在“Project”和“Targets”部分中填充“Code Signing
          2. 在“Debug”和“Release”中选择“Code Signing Identity”中的有效条目
          3. 在“Debug”下选择Developer证书
          4. 在“Release”下选择您的Distributor证书

          遵循这 4 个步骤总能解决我的问题。

          【讨论】:

            【解决方案8】:

            确保您在“任何 iOS SDK”而不是“Debug/Distribution/Release”行上进行代码签名

            这正是我所做的:

            代码签名身份 -> 不要代码签名
            * 调试 -> 不要代码签名
            ** 任何 iOS SDK -> [我的开发者资料]
            * 分发 -> 不要代码签名
            ** 任何 iOS SDK -> [我的 AppStore 个人资料]
            * 发布 -> 不要代码签名
            ** 任何 iOS SDK -> [我的 AdHoc 个人资料]

            当我将我的配置文件放在上一级(在调试/分发/发布时)时,由于某种原因它不起作用(错误?)。

            希望它对我们中的一些人有所帮助!

            【讨论】:

            • 有谁知道你为什么设置“不编码符号”来调试和发布?
            • 能否分享一张屏幕截图,说明在哪里可以找到这些设置?
            • @Noitidart 点击项目 -> 构建设置标签
            【解决方案9】:

            我使用 Xcode 4.3.2,我的问题是在另一个同名文件夹中的文件夹,例如 myFolder/myFolder/。

            解决方案是更改第二个文件夹的名称,例如 myFolder/_myFolder,问题就解决了。

            我希望这可以帮助一些人。

            【讨论】:

            • Xcode 不允许您拥有多个同名文件夹,这有点愚蠢,不是吗?
            • @Aaron 是的,我希望他们修复这个“错误”。
            【解决方案10】:

            也许你的 mac 的日期和时间不正确。纠正他们。

            【讨论】:

              【解决方案11】:

              总结形成Xcode fails with "Code Signing" Error的答案

              project.pbxproj 文件可以通过插入两条CODE_SIGN_IDENTITY 行的方式合并。删除其中一项通常可以解决问题。

              我创建了一个简单的脚本来帮助诊断这个问题,可以在这里找到它:https://gist.github.com/4339226

              完整的答案可以在here找到。

              【讨论】:

                【解决方案12】:

                在文件/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/SDKSettings.plist中

                更改 CODE_SIGNING_REQUIRED YES

                CODE_SIGNING_REQUIRED NO

                重启 Xcode

                【讨论】:

                  【解决方案13】:

                  在尝试了上述所有答案以及我在 Xcode 4.6 中能想到的所有其他问题后,我通过以下步骤解决了这个问题:

                  1. 关闭 Xcode
                  2. 右键单击 .xcodeproj 文件 -> 显示包内容
                  3. 在文本编辑器中编辑 project.xcodeproj
                  4. 搜索“CODE_SIGN_IDENTITY” - 会有这样的成对行:
                   CODE_SIGN_IDENTITY = "iPhone Developer: Joe Smith (555NN555)";
                   "CODE_SIGN_IDENTY[sdk=iphoneos*]" = "iPhone Developer: Joe Smith (555NN555)";
                  

                  我找到了 2 个具有类似价值的目标,以及 2 个具有类似价值的目标

                   CODE_SIGN_IDENTITY = "";
                   "CODE_SIGN_IDENTY[sdk=iphoneos*]" = "";
                  

                  对于后一对为空的所有情况,我将前一对行复制到后一对行上。

                  然后我重新启动了 Xcode,现在它可以正常工作了。

                  【讨论】:

                  • 哇,这真的解决了我的项目的愚蠢错误(来自 SendBird 的 Testapplication)。我花了整整一个小时才找到答案。谢谢。我把它们都做成了"",Xcode 不再抱怨了。
                  【解决方案14】:

                  正如这里已经提到的,如果您不想对您的应用程序进行代码签名,您可以 将CODE_SIGNING_REQUIRED 设置为NO。这是没有任何项目/文件的方法 修改:

                  创建文件NoCodeSign.xcconfig:

                  CODE_SIGNING_REQUIRED = NO
                  

                  XCODE_XCCONFIG_FILE环境变量设置为该文件的路径:

                  export XCODE_CXCONFIG_FILE=/path/to/NoCodeSign.xcconfig
                  

                  现在您无需代码签名即可构建应用程序。

                  【讨论】:

                  • NoCodeSign.xcconfig的内容显然应该是CODE_SIGNING_REQUIRED = NO
                  • 这很有帮助,但我最终在 Xcode 10 中需要 CODE_SIGNING_ALLOWED = NO,而不是 CODE_SIGNING_REQUIRED = NO
                  【解决方案15】:

                  在我的情况下,从 Keychain Access 锁定和解锁登录钥匙串就可以了

                  【讨论】:

                    猜你喜欢
                    • 2015-08-19
                    • 2014-11-18
                    • 1970-01-01
                    • 2016-03-05
                    • 2012-11-14
                    • 2014-05-11
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多