2011-12-07 43 views
6

Tôi đang gặp phải tất cả các loại lỗi xây dựng với SDK của Facebook vì ứng dụng của tôi sử dụng ARC. Tôi cố gắng để loại bỏ các tập tin Facebook từ trình biên dịch để tránh điều này, nhưng tôi nhận được một lỗi Apple Mach-O khi tôi loại bỏ các tập tin Facebook.m. Nếu tôi đặt nó trở lại trong các nguồn biên dịch, tôi nhận được các lỗi ARC.iPhone ARC & Facebook SDK

Bất kỳ ai gặp phải vấn đề này?

+0

Bạn đã khắc phục vấn đề này như thế nào? tôi đã thử thêm -fno-objc-arc nhưng tôi vẫn kết thúc có lỗi http://stackoverflow.com/questions/8701780/using-non-arc-code-in-an-arc-enabled-project-adding-facebook – Illep

Trả lời

9

Bạn có loại trừ chúng khỏi vòng cung bằng cờ Compiler -fno-objc-arc ? Bạn có thể thấy một trả lời here

5

Và đây là lý do tại sao việc phân phối một thư viện chia sẻ bằng cách sao chép và dán file là xấu. Một thư viện nên được phân phối như là các dự án Xcode của riêng nó với một mục tiêu thư viện tĩnh, để các yêu cầu thiết lập xây dựng của các dự án của bạn và các thư viện mà bạn sử dụng không thể vít lên một hay khác.

file lỗi cho Facebook SDK ở đây: https://github.com/facebook/facebook-ios-sdk/issues

Và trong thời gian trung bình thêm -fno-objc-arc cờ để các tập tin thực hiện trong Facebook SDK. Bạn có thể làm điều này bằng cách;

  1. Chọn mục tiêu ứng dụng của bạn
  2. Chuyển đến giai đoạn xây dựng tab
  3. Thêm cho mỗi tập tin dưới Compile Nguồn phần.
+0

đó là rất nhiều cho-eaching. nếu bạn chọn nhiều tệp và nhấn enter, bạn có thể đặt -fno-objc-arc trên tất cả các tệp cùng một lúc. –

0

thực sự có rất ít thay đổi cần thiết để làm cho SDK Facebook iOS tương thích với ARC. Tôi đã thực hiện các thay đổi trong mã của mình, nhưng, tôi không biết ai sẽ gửi lại cho cộng đồng, bất kỳ con trỏ nào?

đây là một bài tôi thực hiện để giải thích làm thế nào để sử dụng nó với ARC cách đơn giản trên Xcode 4.2: http://nabtech.wordpress.com/2012/02/02/facebook-ios-sdk-and-arc/

+0

Bạn có thể gửi email cho tôi phiên bản SDK Facebook iOS của bạn không, tôi bị kẹt với một vấn đề tương tự trong ngày. [email protected] – Illep

+1

Tôi thực sự đã tìm thấy một cách khác mà tôi đã đăng ở đây. khi bao gồm sdk, bao gồm nó với các tập tin dự án nhưng không kiểm tra thêm vào mục tiêu. sau đó vào bạn dự án thêm sdk như thư viện tĩnh.that cách bạn có thể biên dịch sdk mà không có ARC nhưng mã của bạn không có vấn đề. – nabulaer

2

SDK mới không hỗ trợ một cách rõ ràng ARC ra khỏi hộp, nhưng có một scrip vỏ để xây dựng một thư viện tĩnh có thể được sử dụng trong dự án ARC của bạn. Chỉ cần điều hướng đến repo git địa phương của bạn và chạy

% ~/facebook-ios-sdk/scripts/build_facebook_ios_sdk_static_lib.sh 

Điều này sẽ tạo ra các thư viện tĩnh dưới/thư mục lib/facebook-ios-sdk (ví dụ ~/facebook-ios-sdk/lib/facebook-ios-sdk). Sau đó, bạn có thể kéo thư mục facebook-ios-sdk vào dự án Xcode ứng dụng để bao gồm thư viện tĩnh của iOS Facebook SDK.

+0

Hỗ trợ ARC được mô tả trên trang SDK của Facebook: http://developers.facebook.com/docs/mobile/ios/build/ – djskinner

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