在Xcode 5.0.1中创建OS X Cocoa App Web视图

时间:2013-11-01 03:49:53

标签: xcode macos xcode5

我创建了一个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。

1 个答案:

答案 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

Location of linked libraries for a target