2016-02-06 34 views
6

Khi tôi cố gắng chạy ion build ios hoặc cố gắng xây dựng kho lưu trữ cho các dự án xcode tạo ra bởi ion tôi nhận được lỗi nàyWizcorp/PhoneGap-facebook-plugin: xây dựng ios thất bại

**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

Bạn gặp nhiều may mắn với vấn đề này? Tôi đang ở ngày thứ hai và vẫn không có may mắn. Lỗi của chúng tôi trông hơi khác một chút, nhưng cũng giống với @interface cho 'CDVPlugin'. –

+0

Nopes không có may mắn, tôi đã xóa facebook từ ios cho đến bây giờ cho đến khi tôi nhận được một sửa chữa cho nó, Chính xác lỗi của bạn là gì –

+2

Vấn đề đã được giải quyết, tham khảo: https://github.com/Wizcorp/phonegap-facebook -plugin/issues/1227 –

Trả lời

7

Tôi đã cài đặt PhoneGap plugin facebook thông qua một bản sao nhân bản cục bộ và cũng có thể thêm lại FacebookSDK.framework vào Xcode sau khi cài đặt, nhưng không cái nào trong số này làm việc với tôi. Cách tôi giải quyết được cài đặt https://github.com/jeduan/cordova-plugin-facebook4.

  1. Hủy bỏ các plugin PhoneGap:

    ionic plugin rm phonegap-facebook-plugin

  2. Clone plugin tiếp theo:

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

  3. Thêm plugin bằng tay:

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

Đó là cách nó hoạt động với tôi.

+1

Điều đó cũng hiệu quả đối với tôi và tiết kiệm rất nhiều thời gian :) –

+0

FYI bạn có thể bổ sung plugin làm tất cả công việc tải xuống cho bạn. ví dụ: 'cordova plugin thêm cordova-plugin-facebook4 --variable APP_ID =" ***** "- biến thể APP_NAME =" ***** " – Jacksonkr

1

Bạn có thể giải quyết việc này theo 2 cách:

1- thay [super initWithWebView:theWebView] bởi [super init].

2- thêm một lá cờ biên dịch để FacebookConnectPlugin.m để vô hiệu hóa ARC, trình biên dịch cờ là -fno-objc-arc

Từ quan điểm của tôi, tôi khuyên bạn nên giải pháp thứ hai vì nó không ảnh hưởng đến các mã.

nếu bạn đang tìm kiếm giải pháp từng bước, hãy làm như sau trong Xcode.

  1. Chọn dự án chính của bạn.
  2. Chọn mục tiêu của bạn
  3. Go để xây dựng giai đoạn
  4. Mở rộng các nguồn lực tap biên soạn chọn "FacebookConnectPlugin.m"
  5. Ở phía bên phải của "FacebookConnectPlugin.m", bạn có thể thêm biên dịch sau cờ

    -fno-objc-arc

Bây giờ nếu bạn muốn hiểu các vấn đề chi tiết:

FacebookConnectPlugin.m được xây dựng trong môi trường không phải ARC và kiểm soát mức tiêu thụ bộ nhớ của mình. nhưng Xcode không cho phép điều đó vì nó sử dụng ARC để kiểm soát mức tiêu thụ bộ nhớ của toàn bộ ứng dụng. Vì vậy, giải pháp cho cuộc xung đột này là cải tiến mã FacebookConnectPlugin.m để sử dụng ARC hoặc chỉ cần nói cho Xcode biết rằng bạn chịu trách nhiệm quản lý bộ nhớ của lớp này bằng cách thêm cờ trình biên dịch.

Các vấn đề liên quan