XCode 5在应用商店验证时崩溃

27

我是iOS开发新手,可能会错过相关内容。

我的应用在Xcode中已经开发并使用开发设备进行了测试,所以我知道它可以正常运行。

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

在构建设置中,我设置了为该应用程序创建的预配配置文件和与该预配配置文件相关联的代码签名标识。

当我转到组织者->档案以上传应用程序时,似乎一切都正常,我已经尝试了验证和分发,但我每次都得到相同的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
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. 选择你的 App ID,点击继续
  7. 选择你的证书。注意:确保你选择了一个具有私钥的证书(参见 应用程序/实用工具/钥匙串访问,密钥串:登录,类别:我的证书。你的证书必须列在此处并且有一个子列表中的私钥,否则你需要获取一个新的证书。)
  8. 输入名称,完成。
  9. 在XCode的首选项(Cmd+,)中选择 账户 选项卡,然后点击 查看详细信息…
  10. 点击左下角的刷新按钮。

现在新描述文件应该出现了(如果你在步骤3中删除了旧描述文件,则它将消失)。

最后,设置构建设置并执行另一个归档操作:

  1. 在XCode项目导航器中,选择项目目标,然后选择 构建设置
  2. 在搜索过滤器中输入“code sign”
  3. 发布设置描述文件为新的描述文件(如步骤10中加载的)。
  • 发布代码签名身份设置为步骤7中的证书(或自动应该可以)
  • 产品菜单->归档
  • 目前,我已经能够验证并提交到应用商店。希望对您也有效。


    1
    我发现自从XCode 4以后,您可以停止使用Build Settings来设置配置文件。使用Xcode>帐户,然后在组织者中签署应用程序时,它们会从列表中选择。有关屏幕截图,请参见上面的答案。 - brian.clear
    谢谢。我认为苹果每次更新XCode时都会故意破坏这一步骤,以便减少应用程序的提交;) - buster
    这对我也基本奏效了(Xcode 5.0)。我做了一点不同的事情:在项目设置中编辑项目设置以及目标。我将调试+发布的代码签名身份留为自动(我相信它会从配置文件中选择身份,所以保持简单)。 - Jacob Mouka
    这个问题在XCode 6.3中仍然存在。我按照rodamn建议的步骤操作,但没有成功。对我有用的方法是不使用XCode上传,而是使用ApplicationLoader应用程序。希望这能帮助其他遇到困难和沮丧的人。 - Joel

    10

    尝试在新版XCode 5帐户中刷新证书/配置文件

    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
    

    顶部表格第二列应显示VALID。

    底部表格按到期日期排序。

    滚动时不会移动到表格顶部或底部,请注意确保您的分发证书未过期,如果已过期,则需要在developer.apple.com中更新它。

    如果更改了开发者帐户,请勿下载它。只需转到XCode帐户并点击刷新。然后像Organizer> Validate> Distribute这样的事情就会表现良好。

    XCode账户显示所有证书都为“有效”,到期日期在未来

    输入图像描述


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

    我认为在XCode 5之后不再需要此操作。

    这是我的构建设置截图。

    如果您在XCode>帐户中添加了正确的iTunes开发人员帐户,则在归档>验证时,您将获得要使用分发PP签署应用程序的列表。因此,在Build Settings中设置它们是不必要的。

    输入图像描述

    输入图像描述


    1
    我一直被设置为代理。我怎么才能成为管理员? - Dejell
    1
    一个代理可以像管理员一样向应用商店提交。 - Alex Spencer
    嘿,如果其他分发文件过期了,那么它会影响原始文件吗? - Yohan

    5

    你需要创建新的分发配置文件来解决这个问题。

    希望对你有帮助。


    我遇到了完全相同的问题,但我不确定如何解决它。我该如何创建新的配置文件?当我尝试创建一个新的配置文件时,在线网站一直卡在“加载”上,而我也不确定如何在xcode中准确地执行此操作。@Manthan - Malfunction
    在苹果的开发者网站上创建新的发布配置文件,下载该配置文件并添加到您的组织者窗口中。这样就可以正常工作了。 - Manthan
    这正是问题所在:当我尝试创建一个页面时,苹果开发者网站上的页面一直挂在“加载”上。@Manthan - Malfunction
    你的解决方案正中我的需求。 - Jens Åström

    2
    Manthan提供的答案对我验证和提交我的应用程序到AppStore起到了作用。 尽管我的证书和配置文件设置正确,但在会员中心中似乎一切都设置正确,但仍然出现“没有可用于签名的标识”的通知,这让我感到困惑。
    我最终撤销了我的证书(分发和开发者),清理了我的配置文件,但仍然出现相同的错误。 我只是创建了一个完全相同的分发配置文件,手动从“Library / MobileDevice / Provisioning Profiles”中删除旧配置文件以确保,然后我就可以很好地构建,验证和提交了!
    注:图片保留原文链接。

    0
    作为一个(希望有用的)旁注,我在一些情况下成功地直接使用应用程序加载器,因为XCode可能出了点问题。

    你必须通过验证过程才能生成.ipa文件。因此,这是无关紧要的。 - Jakub Truhlář

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接