命令/ usr/bin/codesign失败,退出代码为1-代码符号错误

Lel*_*ieC 52 xcode objective-c codesign ipad ios

我目前正在向Apple商店提交我的第一个应用程序.我已完成以下流程

  1. 获得开发者帐户
  2. 登录会员中心以创建应用程序ID
  3. 使用钥匙串访问请求和接收分发证书
  4. 使用我的ID和证书获取配置文件

当我构建应用程序时,它在应用程序模拟器和实际的ipad上运行完美,但是当我将我的应用程序切换到ArchiveiOS设备时,我有一个主要的代码签名错误,我已在下面附加.

codesign /Users/Gaby/Library/Developer/Xcode/DerivedData/RoyalAppInspection-dthvtpxadkslqmhkwdpaqkyujscg/Build/Products/Debug-iphoneos/RoyalAppInspection.app
cd /Users/Gaby/Desktop/RoyalAppInspection
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin


/usr/bin/codesign --force --sign 79640A11C8D22589BD337496ABB8443581513846 --entitlements /Users/Gaby/Library/Developer/Xcode/DerivedData/RoyalAppInspection-dthvtpxadkslqmhkwdpaqkyujscg/Build/Intermediates/RoyalAppInspection.build/Debug-iphoneos/RoyalAppInspection.build/RoyalAppInspection.app.xcent /Users/Gaby/Library/Developer/Xcode/DerivedData/RoyalAppInspection-dthvtpxadkslqmhkwdpaqkyujscg/Build/Products/Debug-iphoneos/RoyalAppInspection.app

79640A11C8D22589BD337496ABB8443581513846: no identity found Command /usr/bin/codesign failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题,因为我已经尝试确保该过程的所有其他方面都已正确完成.

我所担心的一个问题是当我点击配置文件时它不会打开并且"添加到库"不会弹出(由于某种原因我无法访问iphone配置实用程序.)我手动将.mobileprovision文件添加到我的xcode项目,但我认为这也可能是我的错误的来源.

任何人,你能帮忙吗?

SAP*_*gix 103

以下步骤为我解决了这个问题.我遇到的问题是它没有为设备编译或归档,对模拟器工作正常.

  1. 打开钥匙串访问.
  2. 锁定"登录"钥匙串.
  3. 解锁它.

完成上述步骤后清理并构建,现在一切正常.


d4R*_*4Rk 95

你几乎是靠自己做的,但最后你的个人资料似乎有问题.

首先,我会推荐一个工具来"查看"配置文件,以确保它是正确的:http://furbo.org/2013/11/02/a-quick-look-plug-in-for-provisioning/

在Finder中选择并按空格(快速查看)时,这将只添加有关配置文件的更多信息.


检查您的Xcode首选项:

  1. Xcode Perferences(CMD +,)
  2. 帐号
  3. 选择左侧的帐户
  4. 选择右下角的查看详细信息
  5. 刷新(使用左下方的小按钮)

Xcode设置

Xcode存储配置文件 ~/Library/MobileDevice/Provisioning Profiles

如果您的分发配置文件不在那里,请双击它.

然后它应该出现在该文件夹中,但是带有散列名称,例如1edf8f42-fd1c-48a9-8938-754cdf6f7f41.mobileprovision此时Quick Look插件就派上用场了:-)


接下来,检查您的项目设置:

  1. 选择要在Xcode中构建的目标(而不是项目)
  2. 切换到构建设置
  3. 寻找"代码签名"部分
  4. 检查"配置文件"=>"发布"下是否选择了正确的配置文件

构建设置


接下来,检查您的方案设置:

  1. 选择产品菜单
  2. 开放式方案子菜单
  3. 选择编辑方案......
  4. 选择左侧的"存档"
  5. 构建配置应设置为"发布"

方案设置


接下来,检查Keychain Access Trust设置:

  1. 打开钥匙串访问(spotlight => keychain)
  2. 选择登录
  3. 单击"证书"
  4. 寻找iPhone Distribution: Elena Carrasco (8HE2MJLM25)右边
  5. 右键单击,选择"获取信息"
  6. 打开"信任"部分
  7. 设置为"使用系统默认值"
  8. 重复步骤5到7 Apple Worldwide Developer Relations Certificate Authority

钥匙扣


接下来,检查Keychain Access私钥Access Control:

  1. 重复上一次检查中的步骤1到4
  2. 展开配置文件以使您的私钥可见
  3. 右键单击私钥,选择"获取信息"
  4. 切换到"访问控制"
  5. 选择"允许访问前确认"
  6. 使用"+"按钮添加"codesign"(通常位于/usr/bin/codesign)
    提示:如果它没有显示在文件浏览器中,请使用cmd + shift + g手动输入路径
  7. 使用Carthage时:在/usr/bin/productbuild这里添加(thx到DesignatedNerd)
  8. "保存更改"

钥匙扣2

希望其中一个对您有所帮助!


更新(2016年4月22日):

我刚刚找到了一个关于整个代码签名过程的非常好的解释(它真的值得一读):https: //www.objc.io/issues/17-security/inside-code-signing/


Man*_*Mal 33

对我来说,遵循以下步骤:

  1. 退出Xcode.
  2. 打开Terminal.
  3. 键入的命令 xattr -rc /Users/manabkumarmal/Desktop/Projects/MyProjectHome
  4. 打开Xcode.
  5. 清洗.
  6. 现在工作,没有错误.

  • 就这一点而言,根据[xattr手册页](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xattr.1.html),它会清除扩展属性数据来自作为最终参数传递的路径的目录,递归.为什么这有帮助,我不知道. (2认同)

小智 17

这对我有用.试试看:

cd ~/Library/Developer/Xcode/DerivedData
xattr -rc .
Run Code Online (Sandbox Code Playgroud)


Jos*_*rez 10

我在Xcode 8和Mac OS Sierra中遇到此错误.尝试了所有上述解决方案,没有一个工作.这是唯一一个适合我的人.打开终端,输入:

cd ~/Library/Developer/Xcode/DerivedData
xattr -c *
Run Code Online (Sandbox Code Playgroud)