iPhone ARC & Facebook SDK

2019-02-22 02:59发布

问题:

I'm getting all kinds of build errors with Facebook's SDK because my app uses ARC. I try to remove the Facebook files from the compiler to avoid this, but I get an Apple Mach-O error when I remove the Facebook.m file. If I put that back in the compile sources, I get the ARC errors.

Anyone run into this?

回答1:

Do you exclude them from arc with Compiler flag -fno-objc-arc ? You can see a Answer here



回答2:

And this is why distributing a shared library by copy and pasting files is bad. A library should be distributed as it's own Xcode projects with a static library target, so that the build setting requirements of your projects and the libraries you use can not screw up one or the other.

File a bug for the Facebook SDK here: https://github.com/facebook/facebook-ios-sdk/issues

And in the mean time add the -fno-objc-arc flag to the implementation files in the Facebook SDK. You can do this by;

  1. Select your application target
  2. Go to the Build Phases tab
  3. Add for each file under the Compile Sources section.


回答3:

The new SDK does not explicitly support ARC out of the box, but there is a shell scrip to build a static library that can be used within your ARC project. Just navigate to your local git repo and run

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

This will create the static library under the /lib/facebook-ios-sdk folder (e.g. ~/facebook-ios-sdk/lib/facebook-ios-sdk). You may then drag the facebook-ios-sdk folder into the app Xcode project to include the iOS Facebook SDK static library.



回答4:

there are actually very few changes needed to make the Facebook iOS sdk compatible with ARC. I have made the changes in my code , but , I do not know who to send it back to the community, any pointers ?

here is a post I made to explain how to use it with ARC the simple way on Xcode 4.2: http://nabtech.wordpress.com/2012/02/02/facebook-ios-sdk-and-arc/