背景:
我正在尝试将 Phonegap 与 cocoapods 一起使用。Phonegap 已经存在从命令行编译的问题,所以我只是将 Xcode 与生成的项目文件一起使用(并且假设我在使用 cocoapods 时无论如何都必须这样做)。
我已经在 Github 上推送了一个带有我的问题的复制空项目: https ://github.com/Dan2552/phonegap-reproducable-issue
build_ios
您可以在 repo 的根目录中的脚本中看到我在制作一个全新的全新 Phonegap 应用程序后所做的步骤。但我也推送了生成的项目文件(平台/ios),因此没有Phonegap 的任何人都应该能够打开该项目。
问题:
我在编译时遇到了一个奇怪的问题。预捆绑的 Cordova 库和 cocoapods 可能存在问题。
在使用 Phonegap 生成项目并添加 cocoapods 后不执行任何操作进行构建时,出现以下错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_OTPublisher", referenced from:
objc-class-ref in libPods.a(OpenTokPlugin.o)
"_OBJC_CLASS_$_OTSession", referenced from:
objc-class-ref in libPods.a(OpenTokPlugin.o)
"_OBJC_CLASS_$_OTSubscriber", referenced from:
objc-class-ref in libPods.a(OpenTokPlugin.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Cocoapods 警告:
[!] 目标
HelloWorld [Debug]
覆盖OTHER_LDFLAGS
`Pods/Pods.xcconfig' 中定义的构建设置。[!] 目标
HelloWorld [Debug - Release]
覆盖OTHER_LDFLAGS
`Pods/Pods.xcconfig' 中定义的构建设置。
因此我尝试OTHER_LDFLAGS
完全删除(Xcode中的'Other Linker Flags')条目。这可以在 iOS 设备上成功编译,但不能在模拟器上编译,项目也不会在存档上构建。
为模拟器构建将得到与以前相同的错误(Undefined symbols for architecture
)
存档建筑将获得
/Users/dan2552/projects/ReproducableProblems/OpenTokPhonegap/Classes/OpentokPlugin.h:9:9: 'Cordova/CDVPlugin.h' file not found
我也尝试过放入$(inherited)
whichOTHER_LDFLAGS
产生与删除它们相同的结果。