启动崩溃iOS应用程序
问题描述:
我正在制作一个应用程序,它使用GCM,后台任务和钥匙串来保存用户的信息。我通过将我们的设备UDID添加到Apple开发者帐户,发布了使用我的开发认证的版本。但几天后,我收到了用户的反馈,每当启动时都会崩溃。我审查代码,但无法找到这些错误。我得到这个日志:启动崩溃iOS应用程序
Nov 23 16:34:51 iPhone securityd[9174] <Error>: secTaskDiagnoseEntitlements MISSING keychain entitlements: no stored taskRef found
Nov 23 16:34:51 iPhone securityd[9174] <Error>: secTaskDiagnoseEntitlements MISSING keychain entitlements: no stored taskRef found
Nov 23 16:34:51 iPhone amfid[10315] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Nov 23 16:34:51 iPhone securityd[9174] <Error>: secTaskDiagnoseEntitlements MISSING keychain entitlements: no stored taskRef found
Nov 23 16:34:51 iPhone securityd[9174] <Error>: secTaskDiagnoseEntitlements MISSING keychain entitlements: no stored taskRef found
Nov 23 16:34:51 iPhone amfid[10315] <Error>: SecTrustEvaluate [leaf Revocation1]
Nov 23 16:34:51 iPhone amfid[10315] <Notice>: developer cert trust result = 5
Nov 23 16:34:51 iPhone amfid[10315] <Error>: /private/var/mobile/Containers/Bundle/Application/446DE89C-A427-4A51-AEA9-7AC86DFD088A/App.app/App not valid: 0xe8008018: The identity used to sign the executable is no longer valid.
Nov 23 16:34:51 iPhone com.apple.xpc.launchd[1] (UIKitApplication:com.xxxxx.App[0xb005][10966]) <Notice>: Service exited due to signal: Killed: 9
Nov 23 16:34:51 iPhone assertiond[9148] <Warning>: Unable to obtain a task name port right for pid 10966: (os/kern) failure (5)
Nov 23 16:34:51 iPhone SpringBoard[9139] <Warning>: Unable to register for exec notifications: No such process
Nov 23 16:34:51 iPhone SpringBoard[9139] <Warning>: Unable to obtain a task name port right for pid 10966: (os/kern) failure (5)
Nov 23 16:34:51 iPhone SpringBoard[9139] <Warning>: Unable to obtain a task name port right for <FBApplicationProcess: 0x1425836d0; com.xxxx.App; pid: 10966>
Nov 23 16:34:51 iPhone SpringBoard[9139] <Warning>: Application 'UIKitApplication:com.xxxxx.App[0xb005]' exited abnormally via signal.
Nov 23 16:34:51 iPhone SpringBoard[9139] <Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov 23 16:34:51 iPhone SpringBoard[9139] <Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov 23 16:34:51 iPhone SpringBoard[9139] <Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov 23 16:34:51 iPhone SpringBoard[9139] <Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov 23 16:34:51 iPhone SpringBoard[9139] <Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov 23 16:34:51 iPhone SpringBoard[9139] <Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov 23 16:34:51 iPhone SpringBoard[9139] <Warning>: Application '(null)' exited for an unknown reason.
请帮我这个。谢谢你们。我经常撤销并创建新的证书和配置文件,并用它来编程。它很好吗?
答
我知道你有一个解决方法,但我更愿意解释为什么发生这种情况
您需要在项目的授权文件,并与开发或分销启用APNS。 Apple Doc
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>development</string>
</dic>
也许你的文件是这样的,但指向的分布,所以使用的发展将导致崩溃
希望这有助于
答
虽然堆栈是不是很清楚,它缩小您的碰撞几件事情。
您的证书似乎并不有效 - 请转到钥匙串访问,并检查是否有一个有效的证书和密钥对连接到它。
您的供应配置文件失效。转到developer.apple.com并确保您使用的配置文件是有效的。
由于某种原因,Facebook应用程序权限被吊销。请检查您的Facebook应用程序并确保一切正常。
编译时出现任何错误?像往常一样,尝试清理该项目:'cmd' +'shift' +'clean',这有时可以帮助。另外'用于签署可执行文件的身份不再有效.'意味着签名身份有些不正确,可能不是崩溃的原因,但是您应该尝试修复此问题。 – LinusGeffarth
编译时我没有得到错误,我曾经想过这个身份是无效的。但目前一些设备仍在运行,但其他设备却崩溃,无法再次启动应用。我不知道如何在这里找到什么错误。 –
试试这个https://forums.developer.apple.com/thread/20193 –