有人设法在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中是否有一些用法?它可以修复吗?我很高兴看到它,但如果有人已经知道它会省去重复工作的麻烦......
答案 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之间建立桥梁,您可以点击此链接:
然后我遇到了这个问题
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中运行良好。 : - )
希望它可以帮助你。