我创建了一个HTML5网络应用程序,我试图将其包装在Web视图中并提交到Mac App Store。
我做了以下事情:
1)打开Xcode 5.0.1并选择“创建一个新的Xcode项目”
2)在“OS X”下我选择了“应用程序”然后我选择了“Cocoa Application”然后选择了“Next”
3)我输入了“产品名称”和“公司标识符”,然后选择“下一步”(我保持所有其他设置不变),然后“创建”
4)在“一般”下> “部署信息”> “部署目标”我选择了10.6 - 因为我希望该应用程序与支持Mac App Store的所有OS X版本兼容
5)我点击“MainMenu.xib”并选择“Window - My App”
6)从“对象库”中,我将“Web View”对象注入我的窗口并使其填充窗口大小
7)我保存了项目,然后点击Xcode左上角的播放按钮
该应用尝试打开但冻结。我没有在Xcode中收到错误,但它确实打开了“main.m”并突出显示“返回NSApplicationMain(argc,argv);”绿色并说“Thread 1:signal SIGABRT”
我希望有人能澄清为什么这不起作用?并为我提供了链接Web视图对象的最后一步?我搜索了谷歌,找到了iOS的教程和一些OS X的教程,但是针对不同版本的Xcode。
答案 0 :(得分:2)
有几件事:
在您的xib中,选择“文件检查器”并确保您的xib部署版本与您的应用部署版本匹配。如果不这样做,则在旧版部署版本上运行应用程序时会遇到问题。
对于你的崩溃,如果你查看Xcode的调试控制台,你可能会看到这样的东西:
2013-10-31 23:07:10.654 Product[19035:303] *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (WebView)
2013-10-31 23:07:10.654 Product[19035:303] (
0 CoreFoundation 0x00007fff8eeab41c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff97daee75 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8eeab2cc +[NSException raise:format:] + 204
3 Foundation 0x00007fff96b83d69 _decodeObjectBinary + 2349
4 Foundation 0x00007fff96b84f2f -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1774
5 Foundation 0x00007fff96b8512b -[NSArray(NSArray) initWithCoder:] + 202
6 Foundation 0x00007fff96b83e22 _decodeObjectBinary + 2534
7 Foundation 0x00007fff96b832dd _decodeObject + 288
8 AppKit 0x00007fff946985bc -[NSView initWithCoder:] + 1949
9 Foundation 0x00007fff96b83e22 _decodeObjectBinary + 2534
10 Foundation 0x00007fff96b832dd _decodeObject + 288
11 AppKit 0x00007fff9469e458 -[NSWindowTemplate initWithCoder:] + 1043
12 Foundation 0x00007fff96b83e22 _decodeObjectBinary + 2534
13 Foundation 0x00007fff96b84f2f -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 1774
14 Foundation 0x00007fff96b84567 -[NSSet(NSSet) initWithCoder:] + 203
15 Foundation 0x00007fff96b83e22 _decodeObjectBinary + 2534
16 Foundation 0x00007fff96b832dd _decodeObject + 288
17 AppKit 0x00007fff94670780 -[NSIBObjectData initWithCoder:] + 155
18 Foundation 0x00007fff96b83e22 _decodeObjectBinary + 2534
19 Foundation 0x00007fff96b832dd _decodeObject + 288
20 AppKit 0x00007fff9467059f loadNib + 232
21 AppKit 0x00007fff9466fb9c +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] + 288
22 AppKit 0x00007fff9466f98c -[NSBundle(NSNibLoading) loadNibNamed:owner:topLevelObjects:] + 197
23 AppKit 0x00007fff9466f77b +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 357
24 AppKit 0x00007fff9466b617 NSApplicationMain + 448
25 Product 0x00000001000012c2 main + 34
26 Product 0x0000000100001294 start + 52
27 ??? 0x0000000000000003 0x0 + 3
)
在这种情况下,这是因为应用程序在加载笔尖时不知道WebView
是什么。您要解决此问题,您需要链接到WebKit
框架。
返回目标设置并选择“Build Phases”。展开“使用库链接二进制”并单击“+”。搜索Mac WebKit
框架并添加它。应用程序现在应该能够取消归档nib中的WebView
。