2016-02-06 34 views
6

當我嘗試運行離子生成IOS 或嘗試建立檔案由離子我得到這個錯誤Wizcorp/PhoneGap的,Facebook的插件:建築IOS未能

**FacebookConnectPlugin.m**:27:44: error: no visible @interface for 'CDVPlugin' declares the selector 'initWithWebView:' self = (FacebookConnectPlugin *)[super initWithWebView:theWebView]; ~~~~~ ^~~~~~~~~~~~~~~ /Applications/MAMP/htdocs/hybrid-mobile-app/platforms/ios/qudratApp/Plugins/phonegap-facebook-plugin/FacebookConnectPlugin.m:238:28: warning: comparison of constant 2 with boolean expression is always false [-Wtautological-constant-out-of-range-compare] if (!command.arguments == 2) { ~~~~~~~~~~~~~~~~~~^~ 1 warning and 1 error generated.

** BUILD FAILED **

The following build commands failed: CompileC build/qudratApp.build/Debug-iphonesimulatorqudratApp.build/Objects-normal/i386/FacebookConnectPlugin.o qudratApp/Plugins/phonegap-facebook-plugin/FacebookConnectPlugin.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler (1 failure) Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Applications/MAMP/htdocs/hybrid-mobile-app/platforms/ios/cordova/build-debug.xcconfig,-project,qudratApp.xcodeproj,ARCHS=i386,-target,qudratApp,-configuration,Debug,-sdk,iphonesimulator,build,VALID_ARCHS=i386,CONFIGURATION_BUILD_DIR=/Applications/MAMP/htdocs/hybrid-mobile-app/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Applications/MAMP/htdocs/hybrid-mobile-app/platforms/ios/build/sharedpch

+0

你對這個問題有很多運氣?我在第二天仍然沒有運氣。我們的錯誤看起來有些不同,但是與'CDVPlugin'的@interface很相似。 –

+0

Nopes沒有運氣仍然,我已經從Facebook刪除Facebook現在直到我得到一個修復它, 什麼是您的錯誤 –

+2

問題已解決,請參閱:https://github.com/Wizcorp/phonegap-facebook -plugin/issues/1227 –

回答

7

我安裝了PhoneGap的創建Xcode項目插件Facebook通過本地複製副本,並在安裝後重新將FacebookSDK.framework添加到Xcode,但這些都不適用於我。我解決的方法是安裝https://github.com/jeduan/cordova-plugin-facebook4

  1. 刪除PhoneGap的插件:

    ionic plugin rm phonegap-facebook-plugin

  2. 克隆一個插件:

    git clone https://github.com/jeduan/cordova-plugin-facebook4.git

  3. 手動添加插件:

    cordova -d plugin add PATH/cordova-plugin-facebook4 --variable APP_ID="*****" --variable APP_NAME="*****"

多數民衆贊成在我身上。

+1

這對我也很有用,並節省了大量時間:) –

+0

僅供參考,您可以讓插件添加爲您完成所有下載工作。例如'cordova插件添加cordova-plugin-facebook4 - 變量APP_ID =「*****」 - 變量APP_NAME =「*****」' – Jacksonkr

1

您可以通過兩種方式解決這個問題:

1-通過[super init]更換[super initWithWebView:theWebView]

2-添加一個編譯器標誌FacebookConnectPlugin.m禁用ARC,編譯器標誌是-fno-objc弧

從我的角度來看,我推薦第二個解決方案,因爲它不影響的代碼。

如果您正在尋找一步一步的解決方案,請在Xcode中執行以下操作。

  1. 選擇您的主項目。
  2. 選擇目標
  3. 轉到建設階段
  4. 展開編譯資源點擊選擇「FacebookConnectPlugin.m」
  5. 在「FacebookConnectPlugin.m」的右側,你可以添加 以下編譯器標誌

    -fno-objc弧

現在,如果您想了解詳細的問題:

FacebookConnectPlugin.m是在非ARC環境下構建的,他控制了他的內存消耗。但Xcode不允許這樣做,因爲它使用ARC來控制整個應用程序的內存消耗。所以這個衝突的解決方案是修改FacebookConnectPlugin.m代碼來使用ARC,或者通過添加編譯器標誌告訴Xcode你負責該類的內存管理。