27

我是 iOS 开发的新手,很可能错过了一些相关的东西。

我有一个在 Xcode 中开发的应用程序,并使用开发设备进行了测试,以便我知道它工作正常。

我已经在 iTunes Connect 中创建了记录,并完成了启用状态“等待上传”的步骤

在构建设置中,我设置了为应用程序创建的配置文件以及连接到该配置文件的代码签名身份。

当我转到 Organizer -> Archives 以上传应用程序时,一切似乎都在工作,我尝试了 Validate 和 Distribute,但每次都遇到相同的 XCode 错误。

这是我从 XCode 获得的错误消息的开头,如果需要更多信息,请告诉我。

Process:         Xcode [1920]
Path:            /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:      com.apple.dt.Xcode
Version:         5.0 (3332.25)
Build Info:      IDEApplication-3332025000000000~2
App Item ID:     497799835
App External ID: 38302662
Code Type:       X86-64 (Native)
Parent Process:  launchd [129]
User ID:         501

Date/Time:       2013-09-20 11:37:11.767 +0200
OS Version:      Mac OS X 10.8.5 (12F37)
Report Version:  10

Interval Since Last Report:          8761 sec
Crashes Since Last Report:           8
Per-App Interval Since Last Report:  5941 sec
Per-App Crashes Since Last Report:   8
Anonymous UUID:                      B3570A30-11F9-5E70-9890-7B380C40FAE3

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: EXC_I386_GPFLT

Application Specific Information:
objc_msgSend() selector name: respondsToSelector:
ProductBuildVersion: 5A1413

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                 0x00007fff91d39510 objc_msgSend_vtable5 + 16
1   com.apple.AppKit                0x00007fff8c52c3b2 +[NSTextInputContext currentInputContext] + 128
2   com.apple.AppKit                0x00007fff8c52bb81 -[NSApplication updateWindows] + 94
3   com.apple.AppKit                0x00007fff8c776d9f __38-[NSApplication setWindowsNeedUpdate:]_block_invoke_02349 + 76
4   com.apple.CoreFoundation        0x00007fff92a2f417 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
5   com.apple.CoreFoundation        0x00007fff92a2f381 __CFRunLoopDoObservers + 369
6   com.apple.CoreFoundation        0x00007fff92a0a7b8 __CFRunLoopRun + 728
7   com.apple.CoreFoundation        0x00007fff92a0a0e2 CFRunLoopRunSpecific + 290
8   com.apple.HIToolbox             0x00007fff9120ceb4 RunCurrentEventLoopInMode + 209
9   com.apple.HIToolbox             0x00007fff9120cb94 ReceiveNextEventCommon + 166
10  com.apple.HIToolbox             0x00007fff9120cae3 BlockUntilNextEventMatchingListInMode + 62
11  com.apple.AppKit                0x00007fff8c52a533 _DPSNextEvent + 685
12  com.apple.AppKit                0x00007fff8c529df2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
13  com.apple.AppKit                0x00007fff8c5211a3 -[NSApplication run] + 517
14  com.apple.AppKit                0x00007fff8c4c5bd6 NSApplicationMain + 869
15  libdyld.dylib                   0x00007fff8edcb7e1 start + 1
4

5 回答 5

63

当我从组织者提交我的档案时,我也遇到了这个错误并在 XCode 5 中崩溃,而在 Xcode 4.6 中,几周前我还没有遇到任何问题。看来真正的问题是 XCode 无法找到匹配的签名身份;不知何故,以前创建的配置文件不兼容或无法识别。

正如 Manthan 所提到的,创建一个新的配置文件可以解决这个问题。以下是执行此操作的步骤:

  1. 登录https://developer.apple.com/membercenter/index.action
  2. Certificates, Identifiers & Profiles中,选择Provisioning Profiles
  3. 可选:选择旧配置文件,然后单击删除按钮。
  4. 单击右上角的添加按钮 (+)。
  5. 选择App Store作为分发方式;单击继续。
  6. 选择您的应用 ID;继续
  7. 选择您的证书。注意:确保您选择了您拥有私钥的证书(请参阅Applications/Utilities/KeyChain Access,钥匙串:登录,类别:我的证书。您的证书必须在此处列出,并在子列表中带有私钥,否则您将需要获得新的证书。)
  8. 输入名称,然后完成。
  9. 在 XCode Preferences (Cmd+,) 中选择Accounts选项卡,然后单击View Details...
  10. 点击左下角的刷新按钮。

现在应该出现新的配置文件(如果您在步骤 3 中删除旧配置文件,旧配置文件将消失)。

最后,设置构建设置并执行另一个存档。

  1. 在 XCode Project Navigator 中,选择项目目标,然后选择Build Settings
  2. 在搜索过滤器中输入“代码符号”
  3. Provisioning Profile for Release设置为新的配置文件(在步骤 10 中加载)。
  4. 将要发布的代码签名身份设置为步骤 7 中的证书(或者自动应该可以)
  5. 产品菜单->存档

此时,我能够验证并提交到应用商店。希望它也适合你。

于 2013-09-22T10:18:28.160 回答
10

尝试在新的 XCode 5 帐户中刷新 Certs/Provisioning Profiles

XCode > menu > Preferences > Accounts
Click on your Developer Account from list on the Left
View Details button on right
Pop down screen appears
Hit tiny refresh button on bottom left.


If it says NO SIGNING CERT FOUND then 

1. if this is your first deploy to App Store then you need a cert.
2. If youve done it before did you choose the right account from the list.
Should have ADMIN status

Top 表在第二列中应该有 VALID

在底部表格中按到期时间排序。

上下滚动,因为排序不会移动到表格的顶部或底部。

确保您的分发证书尚未过期。

如果是这样,您需要在 developer.apple.com 中更新它

我发现通过这个新帐户屏幕做任何与证书或证明资料相关的事情都更安全。如果您在 developer.apple.com 上更改它。不要下载它。只需转到 XCode 帐户并点击刷新。诸如 Organizer > Validate > Distribute 之类的东西就会表现出来。

XCode 帐户将所有证书显示为 VALID 和未来的到期日期

在此处输入图像描述


有人提到在 Build Settings 中设置 Prov 配置文件。

不要认为在 XCode 5 之后不再需要这个。

这是我的构建设置的屏幕截图。

如果您在 XCode > Accounts 中添加正确的 iTunes 开发者帐户。

当您存档 > 验证它时,您会获得一个分发 PP 列表来签署您的应用程序。所以不需要在 Build Settings 中设置它们。

在此处输入图像描述

在此处输入图像描述

于 2013-09-24T16:14:50.537 回答
5

您需要创建新的供应配置文件以进行分发以修复它。

希望它适合你。

于 2013-09-20T10:04:57.917 回答
2

Manthan 建议的答案对我验证并将我的应用程序提交到 AppStore 有用。会员中心的一切似乎都已正确设置,但应用程序仍然失败,并显示“没有可用于签名的身份”的通知,即使我已经正确设置了证书的私钥和配置文件。

没有可用于签名的身份

我最终撤销了我的证书(分发和开发人员),清理了我的配置文件,但我仍然遇到了同样的错误。我刚刚创建了一个完全相同的分发配置文件,手动从“库/移动设备/配置文件”中删除了旧的,以确保我可以构建、验证和提交就好了!!

于 2014-01-13T19:37:50.723 回答
0

除了(希望)有用之外,我已经成功地在 XCode 刚刚度过糟糕的一天的某些情况下直接使用了 Application Loader。

于 2013-09-22T11:17:43.503 回答