Skip to content

Commit

Permalink
Update FB for iOS to 4.15.1
Browse files Browse the repository at this point in the history
updates Facebook.iOS and Facebook.AudienceNetwork
  • Loading branch information
bholmes committed Sep 22, 2016
1 parent dab6bed commit 53f28cd
Show file tree
Hide file tree
Showing 12 changed files with 344 additions and 50 deletions.
10 changes: 6 additions & 4 deletions Facebook.AudienceNetwork.iOS/build.cake
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@

#load "../common.cake"

var SDK_DATE = "20160412";
var SDK_VERSION = "4.13.1";
var SDK_VERSION = "4.15.1";
var SDK_URL = string.Format ("https://origincache.facebook.com/developers/resources/?id=FacebookSDKs-iOS-{0}.zip", SDK_VERSION);
var SDK_FILE = "FacebookSDKs-iOS.zip";
var SDK_PATH = "./externals/FacebookSDKs";
Expand All @@ -25,7 +24,10 @@ var buildSpec = new BuildSpec () {
},

Samples = new ISolutionBuilder [] {
new IOSSolutionBuilder { SolutionPath = "./samples/FBAudienceNetworkSample/FBAudienceNetworkSample.sln", BuildsOn = BuildPlatforms.Mac }
new IOSSolutionBuilder {
SolutionPath = "./samples/FBAudienceNetworkSample/FBAudienceNetworkSample.sln",
Configuration = "Release|iPhone",
BuildsOn = BuildPlatforms.Mac }
},

Components = new [] {
Expand All @@ -40,7 +42,7 @@ Task ("externals")
if (!DirectoryExists ("./externals/"))
CreateDirectory ("./externals");
DownloadFile (SDK_URL, "./externals/" + SDK_FILE, new DownloadFileSettings
DownloadFile (SDK_URL, "./externals/" + SDK_FILE, new Cake.Xamarin.Build.DownloadFileSettings
{
UserAgent = "curl/7.43.0"
});
Expand Down
2 changes: 1 addition & 1 deletion Facebook.AudienceNetwork.iOS/component/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: 4.13.1.0
version: 4.15.1.0
name: Facebook Audience Network iOS SDK
id: fbaudiencenetworkios
publisher: Xamarin Inc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ interface AdChoicesView

// @property (nonatomic, weak, readwrite) FBNativeAd *nativeAd;
[Export ("nativeAd", ArgumentSemantic.Weak)]
[NullAllowed]
NativeAd NativeAd { get; set; }

// @property (nonatomic, assign, readwrite) UIRectCorner corner;
Expand Down Expand Up @@ -139,10 +140,6 @@ interface AdSizes
[Field ("kFBAdSizeInterstitial", "__Internal")]
IntPtr _kFBAdSizeInterstitial { get; }

[Internal]
[Field ("kFBAdSizeInterstital", "__Internal")]
IntPtr _kFBAdSizeInterstital { get; }

[Internal]
[Field ("kFBAdSizeHeight250Rectangle", "__Internal")]
IntPtr _kFBAdSizeHeight250Rectangle { get; }
Expand Down Expand Up @@ -196,13 +193,13 @@ interface AdViewDelegate
[Export ("adView:didFailWithError:")]
void AdViewDidFail (AdView adView, NSError error);

[Export ("viewControllerForPresentingModalView")]
UIViewController ViewControllerForPresentingModalView ();
[Export ("viewControllerForPresentingModalView", ArgumentSemantic.Strong)]
UIViewController ViewControllerForPresentingModalView { get; }
}

[DisableDefaultCtor]
[BaseType (typeof (UIViewController), Name = "FBInterstitialAd")]
interface InterstitialAd : AdViewDelegate
[BaseType (typeof (NSObject), Name = "FBInterstitialAd")]
interface InterstitialAd
{

[Export ("placementID")]
Expand All @@ -213,6 +210,7 @@ interface InterstitialAd : AdViewDelegate
IInterstitialAdDelegate Delegate { get; set; }

[Export ("initWithPlacementID:")]
[DesignatedInitializer]
IntPtr Constructor (string placementId);

[Export ("isAdValid")]
Expand Down Expand Up @@ -353,6 +351,10 @@ interface NativeAd

[Export ("isAdValid")]
bool IsAdValid { get; }

[Export ("getAdNetwork", ArgumentSemantic.Copy)]
[NullAllowed]
string AdNetwork { get; }
}

interface INativeAdDelegate
Expand Down Expand Up @@ -550,7 +552,8 @@ interface NativeAdsManager
void DisableAutoRefresh ();

// -(FBNativeAd *)nextNativeAd;
[Export ("nextNativeAd")]
[Export ("nextNativeAd", ArgumentSemantic.Strong)]
[NullAllowed]
NativeAd NextNativeAd { get; }
}

Expand Down Expand Up @@ -589,7 +592,7 @@ interface NativeAdTableViewAdProvider
// @interface FBNativeAdTableViewCellProvider : FBNativeAdTableViewAdProvider
[DisableDefaultCtor]
[BaseType (typeof (NativeAdTableViewAdProvider), Name = "FBNativeAdTableViewCellProvider")]
interface NativeAdTableViewCellProvider
interface NativeAdTableViewCellProvider : IUITableViewDataSource
{

// -(instancetype)initWithManager:(FBNativeAdsManager *)manager forType:(FBNativeAdViewType)type;
Expand Down Expand Up @@ -645,6 +648,7 @@ interface NativeAdViewAttributes : INSCopying
{
// - (nonnull instancetype)initWithDictionary:(nonnull NSDictionary *) dict;
[Export ("initWithDictionary:")]
[DesignatedInitializer]
IntPtr Constructor (NSDictionary dictionary);

// @property (copy, nonatomic) UIColor * backgroundColor;
Expand Down Expand Up @@ -700,4 +704,56 @@ interface NativeAdViewAttributes : INSCopying
[Export ("defaultAttributesForType:")]
NativeAdViewAttributes DefaultAttributes (NativeAdViewType type);
}

// @interface FBNativeAdCollectionViewAdProvider : NSObject
[BaseType (typeof (NSObject), Name = "FBNativeAdCollectionViewAdProvider")]
interface NativeAdCollectionViewAdProvider
{
// @property (nonatomic, weak) id<FBNativeAdDelegate> _Nullable delegate;
[NullAllowed, Export ("delegate", ArgumentSemantic.Weak)]
INativeAdDelegate Delegate { get; set; }

// -(instancetype _Nonnull)initWithManager:(FBNativeAdsManager * _Nonnull)manager __attribute__((objc_designated_initializer));
[Export ("initWithManager:")]
[DesignatedInitializer]
IntPtr Constructor (NativeAdsManager manager);

// -(FBNativeAd * _Nonnull)collectionView:(UICollectionView * _Nonnull)collectionView nativeAdForRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath;
[Export ("collectionView:nativeAdForRowAtIndexPath:")]
NativeAd GetNativeAdForRow (UICollectionView collectionView, NSIndexPath indexPath);

// -(BOOL)isAdCellAtIndexPath:(NSIndexPath * _Nonnull)indexPath forStride:(NSUInteger)stride;
[Export ("isAdCellAtIndexPath:forStride:")]
bool IsAdCellAtIndexPath (NSIndexPath indexPath, nuint stride);

// -(NSIndexPath * _Nonnull)adjustNonAdCellIndexPath:(NSIndexPath * _Nonnull)indexPath forStride:(NSUInteger)stride;
[Export ("adjustNonAdCellIndexPath:forStride:")]
NSIndexPath AdjustNonAdCellIndexPath (NSIndexPath indexPath, nuint stride);

// -(NSUInteger)adjustCount:(NSUInteger)count forStride:(NSUInteger)stride;
[Export ("adjustCount:forStride:")]
nuint AdjustCount (nuint count, nuint stride);
}

// @interface FBNativeAdCollectionViewCellProvider : FBNativeAdCollectionViewAdProvider
[BaseType (typeof (NativeAdCollectionViewAdProvider), Name = "FBNativeAdCollectionViewCellProvider")]
interface NativeAdCollectionViewCellProvider
{
// -(instancetype _Nonnull)initWithManager:(FBNativeAdsManager * _Nonnull)manager forType:(FBNativeAdViewType)type;
[Export ("initWithManager:forType:")]
IntPtr Constructor (NativeAdsManager manager, NativeAdViewType type);

// -(instancetype _Nonnull)initWithManager:(FBNativeAdsManager * _Nonnull)manager forType:(FBNativeAdViewType)type forAttributes:(FBNativeAdViewAttributes * _Nonnull)attributes __attribute__((objc_designated_initializer));
[Export ("initWithManager:forType:forAttributes:")]
[DesignatedInitializer]
IntPtr Constructor (NativeAdsManager manager, NativeAdViewType type, NativeAdViewAttributes attributes);

// -(UICollectionViewCell * _Nonnull)collectionView:(UICollectionView * _Nonnull)collectionView cellForItemAtIndexPath:(NSIndexPath * _Nonnull)indexPath;
[Export ("collectionView:cellForItemAtIndexPath:")]
UICollectionViewCell GetCell (UICollectionView collectionView, NSIndexPath indexPath);

// -(CGFloat)collectionView:(UICollectionView * _Nonnull)collectionView heightForRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath;
[Export ("collectionView:heightForRowAtIndexPath:")]
nfloat GetHeightForRow (UICollectionView collectionView, NSIndexPath indexPath);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,10 @@

[assembly: AssemblyVersion ("4.12.0.0")]
[assembly: LinkerSafe]
[assembly: LinkWith ("Facebook.AudienceNetwork.a", LinkTarget.Simulator | LinkTarget.Simulator64 | LinkTarget.ArmV7 | LinkTarget.Arm64, Frameworks = "AVFoundation CoreGraphics CoreImage CoreMedia OpenGLES QuartzCore Security StoreKit", WeakFrameworks = "AdSupport CoreMotion SafariServices WebKit", LinkerFlags = "-lc++ -lxml2", SmartLink = true, ForceLoad = true)]
[assembly: LinkWith ("Facebook.AudienceNetwork.a",
LinkTarget.Simulator | LinkTarget.Simulator64 | LinkTarget.ArmV7 | LinkTarget.Arm64,
Frameworks = "AudioToolbox AVFoundation CoreGraphics CoreImage CoreMedia OpenGLES QuartzCore Security StoreKit",
WeakFrameworks = "AdSupport CoreMotion SafariServices WebKit",
LinkerFlags = "-lc++ -lxml2",
SmartLink = true,
ForceLoad = true)]
40 changes: 11 additions & 29 deletions Facebook.iOS/build.cake
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@

#load "../common.cake"

var SDK_DATE = "20160412";
var SDK_VERSION = "4.13.1";
var SDK_URL = string.Format ("https://origincache.facebook.com/developers/resources/?id=FacebookSDKs-iOS-{0}.zip", SDK_VERSION);
var SDK_FILE = "FacebookSDKs-iOS.zip";
var SDK_PATH = "./externals/FacebookSDKs";

var TARGET = Argument ("t", Argument ("target", "Default"));

var buildSpec = new BuildSpec () {
Expand All @@ -25,8 +19,15 @@ var buildSpec = new BuildSpec () {
},

Samples = new ISolutionBuilder [] {
new IOSSolutionBuilder { SolutionPath = "./samples/FacebookiOSSample/FacebookiOSSample.sln", BuildsOn = BuildPlatforms.Mac },
new IOSSolutionBuilder { SolutionPath = "./samples/HelloFacebook/HelloFacebook.sln", BuildsOn = BuildPlatforms.Mac },
new IOSSolutionBuilder {
SolutionPath = "./samples/FacebookiOSSample/FacebookiOSSample.sln",
Configuration = "Release|iPhone",
BuildsOn = BuildPlatforms.Mac },

new IOSSolutionBuilder {
SolutionPath = "./samples/HelloFacebook/HelloFacebook.sln",
Configuration = "Release|iPhone",
BuildsOn = BuildPlatforms.Mac },
},

NuGets = new [] {
Expand All @@ -42,31 +43,12 @@ Task ("externals")
.WithCriteria (!FileExists ("./externals/FBSDKCoreKit.a"))
.Does (() =>
{
if (!DirectoryExists ("./externals/"))
CreateDirectory ("./externals");
DownloadFile (SDK_URL, "./externals/" + SDK_FILE, new DownloadFileSettings
{
UserAgent = "curl/7.43.0"
});
Unzip ("./externals/" + SDK_FILE, SDK_PATH);
CopyFile (SDK_PATH + "/Bolts.framework/Bolts", "./externals/Bolts.a");
CopyFile (SDK_PATH + "/FBSDKCoreKit.framework/FBSDKCoreKit", "./externals/FBSDKCoreKit.a");
CopyFile (SDK_PATH + "/FBSDKLoginKit.framework/FBSDKLoginKit", "./externals/FBSDKLoginKit.a");
CopyFile (SDK_PATH + "/FBSDKMessengerShareKit.framework/FBSDKMessengerShareKit", "./externals/FBSDKMessengerShareKit.a");
CopyFile (SDK_PATH + "/FBSDKShareKit.framework/FBSDKShareKit", "./externals/FBSDKShareKit.a");
CopyDirectory (SDK_PATH + "/FacebookSDKStrings.bundle", "./externals/FacebookSDKStrings.bundle");
DeleteDirectory (SDK_PATH, true);
RunMake ("./externals/", "all");
});

Task ("clean").IsDependentOn ("clean-base").Does (() =>
{
if (DirectoryExists ("./externals/"))
DeleteDirectory ("./externals", true);
RunMake ("./externals/", "clean");
});

SetupXamarinBuildTasks (buildSpec, Tasks, Task);
Expand Down
4 changes: 2 additions & 2 deletions Facebook.iOS/component/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: 4.13.1.0
version: 4.15.1.0
name: Facebook iOS SDK
id: facebookios
publisher: Xamarin Inc
Expand All @@ -11,7 +11,7 @@ icons:
- ../../icons/facebook-ios_512x512.png
packages:
ios-unified:
- Xamarin.Facebook.iOS, Version=4.13.1.0
- Xamarin.Facebook.iOS, Version=4.15.1.0
libraries:
ios-unified:
- ../output/unified/Facebook.dll
Expand Down
35 changes: 35 additions & 0 deletions Facebook.iOS/externals/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

# We need to build the SDK as the prebuilt versions are
# using CLANG_MODULES_AUTOLINK. This will cause linker
# errors. We could use native references in the binding
# but then we lose iOS 7 support. Once the following is
# fixed we can use the prebuilt SDK again.
# https://bugzilla.xamarin.com/show_bug.cgi?id=44635

GIT_REPO_TAG=sdk-version-4.15.1

all: FBSDKCoreKit.a

facebook-ios-sdk/build/package/FBSDKCoreKit.framework/FBSDKCoreKit: facebook-ios-sdk/scripts/build_distribution_xamarin.sh
cd facebook-ios-sdk/scripts && sh build_distribution_xamarin.sh

FBSDKCoreKit.a: facebook-ios-sdk/build/package/FBSDKCoreKit.framework/FBSDKCoreKit
cp -R facebook-ios-sdk/build/package/FacebookSDKStrings.bundle .
cp facebook-ios-sdk/build/package/Bolts.framework/Bolts Bolts.a
cp facebook-ios-sdk/build/package/FBSDKCoreKit.framework/FBSDKCoreKit FBSDKCoreKit.a
cp facebook-ios-sdk/build/package/FBSDKLoginKit.framework/FBSDKLoginKit FBSDKLoginKit.a
cp facebook-ios-sdk/build/package/FBSDKMessengerShareKit.framework/FBSDKMessengerShareKit FBSDKMessengerShareKit.a
cp facebook-ios-sdk/build/package/FBSDKShareKit.framework/FBSDKShareKit FBSDKShareKit.a

facebook-ios-sdk/README.txt:
git clone https://github.com/facebook/facebook-ios-sdk.git
cd facebook-ios-sdk && git checkout $(GIT_REPO_TAG)
touch $@

facebook-ios-sdk/scripts/build_distribution_xamarin.sh: facebook-ios-sdk/README.txt
cp build_distribution_xamarin.sh facebook-ios-sdk/scripts/
cd facebook-ios-sdk && git apply ../remove-autolink.patch

clean:
rm -rf facebook-ios-sdk FacebookSDKStrings.bundle Bolts.a FBSDKCoreKit.a FBSDKLoginKit.a \
FBSDKMessengerShareKit.a FBSDKShareKit.a
Loading

0 comments on commit 53f28cd

Please sign in to comment.