当我尝试运行离子构建ios时 或尝试为离子创建的xcode项目构建存档我得到此错误
** FacebookConnectPlugin.m **:27:44:错误:没有可见的@interface用于' CDVPlugin'声明选择器' initWithWebView:'自我= (FacebookConnectPlugin *)[超级initWithWebView:theWebView]; ~~~~~ ^ ~~~~~~~~~~~~~~ /Applications/MAMP/htdocs/hybrid-mobile-app/platforms/ios/qudratApp/Plugins/phonegap-facebook-plugin/FacebookConnectPlugin.m:238:28: 警告:常量2与布尔表达式的比较总是如此 false [-Wututological-constant-out-of-range-compare] if (!command.arguments == 2){~~~~~~~~~~~~~~~~~~ ^ ~1警告和1 生成错误。
**建筑失败**
以下构建命令失败:CompileC 建立/ qudratApp.build / Debug-iphonesimulatorqudratApp.build /对象 - 正常/ I386 / FacebookConnectPlugin.o qudratApp /插件/ PhoneGap的-Facebook的插件/ FacebookConnectPlugin.m 正常的i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler(1 失败)错误:命令的错误代码65:带args的xcodebuild: -xcconfig,/应用/ MAMP / htdocs中/混合移动应用程序/平台/ IOS /科尔多瓦/集结debug.xcconfig,-project,qudratApp.xcodeproj,ARCHS = I386,-target,qudratApp, - 构型,调试, - SDK,iphonesimulator,构建,VALID_ARCHS = I386,CONFIGURATION_BUILD_DIR = /应用/ MAMP / htdocs中/混合移动应用程序/平台/ IOS /建造/仿真器,SHARED_PRECOMPS_DIR = /应用/ MAMP / htdocs中/混合移动应用程序/平台/ IOS /建造/ sharedpch
答案 0 :(得分:7)
我通过本地克隆的副本安装了phonegap插件facebook,并在安装后将FacebookSDK.framework重新添加到Xcode,但这些都不适用于我。我解决的方法是安装https://github.com/jeduan/cordova-plugin-facebook4。
删除phonegap插件:
ionic plugin rm phonegap-facebook-plugin
克隆下一个插件:
git clone https://github.com/jeduan/cordova-plugin-facebook4.git
手动添加插件:
cordova -d plugin add PATH/cordova-plugin-facebook4 --variable APP_ID="*****" --variable APP_NAME="*****"
这对我有用。
答案 1 :(得分:1)
您可以通过两种方式解决此问题:
1- [super initWithWebView:theWebView]
替换[super init]
。
2-向FacebookConnectPlugin.m添加编译器标志以禁用ARC,编译器标志为-fno-objc-arc
从我的观点来看,我推荐第二种解决方案,因为它不会影响代码。
如果您正在寻找一步一步的解决方案,请在Xcode中执行以下操作。
在“FacebookConnectPlugin.m”的右侧,您可以添加 以下编译器标志
-fno-objc弧
现在,如果您想详细了解问题:
FacebookConnectPlugin.m是在非ARC环境下构建的,他控制着自己的内存消耗。但Xcode不允许这样做,因为它使用ARC来控制整个应用程序的内存消耗。所以解决这个冲突的方法是修改FacebookConnectPlugin.m代码以使用ARC,或者通过添加编译器标志告诉Xcode你负责这个类的内存管理。