症状:应用程序在启动后立即崩溃:
OS Version: iPhone OS 5.1.1 (9B206)
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread: 0
Dyld Error Message:
Symbol not found: _ACFacebookAppIdKey
Referenced from: /var/mobile/Applications/C9CCEC42-DD12-40D1-91EE-965A8AC37AE4/MyApp.app/MyApp
Expected in: /System/Library/Frameworks/Accounts.framework/Accounts
in /var/mobile/Applications/1234EC42-0012-40D1-1234-965A8AC31234/MyApp.app/MyApp
Dyld Version: 199.6
此问题特定于 Facebook iOS SDK 的 MonoTouch 绑定,并且仅在 iOS 5.0 和 5.1 中发生。只需在 iOS 5 设备上运行示例项目即可重现它。
有一个相关的 SO 问题(适用于 iOS 的 Facebook SDK 3.1 - 在 iOS6 上运行,但在 iOS 5.x 上崩溃)建议将框架设为可选。据我所知,这不能从 Xamarin.iOS 完成,但LinkWith
绑定中的程序集属性已经具有WeakFrameworks = "Accounts AdSupport Social"
,我认为这相当于使这些框架在 XCode 中成为可选。所以,那里没有帮助。
问题似乎是 MonoTouch 绑定、Xamarin.iOS 或 Facebook iOS SDK 本身中的错误。有任何想法吗?