症状:应用程序在启动后立即崩溃:
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设备上运行the sample project即可重现它。
有一个相关的SO问题(Facebook SDK 3.1 for iOS - runs on iOS6, but crashes on iOS 5.x),建议使框架可选。据我所知,这不能通过Xamarin.iOS完成,但绑定中的LinkWith
程序集属性已经有WeakFrameworks = "Accounts AdSupport Social"
,我认为这相当于在XCode中使这些框架可选。所以,没有帮助。
问题似乎是MonoTouch绑定,Xamarin.iOS或Facebook iOS SDK本身的错误。有什么想法吗?
答案 0 :(得分:9)
可以很容易地解决..
点击您的项目目标。
然后转到摘要
链接的框架和库
将所需选项更改为三个框架的可选项:
Social.framework
AdSupport.framework程式
Accounts.framework
现在您还可以在iPAD或iPHONE模拟器5或5.1上运行和检查您的代码
答案 1 :(得分:7)
这是known bug已修复(但修复程序尚未达到Xamarin.iOS的任何稳定版本 - 错误报告称它将包含在6.2.2版本中,但是没发生。)
目前唯一已知的解决方法是使用旧版本的Facebook SDK。