Dan*_*552 7 xcode build ios cocoapods cordova
我正在尝试使用带有cocoapods的Phonegap.Phonegap已经存在从命令行编译的问题所以我只是将Xcode与生成的项目文件一起使用(并且在使用cocoapods时我无论如何都必须这样做).
我用我的问题向Github推送了一个复制的空项目:https: //github.com/Dan2552/phonegap-reproducable-issue
您可以build_ios在repo的根目录中的脚本中创建一个简单的全新Phonegap应用程序后看到我所做的步骤.但是我也推高了生成的项目文件(platforms/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)
Run Code Online (Sandbox Code Playgroud)
Cocoapods警告:
[!]目标
HelloWorld [Debug]覆盖OTHER_LDFLAGS`Pods/Pods.xcconfig'中定义的构建设置.[!]目标
HelloWorld [Debug - Release]覆盖OTHER_LDFLAGS`Pods/Pods.xcconfig'中定义的构建设置.
因此我尝试完全删除OTHER_LDFLAGS(Xcode中的"其他链接标志")条目.这可以在iOS设备上成功编译,但不能在模拟器上编译,项目也不会在存档上构建.
构建模拟器将获得与之前相同的错误(Undefined symbols for architecture)
建立档案将得到
/Users/dan2552/projects/ReproducableProblems/OpenTokPhonegap/Classes/OpentokPlugin.h:9:9: 'Cordova/CDVPlugin.h' file not found
我也试图把$(inherited)在OTHER_LDFLAGS产生相同的结果删除它们.
您包含的框架没有 Simulator (i386) 切片:
$ xcrun -sdk iphoneos lipo -info Pods/OpenTokSDK-WebRTC/Opentok.framework/Versions/A/Opentok
Architectures in the fat file: Pods/OpenTokSDK-WebRTC/Opentok.framework/Versions/A/Opentok are: armv7 armv7s
Run Code Online (Sandbox Code Playgroud)
因此它的类无法链接到模拟器。
此外,如果您计划使用 CocoaPods,您可以完全删除 Cordova 项目和静态库并将其添加pod 'Cordova'到您的 Podfile 中。
| 归档时间: |
|
| 查看次数: |
1655 次 |
| 最近记录: |