tvOS上的GCDWebServer

时间:2015-10-31 10:57:15

标签: gcdwebserver

有人设法在tvos上使用GCDWebServer吗?我尝试在Xcode 7.1中编译,然后得到:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_GCDWebServer", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_GCDWebServerDataResponse", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_GCDWebServerRequest", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

在tvOS没有的框架的GCDWebServer中是否有一些用法?它可以修复吗?我很高兴看到它,但如果有人已经知道它会省去重复工作的麻烦......

2 个答案:

答案 0 :(得分:0)

GCDWebServer建立在tvOS之上,latest pre-release version有一个示例tvOS项目。

如果你使用CocoaPods或Carthage并将其配置为指向master而不是3.x,那么它应该有效。

答案 1 :(得分:0)

是的。最后,我得到了解决这个问题的方法。

顺便说一下。我使用 Cocoapods 在我的项目中安装 GCDWebServer ,我用我的手机应用程序一起构建我的电视应用程序,但它们是不同的目标。

在我的情况下,我使用 Objective-C 来编写我的手机应用并使用 Swift 来编写电视应用。所以我应该添加桥接标题对我的电视目标。

目标>你的电视目标>构建设置> Swift编译器> Objective-C Bridging Header>添加此

$(SRCROOT)/YOUR-TV-PROJECT/YOUR-PROJECT-MODULE-Bridging-Header.h

然后我在项目中创建此头文件并添加

#import <GCDWebServer/GCDWebServer.h>
#import <GCDWebServer/GCDWebServerDataResponse.h>

如何在Swift和Objective-C之间建立桥梁,您可以点击此链接:

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

然后我遇到了这个问题

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_GCDWebServer", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_GCDWebServerDataResponse", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_GCDWebServerRequest", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我认为这可能是我建筑物的一些问题。也许有些图书馆遗失了。所以我去了目标&gt;你的电视目标&gt;构建短语&gt; Link Binary With Libraries并添加这些框架等:

libxml2.2.tbd
libz.1.2.5.tbd
CFNetwork.framework
MobileCoreServices.framework
UIKit.framework

这是我的TV-TARGET 构建阶段。我们还应该查看Pods&gt; GCDWebServer&gt;构建设置等。因为它在Pods中,所以我们必须编辑 Podfile 并重建我的项目。这是Podfile。你应该在Podfile中分离目标。

source 'https://github.com/CocoaPods/Specs.git'

def common_pods
    pod 'Fabric' , '~> 1.6.4'
end

def tv_pods
    pod 'GCDWebServer' , '~ 3.3.2'
end

target :phoneApp do
    link_with 'YOUR-PHONE-TARGET'
    platform :ios, '8.0'
    common_pods
end

target :tvApp do
    link_with 'YOUR-TV-TARGET'
    platform :tvos, '9.0'
    tv_pods
end

编辑Podfile并运行:

pod install 

您可以在TV-TARGET中调用GCDWebServer,GCDWebServer在您的tvOS中运行良好。 : - )

希望它可以帮助你。