upgrade Facebook libraries

This commit is contained in:
Giuseppe Nucifora 2019-03-15 13:05:40 +01:00
parent 451fc6aa7f
commit 060efc0c83
72 changed files with 6811 additions and 5623 deletions

View File

@ -328,7 +328,7 @@
files = (
);
inputPaths = (
"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-resources.sh",
"${PODS_ROOT}/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-resources.sh",
"${PODS_ROOT}/FBSDKCoreKit/FacebookSDKStrings.bundle",
);
name = "[CP] Copy Pods Resources";
@ -337,7 +337,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-resources.sh\"\n";
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-resources.sh\"\n";
showEnvVarsInLog = 0;
};
E4CE079F616C61EA34D08B8B /* [CP] Check Pods Manifest.lock */ = {

View File

@ -26,24 +26,13 @@ PODS:
- DJLocalization/Core (= 1.2.2)
- DJLocalization/Core (1.2.2)
- Expecta (1.0.6)
- FacebookSDK (4.38.0):
- Bolts (~> 1.9)
- FacebookSDK/CoreKit (= 4.38.0)
- FacebookSDK/MarketingKit (= 4.38.0)
- FacebookSDK/CoreKit (4.38.0):
- FBSDKCoreKit (4.41.0):
- Bolts (~> 1.9)
- FBSDKLoginKit (4.41.0):
- FBSDKCoreKit
- FacebookSDK/MarketingKit (4.38.0):
- Bolts (~> 1.9)
- FacebookSDK/CoreKit
- FBSDKMarketingKit
- FBSDKCoreKit (4.40.0):
- Bolts (~> 1.9)
- FBSDKLoginKit (4.40.0):
- FBSDKPlacesKit (4.41.0):
- FBSDKCoreKit
- FBSDKMarketingKit (4.38.0):
- FBSDKCoreKit
- FBSDKShareKit (4.40.0):
- FBSDKShareKit (4.41.0):
- FBSDKCoreKit
- NSDataAES (0.2.2)
- NSDate_Utils (1.1.0):
@ -51,13 +40,14 @@ PODS:
- NSString-Helper (1.2.0)
- nv-ios-http-status (0.0.1)
- PEAR-FileManager-iOS (1.3.1)
- PNObject (2.6.3):
- PNObject (2.6.4):
- AFNetworking
- CodFis-Helper
- DDDKeychainWrapper
- DJLocalization
- FacebookSDK
- FBSDKCoreKit
- FBSDKLoginKit
- FBSDKPlacesKit
- FBSDKShareKit
- NSDataAES
- NSDate_Utils
@ -87,10 +77,9 @@ SPEC REPOS:
- DDDKeychainWrapper
- DJLocalization
- Expecta
- FacebookSDK
- FBSDKCoreKit
- FBSDKLoginKit
- FBSDKMarketingKit
- FBSDKPlacesKit
- FBSDKShareKit
- NSDataAES
- NSDate_Utils
@ -114,17 +103,16 @@ SPEC CHECKSUMS:
DDDKeychainWrapper: e681a4daba6448786fa83b4941f58102a33b1897
DJLocalization: 0c84029af375647d4104a42ae36be87194c46c47
Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5
FacebookSDK: 73f54b8b94e09b05647cdef0af147f470cd3edc6
FBSDKCoreKit: ae214474b25033399c131dc81d258e412582a2ba
FBSDKLoginKit: 7a1e411d46acc8834588eca437daf34de42e1d52
FBSDKMarketingKit: e609f39d74ab273cf52e2f8b7e8829ed412b2827
FBSDKShareKit: 0e45916f4150da485928ae2a17ca021950b194f5
FBSDKCoreKit: 974810fe3806173f3777c68062fa8ed6fa59b59d
FBSDKLoginKit: 159a5c2eebe6a0774c3b128f5085128679233d2b
FBSDKPlacesKit: 8dc2ca787f8934c021876d9e51bf3a5508b0675c
FBSDKShareKit: 79dfd0c51f1a241f33e219fcc39e7cc69534b900
NSDataAES: 967ea3337476a80e9838a533c25d570a06855ed0
NSDate_Utils: c858a89da6e204ecf53aca48dbccb4da4d25bc9e
NSString-Helper: 1c259caa6c845e79e0bb45ee25e34f95d86d2317
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
PNObject: b70db2cba56df79ddf5b2df096afad403cc5d041
PNObject: 5d8947012a711816bceedce57d07762327ac57c6
PureLayout: f08c01b8dec00bb14a1fefa3de4c7d9c265df85e
RZDataBinding: 289e2fbdce8b9585afef69def83425c5d380ffbd
Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66
@ -133,4 +121,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: eec9c921f7aee591fd1fdea1fd3e5a191b74a436
COCOAPODS: 1.5.3
COCOAPODS: 1.6.0

View File

@ -199,10 +199,12 @@ typedef void (^FBSDKAuthenticationCompletionHandler)(NSURL *_Nullable callbackUR
[_safariViewController.presentingViewController dismissViewControllerAnimated:YES
completion:completePendingOpenURLBlock];
_safariViewController = nil;
} else if (@available(iOS 11.0, *)) {
if (_authenticationSession != nil) {
[_authenticationSession cancel];
_authenticationSession = nil;
} else {
if (@available(iOS 11.0, *)) {
if (_authenticationSession != nil) {
[_authenticationSession cancel];
_authenticationSession = nil;
}
}
completePendingOpenURLBlock();
}
@ -224,7 +226,7 @@ typedef void (^FBSDKAuthenticationCompletionHandler)(NSURL *_Nullable callbackUR
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (_isAppLaunched) {
if ([self isAppLaunched]) {
return NO;
}
@ -279,15 +281,6 @@ typedef void (^FBSDKAuthenticationCompletionHandler)(NSURL *_Nullable callbackUR
// within the app delegate's lifecycle like openURL, in which case there
// might have been a "didBecomeActive" event pending that we want to ignore.
BOOL notExpectingBackground = !_expectingBackground && !_safariViewController && !_isDismissingSafariViewController && !_isRequestingSFAuthenticationSession;
#if !TARGET_OS_TV
if (@available(iOS 11.0, *)) {
if (notExpectingBackground && _authenticationSessionCompletionHandler != nil) {
_authenticationSessionCompletionHandler(nil, nil);
}
notExpectingBackground = notExpectingBackground && !_authenticationSession;
}
#endif
if (notExpectingBackground) {
_active = YES;
#if !TARGET_OS_TV
@ -586,6 +579,11 @@ typedef void (^FBSDKAuthenticationCompletionHandler)(NSURL *_Nullable callbackUR
[FBSDKAppEvents logEvent:@"fb_sdk_initialize" parameters:params];
}
// Wrapping this makes it mockable and enables testability
- (BOOL)isAppLaunched {
return _isAppLaunched;
}
#pragma mark -- (non-tvos)
#if !TARGET_OS_TV
- (BOOL)_handleBridgeAPIResponseURL:(NSURL *)responseURL sourceApplication:(NSString *)sourceApplication

View File

@ -53,5 +53,5 @@
#import <FBSDKCoreKit/FBSDKDeviceViewControllerBase.h>
#endif
#define FBSDK_VERSION_STRING @"4.40.0"
#define FBSDK_VERSION_STRING @"4.41.0"
#define FBSDK_TARGET_PLATFORM_VERSION @"v3.2"

View File

@ -136,14 +136,16 @@
- (void)setBounds:(CGRect)bounds
{
CGRect currentBounds = self.bounds;
if (!CGRectEqualToRect(currentBounds, bounds)) {
super.bounds = bounds;
if (!CGSizeEqualToSize(currentBounds.size, bounds.size)) {
_placeholderImageIsValid = NO;
[self setNeedsImageUpdate];
dispatch_async(dispatch_get_main_queue(), ^{
CGRect currentBounds = self.bounds;
if (!CGRectEqualToRect(currentBounds, bounds)) {
super.bounds = bounds;
if (!CGSizeEqualToSize(currentBounds.size, bounds.size)) {
self->_placeholderImageIsValid = NO;
[self setNeedsImageUpdate];
}
}
}
});
}
- (UIViewContentMode)contentMode
@ -181,24 +183,23 @@
- (void)setNeedsImageUpdate
{
if (!_imageView || CGRectIsEmpty(self.bounds)) {
// we can't do anything with an empty view, so just bail out until we have a size
return;
}
// ensure that we have an image. do this here so we can draw the placeholder image synchronously if we don't have one
if (!_placeholderImageIsValid && !_hasProfileImage) {
[self _setPlaceholderImage];
}
// debounce calls to needsImage against the main runloop
if (_needsImageUpdate) {
return;
}
_needsImageUpdate = YES;
__weak FBSDKProfilePictureView *weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf _needsImageUpdate];
if (!self->_imageView || CGRectIsEmpty(self.bounds)) {
// we can't do anything with an empty view, so just bail out until we have a size
return;
}
// ensure that we have an image. do this here so we can draw the placeholder image synchronously if we don't have one
if (!self->_placeholderImageIsValid && !self->_hasProfileImage) {
[self _setPlaceholderImage];
}
// debounce calls to needsImage against the main runloop
if (self->_needsImageUpdate) {
return;
}
self->_needsImageUpdate = YES;
[self _needsImageUpdate];
});
}
@ -348,9 +349,12 @@
- (void)_setPlaceholderImage
{
UIColor *fillColor = [UIColor colorWithRed:157.0/255.0 green:177.0/255.0 blue:204.0/255.0 alpha:1.0];
_imageView.image = [[[FBSDKMaleSilhouetteIcon alloc] initWithColor:fillColor] imageWithSize:_imageView.bounds.size];
_placeholderImageIsValid = YES;
_hasProfileImage = NO;
dispatch_async(dispatch_get_main_queue(), ^{
self->_imageView.image = [[[FBSDKMaleSilhouetteIcon alloc] initWithColor:fillColor] imageWithSize:self->_imageView.bounds.size];
});
}
- (void)_updateImageWithData:(NSData *)data state:(FBSDKProfilePictureViewState *)state
@ -359,10 +363,13 @@
if (![state isValidForState:_lastState]) {
return;
}
UIImage *image = [[UIImage alloc] initWithData:data scale:state.scale];
if (image) {
_imageView.image = image;
_hasProfileImage = YES;
dispatch_async(dispatch_get_main_queue(), ^{
self->_imageView.image = image;
});
} else {
_hasProfileImage = NO;
_placeholderImageIsValid = NO;

View File

@ -29,6 +29,7 @@
#define CODELESS_MAPPING_MATCH_BITMASK_KEY @"match_bitmask"
#define CODELESS_MAPPING_ID_KEY @"id"
#define CODELESS_MAPPING_INDEX_KEY @"index"
#define CODELESS_MAPPING_IS_USER_INPUT_KEY @"is_user_input"
#define CODELESS_MAPPING_SECTION_KEY @"section"
#define CODELESS_MAPPING_ROW_KEY @"row"
#define CODELESS_MAPPING_TEXT_KEY @"text"

View File

@ -124,17 +124,10 @@ static void fb_dispatch_on_default_thread(dispatch_block_t block) {
}
isStarted = YES;
void (^blockToSuperview)(id view) = ^(id view) {
[self matchView:view delegate:nil];
};
void (^blockToWindow)(id view) = ^(id view) {
[self matchView:view delegate:nil];
};
[FBSDKSwizzler swizzleSelector:@selector(didMoveToSuperview)
onClass:[UIControl class]
withBlock:blockToSuperview named:@"map_control"];
[FBSDKSwizzler swizzleSelector:@selector(didMoveToWindow)
onClass:[UIControl class]
withBlock:blockToWindow named:@"map_control"];
@ -147,17 +140,17 @@ static void fb_dispatch_on_default_thread(dispatch_block_t block) {
Class classRCTTouchHandler = objc_lookUpClass(ReactNativeClassRCTTouchHandler);
// All react-native views would be added tp RCTRootView, so no need to check didMoveToWindow
[FBSDKSwizzler swizzleSelector:@selector(didMoveToSuperview)
[FBSDKSwizzler swizzleSelector:@selector(didMoveToWindow)
onClass:classRCTView
withBlock:blockToSuperview
withBlock:blockToWindow
named:@"match_react_native"];
[FBSDKSwizzler swizzleSelector:@selector(didMoveToSuperview)
[FBSDKSwizzler swizzleSelector:@selector(didMoveToWindow)
onClass:classRCTTextView
withBlock:blockToSuperview
withBlock:blockToWindow
named:@"match_react_native"];
[FBSDKSwizzler swizzleSelector:@selector(didMoveToSuperview)
[FBSDKSwizzler swizzleSelector:@selector(didMoveToWindow)
onClass:classRCTImageView
withBlock:blockToSuperview
withBlock:blockToWindow
named:@"match_react_native"];
// RCTTouchHandler handles with touch events, like touchEnd and uses RCTEventDispather to dispatch events, so we can check _updateAndDispatchTouches to fire events
@ -278,6 +271,10 @@ static void fb_dispatch_on_default_thread(dispatch_block_t block) {
}
fb_dispatch_on_main_thread(^{
if (![view window]) {
return;
}
NSArray *path = [FBSDKViewHierarchy getPath:view];
fb_dispatch_on_default_thread(^{

View File

@ -35,4 +35,6 @@
+ (NSInteger)getTag:(NSObject *)obj;
+ (NSNumber *)getViewReactTag:(UIView *)view;
+ (BOOL)isUserInputView:(NSObject *)obj;
@end

View File

@ -231,9 +231,14 @@ typedef NS_ENUM(NSUInteger, FBCodelessClassBitmask) {
NSMutableDictionary *componentInfo = [NSMutableDictionary dictionary];
componentInfo[CODELESS_MAPPING_CLASS_NAME_KEY] = NSStringFromClass([obj class]);
NSString *text = [FBSDKViewHierarchy getText:obj];
if (text) {
componentInfo[CODELESS_MAPPING_TEXT_KEY] = text;
if (![FBSDKViewHierarchy isUserInputView:obj]) {
NSString *text = [FBSDKViewHierarchy getText:obj];
if (text) {
componentInfo[CODELESS_MAPPING_TEXT_KEY] = text;
}
} else {
componentInfo[CODELESS_MAPPING_TEXT_KEY] = @"";
componentInfo[CODELESS_MAPPING_IS_USER_INPUT_KEY] = @YES;
}
NSString *hint = [FBSDKViewHierarchy getHint:obj];
@ -373,25 +378,6 @@ typedef NS_ENUM(NSUInteger, FBCodelessClassBitmask) {
text = attributedText.string;
}
if ([obj conformsToProtocol:@protocol(UITextInput)]) {
id<UITextInput> input = (id<UITextInput>)obj;
if (input.secureTextEntry) {
text = nil;
} else {
switch (input.keyboardType) {
case UIKeyboardTypePhonePad:
case UIKeyboardTypeEmailAddress:
text = nil;
break;
default: break;
}
}
}
if ([FBSDKAppEventsUtility isSensitiveUserData:text]) {
return nil;
}
return text.length > 0 ? text : nil;
}
@ -479,6 +465,29 @@ typedef NS_ENUM(NSUInteger, FBCodelessClassBitmask) {
return bitmask;
}
+ (BOOL)isUserInputView:(NSObject *)obj
{
if (obj && [obj conformsToProtocol:@protocol(UITextInput)]) {
id<UITextInput> input = (id<UITextInput>)obj;
if ([input respondsToSelector:@selector(isSecureTextEntry)]
&& input.secureTextEntry) {
return YES;
} else {
if ([input respondsToSelector:@selector(keyboardType)]) {
switch (input.keyboardType) {
case UIKeyboardTypePhonePad:
case UIKeyboardTypeEmailAddress:
return YES;
default: break;
}
}
}
}
NSString *text = [FBSDKViewHierarchy getText:obj];
return text && [FBSDKAppEventsUtility isSensitiveUserData:text];
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
+ (BOOL)isRCTButton:(UIView *)view

View File

@ -265,7 +265,7 @@ static const u_int FB_GIGABYTE = 1024 * 1024 * 1024; // bytes
+ (NSString *)_getCarrier
{
#if TARGET_OS_TV
#if TARGET_OS_TV || TARGET_IPHONE_SIMULATOR
return @"NoCarrier";
#else
// Dynamically load class for this so calling app doesn't need to link framework in.

View File

@ -18,6 +18,8 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface FBSDKUserDataStore : NSObject
+ (void)initStore;
@ -38,3 +40,5 @@
+ (NSString *) getHashedUserData;
@end
NS_ASSUME_NONNULL_END

View File

@ -23,7 +23,7 @@
#import "FBSDKSettings.h"
#import "FBSDKUtility.h"
#define USER_DATA_KEY @"com.facebook.appevents.UserDataStore.userData"
static NSString *const FBSDKUserDataKey = @"com.facebook.appevents.UserDataStore.userData";
static NSString *const FBSDKEmail = @"em";
static NSString *const FBSDKFirstName = @"fn";
@ -47,17 +47,8 @@ static volatile bool initialized = false;
return;
}
[FBSDKUserDataStore initAndWait];
}
+ (void)initAndWait
{
if (initialized){
return;
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
hashedUserData = [defaults stringForKey:USER_DATA_KEY];
hashedUserData = [defaults stringForKey:FBSDKUserDataKey];
initialized = true;
}
@ -66,12 +57,12 @@ static volatile bool initialized = false;
if (!initialized){
[FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
logEntry:@"initStore should have been called before calling setUserData"];
[FBSDKUserDataStore initAndWait];
[FBSDKUserDataStore initStore];
}
hashedUserData = [FBSDKUserDataStore hashUserData:ud];
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:(hashedUserData) forKey:(USER_DATA_KEY)];
[defaults setObject:(hashedUserData) forKey:(FBSDKUserDataKey)];
}
+ (void)setUserDataAndHash:(nullable NSString *)email
@ -85,9 +76,7 @@ static volatile bool initialized = false;
zip:(nullable NSString *)zip
country:(nullable NSString *)country
{
if (!initialized){
[FBSDKUserDataStore initAndWait];
}
[FBSDKUserDataStore initStore];
NSMutableDictionary *ud = [[NSMutableDictionary alloc] init];
if (email != nil) {
@ -123,7 +112,7 @@ static volatile bool initialized = false;
hashedUserData = [FBSDKUserDataStore hashUserData:ud];
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:(hashedUserData) forKey:(USER_DATA_KEY)];
[defaults setObject:(hashedUserData) forKey:(FBSDKUserDataKey)];
}
+ (NSString *)getHashedUserData
@ -131,7 +120,7 @@ static volatile bool initialized = false;
if (!initialized){
[FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
logEntry:@"initStore should have been called before calling setUserID"];
[FBSDKUserDataStore initAndWait];
[FBSDKUserDataStore initStore];
}
return hashedUserData;

View File

@ -32,8 +32,6 @@ FOUNDATION_EXPORT NSString *const FBSDKApplicationDidBecomeActiveNotification;
#endif
@class FBSDKApplicationCall;
#if !TARGET_OS_TV
typedef void(^FBSDKBridgeAPICallbackBlock)(FBSDKBridgeAPIResponse *response);
#endif

View File

@ -45,7 +45,7 @@ static NSMapTable *swizzles;
static FBSDKSwizzle* fb_findSwizzle(id self, SEL _cmd){
Method aMethod = class_getInstanceMethod([self class], _cmd);
FBSDKSwizzle *swizzle = (FBSDKSwizzle *)[swizzles objectForKey:MAPTABLE_ID(aMethod)];
Class this_class = [self class];
Class this_class = [FBSDKSwizzler class];
while (!swizzle && class_getSuperclass(this_class)){
this_class = class_getSuperclass(this_class);
aMethod = class_getInstanceMethod(this_class, _cmd);
@ -133,10 +133,20 @@ static void (*fb_swizzledMethods[MAX_ARGS - MIN_ARGS + 1])() = {fb_swizzledMetho
@implementation FBSDKSwizzler
+ (void)setup {
if (!swizzles) {
swizzles = [NSMapTable mapTableWithKeyOptions:(NSPointerFunctionsOpaqueMemory | NSPointerFunctionsOpaquePersonality)
valueOptions:(NSPointerFunctionsStrongMemory | NSPointerFunctionsObjectPointerPersonality)];
+ (void)initialize
{
swizzles = [NSMapTable mapTableWithKeyOptions:(NSPointerFunctionsOpaqueMemory | NSPointerFunctionsOpaquePersonality)
valueOptions:(NSPointerFunctionsStrongMemory | NSPointerFunctionsObjectPointerPersonality)];
[FBSDKSwizzler resolveConflict];
}
+ (void)resolveConflict
{
Class swizzler = objc_lookUpClass("MPSwizzler");
if (swizzler) {
Method method = class_getClassMethod(swizzler, @selector(swizzleSelector:onClass:withBlock:named:));
Method newMethod = class_getClassMethod(self, @selector(swizzleSelector:onClass:withBlock:named:));
method_setImplementation(method, method_getImplementation(newMethod));
}
}
@ -181,24 +191,25 @@ static void (*fb_swizzledMethods[MAX_ARGS - MIN_ARGS + 1])() = {fb_swizzledMetho
+ (void)swizzleSelector:(SEL)aSelector onClass:(Class)aClass withBlock:(swizzleBlock)aBlock named:(NSString *)aName
{
[FBSDKSwizzler setup];
Method aMethod = class_getInstanceMethod(aClass, aSelector);
if (aMethod) {
uint numArgs = method_getNumberOfArguments(aMethod);
if (numArgs >= MIN_ARGS && numArgs <= MAX_ARGS) {
BOOL isLocal = [self isLocallyDefinedMethod:aMethod onClass:aClass];
BOOL isLocal = [FBSDKSwizzler isLocallyDefinedMethod:aMethod onClass:aClass];
IMP swizzledMethod = (IMP)fb_swizzledMethods[numArgs - 2];
// Check whether the first parameter is integer
if (4 == numArgs) {
NSString *firstType = @(method_copyArgumentType(aMethod, 2));
char *type = method_copyArgumentType(aMethod, 2);
NSString *firstType = [NSString stringWithCString:type encoding:NSUTF8StringEncoding];
NSString *integerTypes = @"islq";
if ([integerTypes containsString:firstType.lowercaseString]) {
swizzledMethod = (IMP)fb_swizzleMethod_4_io;
}
free(type);
}
FBSDKSwizzle *swizzle = [self swizzleForMethod:aMethod];
FBSDKSwizzle *swizzle = [FBSDKSwizzler swizzleForMethod:aMethod];
if (isLocal) {
if (!swizzle) {
@ -209,7 +220,7 @@ static void (*fb_swizzledMethods[MAX_ARGS - MIN_ARGS + 1])() = {fb_swizzledMetho
// Create and add the swizzle
swizzle = [[FBSDKSwizzle alloc] initWithBlock:aBlock named:aName forClass:aClass selector:aSelector originalMethod:originalMethod withNumArgs:numArgs];
[self setSwizzle:swizzle forMethod:aMethod];
[FBSDKSwizzler setSwizzle:swizzle forMethod:aMethod];
} else {
[swizzle.blocks setObject:aBlock forKey:aName];
@ -228,7 +239,7 @@ static void (*fb_swizzledMethods[MAX_ARGS - MIN_ARGS + 1])() = {fb_swizzledMetho
}
FBSDKSwizzle *newSwizzle = [[FBSDKSwizzle alloc] initWithBlock:aBlock named:aName forClass:aClass selector:aSelector originalMethod:originalMethod withNumArgs:numArgs];
[self setSwizzle:newSwizzle forMethod:newMethod];
[FBSDKSwizzler setSwizzle:newSwizzle forMethod:newMethod];
}
}
}
@ -237,10 +248,10 @@ static void (*fb_swizzledMethods[MAX_ARGS - MIN_ARGS + 1])() = {fb_swizzledMetho
+ (void)unswizzleSelector:(SEL)aSelector onClass:(Class)aClass
{
Method aMethod = class_getInstanceMethod(aClass, aSelector);
FBSDKSwizzle *swizzle = [self swizzleForMethod:aMethod];
FBSDKSwizzle *swizzle = [FBSDKSwizzler swizzleForMethod:aMethod];
if (swizzle) {
method_setImplementation(aMethod, swizzle.originalMethod);
[self removeSwizzleForMethod:aMethod];
[FBSDKSwizzler removeSwizzleForMethod:aMethod];
}
}
@ -251,14 +262,14 @@ static void (*fb_swizzledMethods[MAX_ARGS - MIN_ARGS + 1])() = {fb_swizzledMetho
+ (void)unswizzleSelector:(SEL)aSelector onClass:(Class)aClass named:(NSString *)aName
{
Method aMethod = class_getInstanceMethod(aClass, aSelector);
FBSDKSwizzle *swizzle = [self swizzleForMethod:aMethod];
FBSDKSwizzle *swizzle = [FBSDKSwizzler swizzleForMethod:aMethod];
if (swizzle) {
if (aName) {
[swizzle.blocks removeObjectForKey:aName];
}
if (!aName || swizzle.blocks.count == 0) {
method_setImplementation(aMethod, swizzle.originalMethod);
[self removeSwizzleForMethod:aMethod];
[FBSDKSwizzler removeSwizzleForMethod:aMethod];
}
}
}
@ -291,7 +302,7 @@ static void (*fb_swizzledMethods[MAX_ARGS - MIN_ARGS + 1])() = {fb_swizzledMetho
self.selector = aSelector;
self.numArgs = numArgs;
self.originalMethod = aMethod;
[self.blocks setObject:aBlock forKey:aName];
[_blocks setObject:aBlock forKey:aName];
}
return self;
}
@ -300,9 +311,9 @@ static void (*fb_swizzledMethods[MAX_ARGS - MIN_ARGS + 1])() = {fb_swizzledMetho
{
NSString *descriptors = @"";
NSString *key;
NSEnumerator *keys = [self.blocks keyEnumerator];
NSEnumerator *keys = [_blocks keyEnumerator];
while ((key = [keys nextObject])) {
descriptors = [descriptors stringByAppendingFormat:@"\t%@ : %@\n", key, [self.blocks objectForKey:key]];
descriptors = [descriptors stringByAppendingFormat:@"\t%@ : %@\n", key, [_blocks objectForKey:key]];
}
return [NSString stringWithFormat:@"Swizzle on %@::%@ [\n%@]", NSStringFromClass(self.class), NSStringFromSelector(self.selector), descriptors];
}

View File

@ -18,7 +18,7 @@
#import <UIKit/UIKit.h>
#import "../FBSDKMath.h"
#import "FBSDKMath.h"
/**
Insets a CGSize with the insets in a UIEdgeInsets.

View File

@ -1,16 +1,22 @@
# Facebook SDK for iOS
[![Platforms](https://img.shields.io/cocoapods/p/FBSDKCoreKit.svg)](https://cocoapods.org/pods/FBSDKCoreKit)
[![Build Status](https://travis-ci.org/facebook/facebook-objc-sdk.svg?branch=master)](https://travis-ci.org/facebook/facebook-objc-sdk)
[![CocoaPods](https://img.shields.io/cocoapods/v/FBSDKCoreKit.svg)](https://cocoapods.org/pods/FBSDKCoreKit)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
This open-source library allows you to integrate Facebook into your iOS app.
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more at https://developers.facebook.com/docs/ios
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more
at https://developers.facebook.com/docs/ios
NOTE: By default, the Facebook SDK for iOS is installed in ~/Documents/FacebookSDK
## TRY IT OUT
1. Download the SDK at <https://developers.facebook.com/docs/ios> or via CocoaPods by adding the 'FBSDKCoreKit', 'FBSDKLoginKit', and 'FBSDKShareKit' pods.
1. Download the SDK at <https://developers.facebook.com/docs/ios> or via CocoaPods by adding the 'FBSDKCoreKit',
'FBSDKLoginKit', and 'FBSDKShareKit' pods.
2. Test your install: build and run the project at `~/Documents/FacebookSDK/Samples/Scrumptious/Scrumptious.xcodeproj`
3. Check-out the tutorials available online at: <https://developers.facebook.com/docs/ios/getting-started>
4. Start coding! Visit <https://developers.facebook.com/docs/ios> for tutorials and reference documentation.
@ -27,7 +33,8 @@ NOTE: By default, the Facebook SDK for iOS is installed in ~/Documents/FacebookS
Please report bugs or issues to <https://developers.facebook.com/bugs/>
You can also join the [Facebook Developers Group on Facebook](https://www.facebook.com/groups/fbdevelopers/) or ask questions on [Stack Overflow](http://facebook.stackoverflow.com)
You can also join the [Facebook Developers Group on Facebook](https://www.facebook.com/groups/fbdevelopers/) or ask
questions on [Stack Overflow](http://facebook.stackoverflow.com)
## LICENSE
@ -35,9 +42,19 @@ See the [LICENSE](LICENSE) file.
## DEVELOPER TERMS
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including information about peoples use of your app. Facebook will use information received in accordance with our [Data Use Policy](https://www.facebook.com/about/privacy/), including to provide you with insights about the effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool `https://developers.facebook.com/apps/{app_id}/settings/advanced`.
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms <https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including
information about peoples use of your app. Facebook will use information received in accordance with our
[Data Use Policy](https://www.facebook.com/about/privacy/), including to provide you with insights about the
effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on
and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool
`https://developers.facebook.com/apps/{app_id}/settings/advanced`.
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have
provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users
regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further
agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms
<https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and
Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
By using the Facebook SDK for iOS you agree to these terms.

View File

@ -1,16 +1,22 @@
# Facebook SDK for iOS
[![Platforms](https://img.shields.io/cocoapods/p/FBSDKCoreKit.svg)](https://cocoapods.org/pods/FBSDKCoreKit)
[![Build Status](https://travis-ci.org/facebook/facebook-objc-sdk.svg?branch=master)](https://travis-ci.org/facebook/facebook-objc-sdk)
[![CocoaPods](https://img.shields.io/cocoapods/v/FBSDKCoreKit.svg)](https://cocoapods.org/pods/FBSDKCoreKit)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
This open-source library allows you to integrate Facebook into your iOS app.
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more at https://developers.facebook.com/docs/ios
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more
at https://developers.facebook.com/docs/ios
NOTE: By default, the Facebook SDK for iOS is installed in ~/Documents/FacebookSDK
## TRY IT OUT
1. Download the SDK at <https://developers.facebook.com/docs/ios> or via CocoaPods by adding the 'FBSDKCoreKit', 'FBSDKLoginKit', and 'FBSDKShareKit' pods.
1. Download the SDK at <https://developers.facebook.com/docs/ios> or via CocoaPods by adding the 'FBSDKCoreKit',
'FBSDKLoginKit', and 'FBSDKShareKit' pods.
2. Test your install: build and run the project at `~/Documents/FacebookSDK/Samples/Scrumptious/Scrumptious.xcodeproj`
3. Check-out the tutorials available online at: <https://developers.facebook.com/docs/ios/getting-started>
4. Start coding! Visit <https://developers.facebook.com/docs/ios> for tutorials and reference documentation.
@ -27,7 +33,8 @@ NOTE: By default, the Facebook SDK for iOS is installed in ~/Documents/FacebookS
Please report bugs or issues to <https://developers.facebook.com/bugs/>
You can also join the [Facebook Developers Group on Facebook](https://www.facebook.com/groups/fbdevelopers/) or ask questions on [Stack Overflow](http://facebook.stackoverflow.com)
You can also join the [Facebook Developers Group on Facebook](https://www.facebook.com/groups/fbdevelopers/) or ask
questions on [Stack Overflow](http://facebook.stackoverflow.com)
## LICENSE
@ -35,9 +42,19 @@ See the [LICENSE](LICENSE) file.
## DEVELOPER TERMS
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including information about peoples use of your app. Facebook will use information received in accordance with our [Data Use Policy](https://www.facebook.com/about/privacy/), including to provide you with insights about the effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool `https://developers.facebook.com/apps/{app_id}/settings/advanced`.
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms <https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including
information about peoples use of your app. Facebook will use information received in accordance with our
[Data Use Policy](https://www.facebook.com/about/privacy/), including to provide you with insights about the
effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on
and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool
`https://developers.facebook.com/apps/{app_id}/settings/advanced`.
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have
provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users
regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further
agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms
<https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and
Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
By using the Facebook SDK for iOS you agree to these terms.

View File

@ -1,6 +0,0 @@
framework module FBSDKMarketingKit {
umbrella header "FBSDKMarketingKit.h"
export *
module * { export * }
}

View File

@ -1,17 +0,0 @@
Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
copy, modify, and distribute this software in source code or binary form for use
in connection with the web services and APIs provided by Facebook.
As with any software that integrates with the Facebook platform, your use of
this software is subject to the Facebook Developer Principles and Policies
[http://developers.facebook.com/policy/]. This copyright notice shall be
included in all copies or substantial portions of the software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -1,46 +0,0 @@
Facebook SDK for iOS
====================
This library allows you to integrate Facebook into your iOS app.
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more at https://developers.facebook.com/docs/ios
NOTE: It is suggested you install the Facebook SDK to ~/Documents/FacebookSDK
TRY IT OUT
----------
1. Download the SDK at https://developers.facebook.com/docs/ios or via CocoaPods by adding the 'FBSDKCoreKit', 'FBSDKLoginKit', and 'FBSDKShareKit' pods.
2. Test your install: build and run the project at ~/Documents/FacebookSDK/Samples/Scrumptious/Scrumptious.xcodeproj
3. Check-out the tutorials available online at: https://developers.facebook.com/docs/ios/getting-started
4. Start coding! Visit https://developers.facebook.com/docs/ios for tutorials and reference documentation.
FEATURES
--------
* Login - https://developers.facebook.com/docs/facebook-login
* Sharing - https://developers.facebook.com/docs/sharing
* App Links - https://developers.facebook.com/docs/applinks
* Graph API - https://developers.facebook.com/docs/ios/graph
* Analytics - https://developers.facebook.com/docs/analytics
GIVE FEEDBACK
-------------
Please report bugs or issues to https://developers.facebook.com/bugs/
You can also join the Facebook Developers Group on Facebook (https://www.facebook.com/groups/fbdevelopers/) or ask questions on Stack Overflow (http://facebook.stackoverflow.com)
LICENSE
-------
See the LICENSE file.
DEVELOPER TERMS
---------------
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including information about peoples use of your app. Facebook will use information received in accordance with our Data Use Policy [https://www.facebook.com/about/privacy/], including to provide you with insights about the effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool [https://developers.facebook.com/apps/{app_id}/settings/advanced].
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms <https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
By using the Facebook SDK for iOS you agree to these terms.

View File

@ -16,8 +16,6 @@
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface FBSDKAutoLog : NSObject
@end
#import <FBSDKPlacesKit/FBSDKPlacesManager.h>

View File

@ -0,0 +1,296 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <Foundation/Foundation.h>
/**
These are the fields currently exposed by FBSDKPlacesKit. They map to the fields on
Place objects returned by the Graph API, which can be found here:
https://developers.facebook.com/docs/places. Should fields be added to the Graph API in
the future, you can use strings found in the online documenation in addition to
these string constants.
*/
/**
Field Key for information about the Place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyAbout;
/**
Field Key for AppLinks for the Place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyAppLinks;
/**
Field Key for the Place's categories.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyCategories;
/**
Field Key for the number of checkins at the Place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyCheckins;
/**
Field Key for the confidence level for a current place estimate candidate.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyConfidence;
/**
Field Key for the Place's cover photo. Note that this is not the actual photo data,
but rather URLs and other metadata.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyCoverPhoto;
/**
Field Key for the description of the Place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyDescription;
/**
Field Key for the social sentence and like count information for this place. This is
the same information used for the Like button.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyEngagement;
/**
Field Key for hour ranges for when the Place is open. Each day can have two different
hours ranges. The keys in the dictionary are in the form of {day}_{number}_{status}.
{day} should be the first 3 characters of the day of the week, {number} should be
either 1 or 2 to allow for the two different hours ranges per day. {status} should be
either open or close, to delineate the start or end of a time range. An example would
be mon_1_open with value 17:00 and mon_1_close with value 21:15 which would represent
a single opening range of 5 PM to 9:15 PM on Mondays. You can find an example of hours
being parsed out in the Sample App.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyHours;
/**
Field Key for a value indicating whether this place is always open.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyIsAlwaysOpen;
/**
Field Key for a value indicating whether this place is permanently closed.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyIsPermanentlyClosed;
/**
Pages with a large number of followers can be manually verified by Facebook as having an
authentic identity. This field indicates whether the page is verified by this process.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyIsVerified;
/**
Field Key for address and latitude/longitude information for the place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyLocation;
/**
Field Key for a link to Place's Facebook page.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyLink;
/**
Field Key for the name of the place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyName;
/**
Field Key for the overall page rating based on rating surveys from users on a scale
from 1-5. This value is normalized, and is not guaranteed to be a strict average of
user ratings.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyOverallStarRating;
/**
Field Key for the Facebook Page information.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyPage;
/**
Field Key for PageParking information for the Place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyParking;
/**
Field Key for available payment options.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyPaymentOptions;
/**
Field Key for the unique Facebook ID of the place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyPlaceID;
/**
Field Key for the Place's phone number.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyPhone;
/**
Field Key for the Place's photos. Note that this is not the actual photo data, but
rather URLs and other metadata.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyPhotos;
/**
Field Key for the price range of the business, expressed as a string. Applicable to
Restaurants or Nightlife. Can be one of $ (0-10), $$ (10-30), $$$ (30-50), $$$$ (50+),
or Unspecified.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyPriceRange;
/**
Field Key for the Place's profile photo. Note that this is not the actual photo data,
but rather URLs and other metadata.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyProfilePhoto;
/**
Field Key for the number of ratings for the place.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyRatingCount;
/**
Field Key for restaurant services e.g: delivery, takeout.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyRestaurantServices;
/**
Field Key for restaurant specialties.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyRestaurantSpecialties;
/**
Field Key for the address in a single line.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeySingleLineAddress;
/**
Field Key for the string of the Place's website URL.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyWebsite;
/**
Field Key for the Workflows.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesFieldKeyWorkflows;
/**
Response Key for the place's city field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyCity;
/**
Response Key for the place's city ID field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyCityID;
/**
Response Key for the place's country field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyCountry;
/**
Response Key for the place's country code field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyCountryCode;
/**
Response Key for the place's latitude field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyLatitude;
/**
Response Key for the place's longitude field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyLongitude;
/**
Response Key for the place's region field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyRegion;
/**
Response Key for the place's region ID field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyRegionID;
/**
Response Key for the place's state field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyState;
/**
Response Key for the place's street field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyStreet;
/**
Response Key for the place's zip code field.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyZip;
/**
Response Key for the categories that this place matched.
To be used on the search request if the categories parameter is specified.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyMatchedCategories;
/**
Response Key for the photo source dictionary.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyPhotoSource;
/**
Response Key for response data.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyData;
/**
Response Key for a URL.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesResponseKeyUrl;
/**
Parameter Key for the current place summary.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesParameterKeySummary;
/**
Summary Key for the current place tracking ID.
*/
FOUNDATION_EXPORT NSString *const FBSDKPlacesSummaryKeyTracking;
/**
The level of confidence the Facebook SDK has that a Place is the correct one for the
user's current location.
- FBSDKPlaceLocationConfidenceNotApplicable: Used to indicate that any level is
acceptable as a minimum threshold
- FBSDKPlaceLocationConfidenceLow: Low confidence level.
- FBSDKPlaceLocationConfidenceMedium: Medium confidence level.
- FBSDKPlaceLocationConfidenceHigh: High confidence level.
*/
typedef NS_ENUM(NSInteger) {
FBSDKPlaceLocationConfidenceNotApplicable,
FBSDKPlaceLocationConfidenceLow,
FBSDKPlaceLocationConfidenceMedium,
FBSDKPlaceLocationConfidenceHigh
} FBSDKPlaceLocationConfidence;

View File

@ -0,0 +1,73 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "FBSDKPlacesKitConstants.h"
NSString *const FBSDKPlacesFieldKeyAbout = @"about";
NSString *const FBSDKPlacesFieldKeyAppLinks = @"app_links";
NSString *const FBSDKPlacesFieldKeyCategories = @"category_list";
NSString *const FBSDKPlacesFieldKeyCheckins = @"checkins";
NSString *const FBSDKPlacesFieldKeyConfidence = @"confidence_level";
NSString *const FBSDKPlacesFieldKeyCoverPhoto = @"cover";
NSString *const FBSDKPlacesFieldKeyDescription = @"description";
NSString *const FBSDKPlacesFieldKeyEngagement = @"engagement";
NSString *const FBSDKPlacesFieldKeyHours = @"hours";
NSString *const FBSDKPlacesFieldKeyIsAlwaysOpen = @"is_always_open";
NSString *const FBSDKPlacesFieldKeyIsPermanentlyClosed = @"is_permanently_closed";
NSString *const FBSDKPlacesFieldKeyIsVerified = @"is_verified";
NSString *const FBSDKPlacesFieldKeyLink = @"link";
NSString *const FBSDKPlacesFieldKeyLocation = @"location";
NSString *const FBSDKPlacesFieldKeyName = @"name";
NSString *const FBSDKPlacesFieldKeyOverallStarRating = @"overall_star_rating";
NSString *const FBSDKPlacesFieldKeyPlaceID = @"id";
NSString *const FBSDKPlacesFieldKeyPage = @"page";
NSString *const FBSDKPlacesFieldKeyParking = @"parking";
NSString *const FBSDKPlacesFieldKeyPaymentOptions = @"payment_options";
NSString *const FBSDKPlacesFieldKeyPhone = @"phone";
NSString *const FBSDKPlacesFieldKeyProfilePhoto = @"picture";
NSString *const FBSDKPlacesFieldKeyPhotos = @"photos";
NSString *const FBSDKPlacesFieldKeyPriceRange = @"price_range";
NSString *const FBSDKPlacesFieldKeyRatingCount = @"rating_count";
NSString *const FBSDKPlacesFieldKeyRestaurantServices = @"restaurant_services";
NSString *const FBSDKPlacesFieldKeyRestaurantSpecialties = @"restaurant_specialties";
NSString *const FBSDKPlacesFieldKeySingleLineAddress = @"single_line_address";
NSString *const FBSDKPlacesFieldKeyWebsite = @"website";
NSString *const FBSDKPlacesFieldKeyWorkflows = @"workflows";
NSString *const FBSDKPlacesResponseKeyCity = @"city";
NSString *const FBSDKPlacesResponseKeyCityID = @"city_id";
NSString *const FBSDKPlacesResponseKeyCountry = @"country";
NSString *const FBSDKPlacesResponseKeyCountryCode = @"country_code";
NSString *const FBSDKPlacesResponseKeyLatitude = @"latitude";
NSString *const FBSDKPlacesResponseKeyLongitude = @"longitude";
NSString *const FBSDKPlacesResponseKeyRegion = @"region";
NSString *const FBSDKPlacesResponseKeyRegionID = @"region_id";
NSString *const FBSDKPlacesResponseKeyState = @"state";
NSString *const FBSDKPlacesResponseKeyStreet = @"street";
NSString *const FBSDKPlacesResponseKeyZip = @"zip";
NSString *const FBSDKPlacesResponseKeyMatchedCategories = @"matched_categories";
NSString *const FBSDKPlacesResponseKeyPhotoSource = @"source";
NSString *const FBSDKPlacesResponseKeyData = @"data";
NSString *const FBSDKPlacesResponseKeyUrl = @"url";
NSString *const FBSDKPlacesParameterKeySummary = @"summary";
NSString *const FBSDKPlacesSummaryKeyTracking = @"tracking";

View File

@ -0,0 +1,199 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <CoreLocation/CoreLocation.h>
#import <Foundation/Foundation.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import "FBSDKPlacesKitConstants.h"
/**
Completion block for aysnchronous place request generation.
@param graphRequest An `FBSDKGraphRequest` with the parameters supplied to the
original method call.
@param location A CLLocation representing the current location of the device at the time
of the method call, which you can cache for later use.
@param error An error indicating a failure in a location services request.
*/
typedef void (^FBSDKPlaceGraphRequestCompletion)(FBSDKGraphRequest *_Nullable graphRequest, CLLocation *_Nullable location, NSError *_Nullable error);
/**
Completion block for aysnchronous current place request generation.
@param graphRequest An `FBSDKGraphRequest` with the parameters supplied to the
original method call.
@param error An error indicating a failure in a location services request.
*/
typedef void (^FBSDKCurrentPlaceGraphRequestCompletion)(FBSDKGraphRequest *_Nullable graphRequest, NSError *_Nullable error);
/**
`FBSDKPlacesManager` provides methods for searching for nearby places, as well as for
determining the current place where a person might be.
To use some features of the `FBSDKPlacesManager`, your app must be configured to allow
either the `CoreLocation` permission for `kCLAuthorizationStatusAuthorizedWhenInUse`,
or for `kCLAuthorizationStatusAuthorizedAlways`. For information about enabling these
for your app, see:
https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html.
*/
@interface FBSDKPlacesManager : NSObject
/**
Method for generating a graph request for searching the Places Graph using the device's
current location. This is an asynchronous call, due to the need to fetch the current
location from the device.
@param searchTerm The term to search for in the Places Graph.
@param categories The categories for the place. Each string in this array must be a
category recognized by the SDK. See `FBSDKPlacesKitConstants.h` for the categories
exposed by the SDK, and see https://developers.facebook.com/docs/places/web/search#categories
for the most up to date list.
@param fields A list of fields that you might want the request to return. See
`FBSDKPlacesKitConstants.h` for the fields exposed by the SDK, and see
https://developers.facebook.com/docs/places/fields" for the most up to date list.
@param distance The search radius. For an unlimited radius, use 0.
@param cursor A pagination cursor.
@param completion An `FBSDKPlaceGraphRequestCompletion` block. Note that this block will
return the location, which you can choose to cache and use on calls to the synchronous
`placesGraphRequestForLocation` method.
*/
- (void)generatePlaceSearchRequestForSearchTerm:(nullable NSString *)searchTerm
categories:(nullable NSArray<NSString *> *)categories
fields:(nullable NSArray<NSString *> *)fields
distance:(CLLocationDistance)distance
cursor:(nullable NSString *)cursor
completion:(nonnull FBSDKPlaceGraphRequestCompletion)completion;
/**
Method for generating a graph request for searching the Places API.
@param location The location for the search. If you do not wish to provide a location,
you must provide a search term.
@param searchTerm The term to search the Places Graph for.
@param categories The categories of the place. Each string in this array must be a
category recognized by the SDK. See `FBSDKPlacesKitConstants.h` for the categories
exposed by the SDK, and see https://developers.facebook.com/docs/places/web/search#categories
for the most up to date list.
@param fields A list of fields that you might want the request to return. See
`FBSDKPlacesKitConstants.h` for the fields exposed by the SDK, and see https://developers.facebook.com/docs/places/fields
for the most up to date list.
@param distance The search radius. For an unlimited radius, use 0.
@param cursor A pagination cursor
@return An `FBSDKGraphRequest` for the given parameters.
*/
- (nullable FBSDKGraphRequest *)placeSearchRequestForLocation:(nullable CLLocation *)location
searchTerm:(nullable NSString *)searchTerm
categories:(nullable NSArray<NSString *> *)categories
fields:(nullable NSArray<NSString *> *)fields
distance:(CLLocationDistance)distance
cursor:(nullable NSString *)cursor;
/**
Method for generating a graph request to query for places the device is likely
located in. This is an asynchronous call, due to the need to fetch the current location
from the device. Note that the results of the graph request are improved if the user has
both Wi-Fi and Bluetooth enabled.
@param minimumConfidence The Minimum Confidence level place estimate candidates must meet.
@param fields A list of fields that you might want the request to return. See
`FBSDKPlacesKitConstants.h` for the fields exposed by the SDK, and see https://developers.facebook.com/docs/places/fields
for the most up to date list.
@param completion A `FBSDKCurrentPlaceGraphRequestCompletion` block, that contains the graph request.
*/
- (void)generateCurrentPlaceRequestWithMinimumConfidenceLevel:(FBSDKPlaceLocationConfidence)minimumConfidence
fields:(nullable NSArray<NSString *> *)fields
completion:(nonnull FBSDKCurrentPlaceGraphRequestCompletion)completion;
/**
Method for generating a graph request to query for places the device is likely
located in. This method allows the user to pass in a CLLocation, as the above method
can be real-world slow at obtaining a location from device (on the order of multiple
seconds). This is still an asynchronous call, as the bluetooth scan still needs to
happen, however it is relatively fast (0.5 seconds). Note that the results of the
graph request are improved if the user has both Wi-Fi and Bluetooth enabled.
@param currentLocation The current location of the device. If the location passed in here
isn't actually the current location, accuracy of results will be diminished.
@param minimumConfidence The Minimum Confidence level place estimate candidates must meet.
@param fields A list of fields that you might want the request to return. See
`FBSDKPlacesKitConstants.h` for the fields exposed by the SDK, and see https://developers.facebook.com/docs/places/fields
for the most up to date list.
@param completion A `FBSDKCurrentPlaceGraphRequestCompletion` block, that contains the graph request.
*/
- (void)generateCurrentPlaceRequestForCurrentLocation:(nonnull CLLocation *)currentLocation
withMinimumConfidenceLevel:(FBSDKPlaceLocationConfidence)minimumConfidence
fields:(nullable NSArray<NSString *> *)fields
completion:(nonnull FBSDKCurrentPlaceGraphRequestCompletion)completion;
/**
Method for generating a graph request to provide feedback to the Places Graph about
the accuracy of current place estimate candidates. We'd very much appreciate it if
you'd give us feedback about our current place results. If a user indicates that a place
returned by a current place estimate either is, or is not where they currently are,
then this method generates a graph request to allow you to pass that feedback back to us.
@param placeID The place ID returned by the current place request.
@param tracking The tracking value returned by the current place request.
@param wasHere A boolean value indicating whether the user is actually at the place.
@return An `FBSDKGraphRequest` for the given parameters.
*/
- (nonnull FBSDKGraphRequest *)currentPlaceFeedbackRequestForPlaceID:(nonnull NSString *)placeID
tracking:(nonnull NSString *)tracking
wasHere:(BOOL)wasHere;
/**
Method for generating a graph request to fetch additional information for a given place.
@param placeID The ID of the place.
@param fields A list of fields that you might want the request to return. See
`FBSDKPlacesKitConstants.h` for the fields exposed by the SDK, and see https://developers.facebook.com/docs/places/fields
for the most up to date list.
@return An `FBSDKGraphRequest` for the given parameters.
*/
- (nonnull FBSDKGraphRequest *)placeInfoRequestForPlaceID:(nonnull NSString *)placeID
fields:(nullable NSArray<NSString *> *)fields;
@end

View File

@ -0,0 +1,328 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "FBSDKPlacesManager.h"
#import <SystemConfiguration/CaptiveNetwork.h>
#import "FBSDKPlacesBluetoothScanner.h"
static NSString *const ParameterKeyFields = @"fields";
typedef void (^FBSDKLocationRequestCompletion)(CLLocation *_Nullable location, NSError *_Nullable error);
@interface FBSDKPlacesManager() <CLLocationManagerDelegate>
@property (nonatomic, strong) CLLocationManager *locationManager;
@property (atomic, strong) NSMutableArray <FBSDKLocationRequestCompletion> *locationCompletionBlocks;
@property (nonatomic, strong) FBSDKPlacesBluetoothScanner *bluetoothScanner;
@end
@implementation FBSDKPlacesManager
- (instancetype)init
{
self = [super init];
if (self) {
_locationManager = [CLLocationManager new];
_locationManager.delegate = self;
_locationCompletionBlocks = [NSMutableArray new];
_bluetoothScanner = [FBSDKPlacesBluetoothScanner new];
}
return self;
}
#pragma mark - Place Search
- (void)generatePlaceSearchRequestForSearchTerm:(NSString *)searchTerm
categories:(NSArray<NSString *> *)categories
fields:(NSArray<NSString *> *)fields
distance:(CLLocationDistance)distance
cursor:(NSString *)cursor
completion:(FBSDKPlaceGraphRequestCompletion)completion
{
__weak FBSDKPlacesManager *weakSelf = self;
[self.locationCompletionBlocks addObject:^void (CLLocation *location, NSError *error) {
if (!error) {
FBSDKGraphRequest *request = [weakSelf placeSearchRequestForLocation:location searchTerm:searchTerm categories:categories fields:fields distance:distance cursor:cursor];
completion(request, location, nil);
}
else {
completion(nil, nil, error);
}
}];
[self.locationManager requestLocation];
}
- (FBSDKGraphRequest *)placeSearchRequestForLocation:(CLLocation *)location
searchTerm:(NSString *)searchTerm
categories:(NSArray<NSString *> *)categories
fields:(NSArray<NSString *> *)fields
distance:(CLLocationDistance)distance
cursor:(NSString *)cursor
{
if (!location && !searchTerm) {
return nil;
}
NSMutableDictionary *parameters = [@{@"type" : @"place"} mutableCopy];
if (searchTerm) {
parameters[@"q"] = searchTerm;
}
if (categories) {
parameters[@"categories"] = [self _jsonStringForObject:categories];
}
if (location) {
parameters[@"center"] = [NSString stringWithFormat:@"%f,%f", location.coordinate.latitude, location.coordinate.longitude];
}
if (distance > 0) {
parameters[@"distance"] = @(distance);
}
if (fields) {
parameters[ParameterKeyFields] = [fields componentsJoinedByString:@","];
}
return [[FBSDKGraphRequest alloc]
initWithGraphPath:@"search"
parameters:parameters
tokenString:self._tokenString
version:nil
HTTPMethod:nil];
}
- (void)generateCurrentPlaceRequestWithMinimumConfidenceLevel:(FBSDKPlaceLocationConfidence)minimumConfidence
fields:(NSArray<NSString *> *)fields
completion:(FBSDKCurrentPlaceGraphRequestCompletion)completion
{
dispatch_group_t locationAndBeaconsGroup = dispatch_group_create();
__block CLLocation *currentLocation = nil;
__block NSError *locationError = nil;
__block NSArray<FBSDKBluetoothBeacon *> *currentBeacons = nil;
dispatch_group_enter(locationAndBeaconsGroup);
[self.locationCompletionBlocks addObject:^void (CLLocation *location, NSError *error) {
currentLocation = location;
locationError = error;
dispatch_group_leave(locationAndBeaconsGroup);
}];
[self.locationManager requestLocation];
dispatch_group_enter(locationAndBeaconsGroup);
[self.bluetoothScanner scanForBeaconsWithCompletion:^(NSArray<FBSDKBluetoothBeacon *> * _Nullable beacons) {
currentBeacons = beacons;
dispatch_group_leave(locationAndBeaconsGroup);
}];
dispatch_group_notify(locationAndBeaconsGroup, dispatch_get_main_queue(),^{
if (!currentLocation) {
completion(nil, locationError);
}
else {
completion([self _currentPlaceGraphRequestForLocation:currentLocation bluetoothBeacons:currentBeacons minimumConfidenceLevel:minimumConfidence fields:fields], nil);
}
});
}
- (void)generateCurrentPlaceRequestForCurrentLocation:(CLLocation *)currentLocation
withMinimumConfidenceLevel:(FBSDKPlaceLocationConfidence)minimumConfidence
fields:(nullable NSArray<NSString *> *)fields
completion:(nonnull FBSDKCurrentPlaceGraphRequestCompletion)completion
{
[self.bluetoothScanner scanForBeaconsWithCompletion:^(NSArray<FBSDKBluetoothBeacon *> * _Nullable beacons) {
completion([self _currentPlaceGraphRequestForLocation:currentLocation bluetoothBeacons:beacons minimumConfidenceLevel:minimumConfidence fields:fields], nil);
}];
}
- (FBSDKGraphRequest *)currentPlaceFeedbackRequestForPlaceID:(NSString *)placeID
tracking:(NSString *)tracking
wasHere:(BOOL)wasHere
{
return [[FBSDKGraphRequest alloc]
initWithGraphPath:@"current_place/feedback"
parameters:@{@"tracking" : tracking,
@"place_id" : placeID,
@"was_here" : @(wasHere)}
tokenString:self._tokenString
version:nil
HTTPMethod:@"POST"];
}
- (FBSDKGraphRequest *)placeInfoRequestForPlaceID:(NSString *)placeID
fields:(NSArray<NSString *> *)fields
{
NSDictionary *parameters = @{};
if (fields) {
parameters = @{ParameterKeyFields : [fields componentsJoinedByString:@","]};
}
return [[FBSDKGraphRequest alloc]
initWithGraphPath:placeID
parameters:parameters
tokenString:self._tokenString
version:nil
HTTPMethod:nil];
}
#pragma mark - Helper Methods
- (FBSDKGraphRequest *)_currentPlaceGraphRequestForLocation:(CLLocation *)location
bluetoothBeacons:(NSArray<FBSDKBluetoothBeacon *> *)beacons
minimumConfidenceLevel:(FBSDKPlaceLocationConfidence)minimumConfidence
fields:(NSArray<NSString *> *)fields
{
NSMutableDictionary *parameters = [NSMutableDictionary new];
parameters[@"coordinates"] = [self _jsonStringForObject:@{@"latitude" : @(location.coordinate.latitude),
@"longitude" : @(location.coordinate.longitude)}];
parameters[@"summary"] = @"tracking";
NSArray *beaconParams = [self _bluetoothParametersForBeacons:beacons];
if (beaconParams) {
parameters[@"bluetooth"] = [self _jsonStringForObject:@{@"enabled" : @YES,
@"scans" : beaconParams}];
}
NSDictionary *networkInfo = [self _networkInfo];
if (networkInfo) {
NSString *ssid = networkInfo[@"SSID"];
NSString *bssid = networkInfo[@"BSSID"];
if ((ssid && bssid) &&
!([ssid containsString:@"_nomap"] || [ssid containsString:@"_optout"])) {
parameters[@"wifi"] = [self _jsonStringForObject:@{@"enabled" : @YES,
@"current_connection" : @{@"ssid" : ssid,
@"mac_address" : bssid}}];
}
}
if (minimumConfidence != FBSDKPlaceLocationConfidenceNotApplicable) {
parameters[@"min_confidence_level"] = [self _confidenceWebKeyForConfidence:minimumConfidence];
}
if (fields) {
parameters[ParameterKeyFields] = [fields componentsJoinedByString:@","];
}
return [[FBSDKGraphRequest alloc]
initWithGraphPath:@"current_place/results"
parameters:parameters
tokenString:self._tokenString
version:nil
HTTPMethod:nil];
}
- (NSDictionary *)_networkInfo
{
NSArray *interfaceNames = CFBridgingRelease(CNCopySupportedInterfaces());
for (NSString *interfaceName in interfaceNames) {
NSDictionary *networkInfo = CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)interfaceName));
if (networkInfo.count > 0) {
return networkInfo;
}
}
return nil;
}
- (NSArray *)_bluetoothParametersForBeacons:(NSArray<FBSDKBluetoothBeacon *> *)beacons
{
if (!beacons) {
return nil;
}
NSMutableArray *beaconDicts = [NSMutableArray new];
for (FBSDKBluetoothBeacon *beacon in beacons) {
[beaconDicts addObject:@{@"payload" : beacon.payload,
@"rssi" : beacon.RSSI}];
}
return beaconDicts;
}
- (NSString *)_confidenceWebKeyForConfidence:(FBSDKPlaceLocationConfidence)confidence
{
switch (confidence) {
case FBSDKPlaceLocationConfidenceNotApplicable:
return @"";
break;
case FBSDKPlaceLocationConfidenceLow:
return @"low";
break;
case FBSDKPlaceLocationConfidenceMedium:
return @"medium";
break;
case FBSDKPlaceLocationConfidenceHigh:
return @"high";
break;
}
}
- (NSString *)_jsonStringForObject:(id)object
{
if (![NSJSONSerialization isValidJSONObject:object]) {
return @"";
}
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object options:0 error:&error];
if (!error && jsonData) {
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
else {
return @"";
}
}
- (NSString *)_tokenString
{
return [FBSDKAccessToken currentAccessToken].tokenString ?: [NSString stringWithFormat:@"%@|%@", [FBSDKSettings appID], [FBSDKSettings clientToken]];
}
#pragma mark - CLLocationManager Delegate
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
{
CLLocation *mostRecentLocation = locations.lastObject;
[self _callCompletionBlocksWithLocation:mostRecentLocation error:nil];
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
[self _callCompletionBlocksWithLocation:nil error:error];
}
- (void)_callCompletionBlocksWithLocation:(CLLocation *)location error:(NSError *)error
{
for (FBSDKLocationRequestCompletion completionBlock in self.locationCompletionBlocks) {
completionBlock(location, error);
}
[self.locationCompletionBlocks removeAllObjects];
}
@end

View File

@ -16,12 +16,19 @@
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
//! Project version number for FBSDKMarketingKit.
FOUNDATION_EXPORT double FBSDKMarketingKitVersionNumber;
@interface FBSDKBluetoothBeacon : NSObject
//! Project version string for FBSDKMarketingKit.
FOUNDATION_EXPORT const unsigned char FBSDKMarketingKitVersionString[];
@property (nonatomic, strong) NSNumber *_Nonnull RSSI;
@property (nonatomic, copy) NSString *_Nonnull payload;
#import <FBSDKMarketingKit/FBSDKAutoLog.h>
@end
typedef void (^BluetoothBeaconScanCompletion)(NSArray<FBSDKBluetoothBeacon *> *_Nullable beacons);
@interface FBSDKPlacesBluetoothScanner : NSObject
- (void)scanForBeaconsWithCompletion:(nonnull BluetoothBeaconScanCompletion)completion;
@end

View File

@ -0,0 +1,181 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "FBSDKPlacesBluetoothScanner.h"
#import <CoreBluetooth/CoreBluetooth.h>
static NSString *const FBBeaconUUIDString = @"FEB8";
static NSString *const EddystoneBeaconUUIDString = @"FEAA";
static NSInteger const FBBeaconPrefix = 0xff;
static NSInteger const EddystoneBeaconPrefix = 0xfeaa16;
static NSTimeInterval const scanLength = 0.5;
@interface FBSDKPlacesBluetoothScanner () <CBCentralManagerDelegate>
@property (nonatomic, strong) CBCentralManager *manager;
@property (nonatomic, strong) NSTimer *updateTimeoutTimer;
@property (nonatomic, strong) NSMutableArray<FBSDKBluetoothBeacon *> *discoveredBeacons;
@property (atomic, strong) NSMutableArray<BluetoothBeaconScanCompletion> *scanCompletionBlocks;
@property (nonatomic, assign) BOOL didPerformScan;
@property (nonatomic, copy, readonly) NSArray<CBUUID *> *bluetoothServices;
@property (nonatomic, strong, readonly) CBUUID *eddystoneBeaconUUID;
@end
@implementation FBSDKPlacesBluetoothScanner
- (instancetype)init
{
self = [super init];
if (self) {
_manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:@{CBCentralManagerOptionShowPowerAlertKey: @NO}];
_discoveredBeacons = [NSMutableArray new];
_eddystoneBeaconUUID = [CBUUID UUIDWithString:EddystoneBeaconUUIDString];
_bluetoothServices = @[[CBUUID UUIDWithString:FBBeaconUUIDString], _eddystoneBeaconUUID];
_scanCompletionBlocks = [NSMutableArray new];
}
return self;
}
- (void)scanForBeaconsWithCompletion:(BluetoothBeaconScanCompletion)completion
{
if (self.manager.state == CBCentralManagerStatePoweredOff ||
self.manager.state == CBCentralManagerStateUnsupported ||
self.manager.state == CBCentralManagerStateUnauthorized) {
completion(nil);
return;
}
[self.scanCompletionBlocks addObject:completion];
if (self.manager.state == CBCentralManagerStatePoweredOn) {
[self _startScan];
}
}
- (void)_startScan
{
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_9_0
if (@available(iOS 9.0, *)) {
if (self.manager.isScanning) {
return;
}
}
#endif
[self.discoveredBeacons removeAllObjects];
[self.manager scanForPeripheralsWithServices:self.bluetoothServices options:@{ CBCentralManagerScanOptionAllowDuplicatesKey : @YES }];
self.updateTimeoutTimer = [NSTimer scheduledTimerWithTimeInterval:scanLength target:self selector:@selector(_finalizeBluetoothScan) userInfo:nil repeats:NO];
self.didPerformScan = YES;
}
- (void)_finalizeBluetoothScan
{
[self.manager stopScan];
for (BluetoothBeaconScanCompletion completion in self.scanCompletionBlocks) {
if (self.didPerformScan) {
completion(self.discoveredBeacons);
}
else {
completion(nil);
}
}
[self.scanCompletionBlocks removeAllObjects];
self.didPerformScan = NO;
}
#pragma mark - Central Manager Delegate
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI
{
FBSDKBluetoothBeacon *beacon = [FBSDKBluetoothBeacon new];
beacon.RSSI = RSSI;
if (advertisementData[CBAdvertisementDataManufacturerDataKey]) {
beacon.payload = [self _dataStringForFBGravityBeaconData:advertisementData[CBAdvertisementDataManufacturerDataKey]];
}
else if (advertisementData[CBAdvertisementDataServiceDataKey][self.eddystoneBeaconUUID]){
beacon.payload = [self _dataStringForEddystoneBeaconData:advertisementData[CBAdvertisementDataServiceDataKey][self.eddystoneBeaconUUID]];
}
else {
return;
}
[self.discoveredBeacons addObject:beacon];
}
- (void)centralManagerDidUpdateState:(CBCentralManager *)central
{
if (self.scanCompletionBlocks.count > 0) {
if (central.state == CBCentralManagerStatePoweredOn) {
[self _startScan];
}
else {
[self _finalizeBluetoothScan];
}
}
}
#pragma mark - Beacon Data Helper Methods
- (NSString *)_dataStringForFBGravityBeaconData:(NSData *)data
{
NSMutableData *manufacturerPrefix = [[NSMutableData alloc] initWithBytes:&FBBeaconPrefix length:1];
[manufacturerPrefix appendData:data];
NSInteger length = manufacturerPrefix.length;
NSMutableData *finalBeaconData = [[NSMutableData alloc] initWithBytes:&length length:1];
[finalBeaconData appendData:manufacturerPrefix];
return [self _hexStringForData:finalBeaconData];
}
- (NSString *)_dataStringForEddystoneBeaconData:(NSData *)data
{
NSMutableData *manufacturerPrefix = [[NSMutableData alloc] initWithBytes:&EddystoneBeaconPrefix length:3];
[manufacturerPrefix appendData:data];
NSInteger length = manufacturerPrefix.length;
NSMutableData *finalBeaconData = [[NSMutableData alloc] initWithBytes:&length length:1];
[finalBeaconData appendData:manufacturerPrefix];
return [self _hexStringForData:finalBeaconData];
}
- (NSString *)_hexStringForData:(NSData *)data
{
NSMutableString *hexString = [NSMutableString stringWithCapacity:data.length * 2];
const unsigned char *rawBytes = data.bytes;
for (NSInteger i = 0; i < data.length; i++) {
[hexString appendFormat:@"%02x", rawBytes[i]];
}
return [hexString copy];
}
@end
@implementation FBSDKBluetoothBeacon
@end

60
Example/Pods/FBSDKPlacesKit/README.md generated Normal file
View File

@ -0,0 +1,60 @@
# Facebook SDK for iOS
[![Platforms](https://img.shields.io/cocoapods/p/FBSDKCoreKit.svg)](https://cocoapods.org/pods/FBSDKCoreKit)
[![Build Status](https://travis-ci.org/facebook/facebook-objc-sdk.svg?branch=master)](https://travis-ci.org/facebook/facebook-objc-sdk)
[![CocoaPods](https://img.shields.io/cocoapods/v/FBSDKCoreKit.svg)](https://cocoapods.org/pods/FBSDKCoreKit)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
This open-source library allows you to integrate Facebook into your iOS app.
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more
at https://developers.facebook.com/docs/ios
NOTE: By default, the Facebook SDK for iOS is installed in ~/Documents/FacebookSDK
## TRY IT OUT
1. Download the SDK at <https://developers.facebook.com/docs/ios> or via CocoaPods by adding the 'FBSDKCoreKit',
'FBSDKLoginKit', and 'FBSDKShareKit' pods.
2. Test your install: build and run the project at `~/Documents/FacebookSDK/Samples/Scrumptious/Scrumptious.xcodeproj`
3. Check-out the tutorials available online at: <https://developers.facebook.com/docs/ios/getting-started>
4. Start coding! Visit <https://developers.facebook.com/docs/ios> for tutorials and reference documentation.
## FEATURES
- Login - <https://developers.facebook.com/docs/facebook-login>
- Sharing - <https://developers.facebook.com/docs/sharing>
- App Links - <https://developers.facebook.com/docs/applinks>
- Graph API - <https://developers.facebook.com/docs/ios/graph>
- Analytics - <https://developers.facebook.com/docs/analytics>
## GIVE FEEDBACK
Please report bugs or issues to <https://developers.facebook.com/bugs/>
You can also join the [Facebook Developers Group on Facebook](https://www.facebook.com/groups/fbdevelopers/) or ask
questions on [Stack Overflow](http://facebook.stackoverflow.com)
## LICENSE
See the [LICENSE](LICENSE) file.
## DEVELOPER TERMS
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including
information about peoples use of your app. Facebook will use information received in accordance with our
[Data Use Policy](https://www.facebook.com/about/privacy/), including to provide you with insights about the
effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on
and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool
`https://developers.facebook.com/apps/{app_id}/settings/advanced`.
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have
provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users
regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further
agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms
<https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and
Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
By using the Facebook SDK for iOS you agree to these terms.

View File

@ -24,6 +24,7 @@
#import "FBSDKShareCameraEffectContent.h"
#import "FBSDKShareConstants.h"
#import "FBSDKShareDefines.h"
#import "FBSDKShareExtension.h"
#import "FBSDKShareLinkContent.h"
#import "FBSDKShareMediaContent.h"
#import "FBSDKShareOpenGraphAction.h"
@ -1169,56 +1170,42 @@ static inline void FBSDKShareDialogValidateShareExtensionSchemeRegisteredForCanO
- (NSString *)_calculateInitialText
{
NSString *initialText;
NSString *const hashtag = [FBSDKShareUtility hashtagStringFromHashtag:self.shareContent.hashtag];
if ([self _canAttributeThroughShareSheet]) {
NSMutableDictionary *initialTextDictionary = [NSMutableDictionary new];
initialTextDictionary[@"app_id"] = [FBSDKSettings appID];
NSString *hashtag = [FBSDKShareUtility hashtagStringFromHashtag:self.shareContent.hashtag];
if (hashtag != nil) {
initialTextDictionary[@"hashtags"] = @[hashtag];
NSMutableDictionary<NSString *, id> *const parameters = [NSMutableDictionary new];
NSString *const appID = [FBSDKSettings appID];
if (appID.length > 0) {
parameters[FBSDKShareExtensionParamAppID] = [FBSDKSettings appID];
}
if (hashtag.length > 0) {
parameters[FBSDKShareExtensionParamHashtags] = @[hashtag];
}
if ([self.shareContent isKindOfClass:[FBSDKShareLinkContent class]]) {
NSString *quote = ((FBSDKShareLinkContent *)self.shareContent).quote;
if (quote != nil) {
initialTextDictionary[@"quotes"] = @[quote];
NSString *const quote = ((FBSDKShareLinkContent *)self.shareContent).quote;
if (quote.length > 0) {
parameters[FBSDKShareExtensionParamQuotes] = @[quote];
}
}
if ([self.shareContent isKindOfClass:[FBSDKShareOpenGraphContent class]]) {
NSDictionary *ogData = [FBSDKShareUtility parametersForShareContent:self.shareContent
bridgeOptions:FBSDKShareBridgeOptionsDefault
shouldFailOnDataError:self.shouldFailOnDataError];
initialTextDictionary[@"og_data"] = ogData;
NSDictionary<NSString *, id> *const ogData = [FBSDKShareUtility parametersForShareContent:self.shareContent
bridgeOptions:FBSDKShareBridgeOptionsDefault
shouldFailOnDataError:self.shouldFailOnDataError];
parameters[FBSDKShareExtensionParamOGData] = ogData;
}
NSError *error = nil;
NSString *jsonString = [FBSDKInternalUtility JSONStringForObject:initialTextDictionary error:&error invalidObjectHandler:NULL];
NSString *const jsonString = [FBSDKInternalUtility JSONStringForObject:parameters error:&error invalidObjectHandler:NULL];
if (error != nil) {
return nil;
}
NSString *JSONStartDelimiter = @"|";
initialText = [NSString stringWithFormat:@"%@%@%@",
[self _calculatePreJSONInitialTextWithHashtag:hashtag],
JSONStartDelimiter,
jsonString];
initialText = FBSDKShareExtensionInitialText(appID, hashtag, jsonString);
} else {
NSString *hashtag = [FBSDKShareUtility hashtagStringFromHashtag:self.shareContent.hashtag];
if (hashtag != nil) {
if (hashtag.length > 0) {
initialText = hashtag;
}
}
return initialText;
}
// Not all versions of the Share Extension support JSON. Adding this text before allows backward compatibility
- (NSString *)_calculatePreJSONInitialTextWithHashtag:(NSString *)hashtag
{
NSMutableString *text = [NSMutableString new];
[text appendString:[NSString stringWithFormat:@"fb-app-id:%@", [FBSDKSettings appID]]];
if (hashtag != nil) {
[text appendString:@" "];
[text appendString:hashtag];
}
return [text copy];
}
@end

View File

@ -195,7 +195,7 @@ NSString *const kFBSDKShareVideoURLKey = @"videoURL";
}
if ((errorRef != NULL) && !*errorRef) {
*errorRef = [NSError fbInvalidArgumentErrorWithDomain:FBSDKShareErrorDomain
name:@"videoURL"
name:kFBSDKShareVideoURLKey
value:videoURL
message:@"Must refer to an asset file."];
}

View File

@ -0,0 +1,32 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
extern NSString *const FBSDKShareExtensionParamAppID; // application identifier string
extern NSString *const FBSDKShareExtensionParamHashtags; // array of hashtag strings (max 1)
extern NSString *const FBSDKShareExtensionParamQuotes; // array of quote strings (max 1)
extern NSString *const FBSDKShareExtensionParamOGData; // dictionary of Open Graph data
NSString *_Nullable FBSDKShareExtensionInitialText(NSString *_Nullable appID,
NSString *_Nullable hashtag,
NSString *_Nullable jsonString);
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,50 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "FBSDKShareExtension.h"
NSString *const FBSDKShareExtensionParamAppID = @"app_id"; // application identifier string
NSString *const FBSDKShareExtensionParamHashtags = @"hashtags"; // array of hashtag strings (max 1)
NSString *const FBSDKShareExtensionParamQuotes = @"quotes"; // array of quote strings (max 1)
NSString *const FBSDKShareExtensionParamOGData = @"og_data"; // dictionary of Open Graph data
NSString *FBSDKShareExtensionInitialText(NSString *appID,
NSString *hashtag,
NSString *jsonString)
{
NSMutableString *const initialText = [NSMutableString new];
// Not all versions of our Share Extension supported JSON.
// Adding this text before the JSON payload supports backward compatibility.
if (appID.length > 0) {
[initialText appendString:[NSString stringWithFormat:@"fb-app-id:%@", appID]];
}
if (hashtag.length > 0) {
if (initialText.length > 0) {
[initialText appendString:@" "];
}
[initialText appendString:hashtag];
}
if (jsonString.length > 0) {
[initialText appendString:@"|"]; // JSON start delimiter
[initialText appendString:jsonString];
}
return initialText.length > 0 ? initialText : nil;
}

View File

@ -1,16 +1,22 @@
# Facebook SDK for iOS
[![Platforms](https://img.shields.io/cocoapods/p/FBSDKCoreKit.svg)](https://cocoapods.org/pods/FBSDKCoreKit)
[![Build Status](https://travis-ci.org/facebook/facebook-objc-sdk.svg?branch=master)](https://travis-ci.org/facebook/facebook-objc-sdk)
[![CocoaPods](https://img.shields.io/cocoapods/v/FBSDKCoreKit.svg)](https://cocoapods.org/pods/FBSDKCoreKit)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
This open-source library allows you to integrate Facebook into your iOS app.
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more at https://developers.facebook.com/docs/ios
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more
at https://developers.facebook.com/docs/ios
NOTE: By default, the Facebook SDK for iOS is installed in ~/Documents/FacebookSDK
## TRY IT OUT
1. Download the SDK at <https://developers.facebook.com/docs/ios> or via CocoaPods by adding the 'FBSDKCoreKit', 'FBSDKLoginKit', and 'FBSDKShareKit' pods.
1. Download the SDK at <https://developers.facebook.com/docs/ios> or via CocoaPods by adding the 'FBSDKCoreKit',
'FBSDKLoginKit', and 'FBSDKShareKit' pods.
2. Test your install: build and run the project at `~/Documents/FacebookSDK/Samples/Scrumptious/Scrumptious.xcodeproj`
3. Check-out the tutorials available online at: <https://developers.facebook.com/docs/ios/getting-started>
4. Start coding! Visit <https://developers.facebook.com/docs/ios> for tutorials and reference documentation.
@ -27,7 +33,8 @@ NOTE: By default, the Facebook SDK for iOS is installed in ~/Documents/FacebookS
Please report bugs or issues to <https://developers.facebook.com/bugs/>
You can also join the [Facebook Developers Group on Facebook](https://www.facebook.com/groups/fbdevelopers/) or ask questions on [Stack Overflow](http://facebook.stackoverflow.com)
You can also join the [Facebook Developers Group on Facebook](https://www.facebook.com/groups/fbdevelopers/) or ask
questions on [Stack Overflow](http://facebook.stackoverflow.com)
## LICENSE
@ -35,9 +42,19 @@ See the [LICENSE](LICENSE) file.
## DEVELOPER TERMS
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including information about peoples use of your app. Facebook will use information received in accordance with our [Data Use Policy](https://www.facebook.com/about/privacy/), including to provide you with insights about the effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool `https://developers.facebook.com/apps/{app_id}/settings/advanced`.
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms <https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including
information about peoples use of your app. Facebook will use information received in accordance with our
[Data Use Policy](https://www.facebook.com/about/privacy/), including to provide you with insights about the
effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on
and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool
`https://developers.facebook.com/apps/{app_id}/settings/advanced`.
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have
provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users
regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further
agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms
<https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and
Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
By using the Facebook SDK for iOS you agree to these terms.

View File

@ -1,41 +0,0 @@
# Facebook SDK for iOS
This open-source library allows you to integrate Facebook into your iOS app.
Learn more about the provided samples, documentation, integrating the SDK into your app, accessing source code, and more at https://developers.facebook.com/docs/ios
NOTE: By default, the Facebook SDK for iOS is installed in ~/Documents/FacebookSDK
## TRY IT OUT
1. Download the SDK at <https://developers.facebook.com/docs/ios> or via CocoaPods by adding the 'FBSDKCoreKit', 'FBSDKLoginKit', and 'FBSDKShareKit' pods.
2. Test your install: build and run the project at `~/Documents/FacebookSDK/Samples/Scrumptious/Scrumptious.xcodeproj`
3. Check-out the tutorials available online at: <https://developers.facebook.com/docs/ios/getting-started>
4. Start coding! Visit <https://developers.facebook.com/docs/ios> for tutorials and reference documentation.
## FEATURES
- Login - <https://developers.facebook.com/docs/facebook-login>
- Sharing - <https://developers.facebook.com/docs/sharing>
- App Links - <https://developers.facebook.com/docs/applinks>
- Graph API - <https://developers.facebook.com/docs/ios/graph>
- Analytics - <https://developers.facebook.com/docs/analytics>
## GIVE FEEDBACK
Please report bugs or issues to <https://developers.facebook.com/bugs/>
You can also join the [Facebook Developers Group on Facebook](https://www.facebook.com/groups/fbdevelopers/) or ask questions on [Stack Overflow](http://facebook.stackoverflow.com)
## LICENSE
See the [LICENSE](LICENSE) file.
## DEVELOPER TERMS
- By enabling Facebook integrations, including through this SDK, you can share information with Facebook, including information about peoples use of your app. Facebook will use information received in accordance with our [Data Use Policy](https://www.facebook.com/about/privacy/), including to provide you with insights about the effectiveness of your ads and the use of your app. These integrations also enable us and our partners to serve ads on and off Facebook.
- You may limit your sharing of information with us by updating the Insights control in the developer tool `https://developers.facebook.com/apps/{app_id}/settings/advanced`.
- If you use a Facebook integration, including to share information with us, you agree and confirm that you have provided appropriate and sufficiently prominent notice to and obtained the appropriate consent from your users regarding such collection, use, and disclosure (including, at a minimum, through your privacy policy). You further agree that you will not share information with us about children under the age of 13.
- You agree to comply with all applicable laws and regulations and also agree to our Terms <https://www.facebook.com/policies/>, including our Platform Policies <https://developers.facebook.com/policy/>.and Advertising Guidelines, as applicable <https://www.facebook.com/ad_guidelines.php>.
By using the Facebook SDK for iOS you agree to these terms.

View File

@ -0,0 +1 @@
../../../FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit/Internal/FBSDKPlacesBluetoothScanner.h

View File

@ -0,0 +1 @@
../../../FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit.h

View File

@ -0,0 +1 @@
../../../FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKitConstants.h

View File

@ -0,0 +1 @@
../../../FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesManager.h

View File

@ -0,0 +1 @@
../../../../FBSDKShareKit/FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareExtension.h

View File

@ -1 +0,0 @@
../../../../FBSDKMarketingKit/FBSDKMarketingKit.framework/Headers/FBSDKAutoLog.h

View File

@ -1 +0,0 @@
../../../../FBSDKMarketingKit/FBSDKMarketingKit.framework/Headers/FBSDKMarketingKit.h

View File

@ -0,0 +1 @@
../../../FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit.h

View File

@ -0,0 +1 @@
../../../FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKitConstants.h

View File

@ -0,0 +1 @@
../../../FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesKit/FBSDKPlacesManager.h

View File

@ -1,6 +1,6 @@
{
"name": "PNObject",
"version": "2.6.3",
"version": "2.6.4",
"summary": "PNObject is a simple replica of the more complex ParseObject",
"homepage": "https://github.com/giuseppenucifora/PNObject",
"license": {
@ -12,7 +12,7 @@
},
"source": {
"git": "https://github.com/giuseppenucifora/PNObject.git",
"tag": "2.6.3"
"tag": "2.6.4"
},
"platforms": {
"ios": "9.0"
@ -43,7 +43,7 @@
"StrongestPasswordValidator": [
],
"FacebookSDK": [
"FBSDKCoreKit": [
],
"FBSDKLoginKit": [
@ -51,6 +51,9 @@
],
"FBSDKShareKit": [
],
"FBSDKPlacesKit": [
],
"NSDataAES": [

View File

@ -26,24 +26,13 @@ PODS:
- DJLocalization/Core (= 1.2.2)
- DJLocalization/Core (1.2.2)
- Expecta (1.0.6)
- FacebookSDK (4.38.0):
- Bolts (~> 1.9)
- FacebookSDK/CoreKit (= 4.38.0)
- FacebookSDK/MarketingKit (= 4.38.0)
- FacebookSDK/CoreKit (4.38.0):
- FBSDKCoreKit (4.41.0):
- Bolts (~> 1.9)
- FBSDKLoginKit (4.41.0):
- FBSDKCoreKit
- FacebookSDK/MarketingKit (4.38.0):
- Bolts (~> 1.9)
- FacebookSDK/CoreKit
- FBSDKMarketingKit
- FBSDKCoreKit (4.40.0):
- Bolts (~> 1.9)
- FBSDKLoginKit (4.40.0):
- FBSDKPlacesKit (4.41.0):
- FBSDKCoreKit
- FBSDKMarketingKit (4.38.0):
- FBSDKCoreKit
- FBSDKShareKit (4.40.0):
- FBSDKShareKit (4.41.0):
- FBSDKCoreKit
- NSDataAES (0.2.2)
- NSDate_Utils (1.1.0):
@ -51,13 +40,14 @@ PODS:
- NSString-Helper (1.2.0)
- nv-ios-http-status (0.0.1)
- PEAR-FileManager-iOS (1.3.1)
- PNObject (2.6.3):
- PNObject (2.6.4):
- AFNetworking
- CodFis-Helper
- DDDKeychainWrapper
- DJLocalization
- FacebookSDK
- FBSDKCoreKit
- FBSDKLoginKit
- FBSDKPlacesKit
- FBSDKShareKit
- NSDataAES
- NSDate_Utils
@ -87,10 +77,9 @@ SPEC REPOS:
- DDDKeychainWrapper
- DJLocalization
- Expecta
- FacebookSDK
- FBSDKCoreKit
- FBSDKLoginKit
- FBSDKMarketingKit
- FBSDKPlacesKit
- FBSDKShareKit
- NSDataAES
- NSDate_Utils
@ -114,17 +103,16 @@ SPEC CHECKSUMS:
DDDKeychainWrapper: e681a4daba6448786fa83b4941f58102a33b1897
DJLocalization: 0c84029af375647d4104a42ae36be87194c46c47
Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5
FacebookSDK: 73f54b8b94e09b05647cdef0af147f470cd3edc6
FBSDKCoreKit: ae214474b25033399c131dc81d258e412582a2ba
FBSDKLoginKit: 7a1e411d46acc8834588eca437daf34de42e1d52
FBSDKMarketingKit: e609f39d74ab273cf52e2f8b7e8829ed412b2827
FBSDKShareKit: 0e45916f4150da485928ae2a17ca021950b194f5
FBSDKCoreKit: 974810fe3806173f3777c68062fa8ed6fa59b59d
FBSDKLoginKit: 159a5c2eebe6a0774c3b128f5085128679233d2b
FBSDKPlacesKit: 8dc2ca787f8934c021876d9e51bf3a5508b0675c
FBSDKShareKit: 79dfd0c51f1a241f33e219fcc39e7cc69534b900
NSDataAES: 967ea3337476a80e9838a533c25d570a06855ed0
NSDate_Utils: c858a89da6e204ecf53aca48dbccb4da4d25bc9e
NSString-Helper: 1c259caa6c845e79e0bb45ee25e34f95d86d2317
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
PNObject: b70db2cba56df79ddf5b2df096afad403cc5d041
PNObject: 5d8947012a711816bceedce57d07762327ac57c6
PureLayout: f08c01b8dec00bb14a1fefa3de4c7d9c265df85e
RZDataBinding: 289e2fbdce8b9585afef69def83425c5d380ffbd
Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66
@ -133,4 +121,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: eec9c921f7aee591fd1fdea1fd3e5a191b74a436
COCOAPODS: 1.5.3
COCOAPODS: 1.6.0

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,6 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking"
OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -1,7 +1,6 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDDKeychainWrapper
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper"
OTHER_LDFLAGS = -framework "Security"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -1,7 +1,6 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DJLocalization" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DJLocalization"
OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -1,9 +1,8 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Expecta
ENABLE_BITCODE = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Expecta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta"
OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -1,8 +1,6 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Bolts"
OTHER_LDFLAGS = -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -2,8 +2,6 @@ CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FBSDKLoginKit
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit"
OTHER_LDFLAGS = -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_FBSDKPlacesKit : NSObject
@end
@implementation PodsDummy_FBSDKPlacesKit
@end

View File

@ -0,0 +1,12 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif

View File

@ -0,0 +1,10 @@
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FBSDKPlacesKit
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FBSDKPlacesKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKPlacesKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/FBSDKPlacesKit
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES

View File

@ -2,8 +2,6 @@ CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FBSDKShareKit
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FBSDKShareKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit"
OTHER_LDFLAGS = -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -1,7 +1,6 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/NSDate_Utils
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/NSDate_Utils" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/NSDate_Utils"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -1,8 +1,6 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PNObject
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/FBSDKMarketingKit"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PNObject" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/CodFis-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/DDDKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKLoginKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKShareKit" "${PODS_CONFIGURATION_BUILD_DIR}/NSDataAES" "${PODS_CONFIGURATION_BUILD_DIR}/NSDate_Utils" "${PODS_CONFIGURATION_BUILD_DIR}/NSString-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/PEAR-FileManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/RZDataBinding" "${PODS_CONFIGURATION_BUILD_DIR}/StrongestPasswordValidator" "${PODS_CONFIGURATION_BUILD_DIR}/UIDevice-Utils" "${PODS_CONFIGURATION_BUILD_DIR}/nv-ios-http-status"
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PNObject" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKPlacesKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -168,7 +168,7 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
## FBSDKMarketingKit
## FBSDKPlacesKit
Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
@ -210,27 +210,6 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
## FacebookSDK
Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
copy, modify, and distribute this software in source code or binary form for use
in connection with the web services and APIs provided by Facebook.
As with any software that integrates with the Facebook platform, your use of
this software is subject to the Facebook Developer Principles and Policies
[http://developers.facebook.com/policy/]. This copyright notice shall be
included in all copies or substantial portions of the software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
## NSDataAES
Copyright (c) 2016 Paolo Tagliani <paolo@mobilejazz.com>

View File

@ -244,7 +244,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
<key>License</key>
<string>Facebook Platform License</string>
<key>Title</key>
<string>FBSDKMarketingKit</string>
<string>FBSDKPlacesKit</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
@ -275,33 +275,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
copy, modify, and distribute this software in source code or binary form for use
in connection with the web services and APIs provided by Facebook.
As with any software that integrates with the Facebook platform, your use of
this software is subject to the Facebook Developer Principles and Policies
[http://developers.facebook.com/policy/]. This copyright notice shall be
included in all copies or substantial portions of the software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
</string>
<key>License</key>
<string>Facebook Platform License</string>
<key>Title</key>
<string>FacebookSDK</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2016 Paolo Tagliani &lt;paolo@mobilejazz.com&gt;

View File

@ -3,10 +3,15 @@ set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then
# If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
# resources to, so exit 0 (signalling the script phase was successful).
exit 0
# If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy
# resources to, so exit 0 (signalling the script phase was successful).
exit 0
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"

View File

@ -1,9 +1,7 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/FBSDKMarketingKit"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/Specta" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/CodFis-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/DDDKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKLoginKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKShareKit" "${PODS_CONFIGURATION_BUILD_DIR}/NSDataAES" "${PODS_CONFIGURATION_BUILD_DIR}/NSDate_Utils" "${PODS_CONFIGURATION_BUILD_DIR}/NSString-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/PEAR-FileManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PNObject" "${PODS_CONFIGURATION_BUILD_DIR}/PureLayout" "${PODS_CONFIGURATION_BUILD_DIR}/RZDataBinding" "${PODS_CONFIGURATION_BUILD_DIR}/StrongestPasswordValidator" "${PODS_CONFIGURATION_BUILD_DIR}/UIDevice-Utils" "${PODS_CONFIGURATION_BUILD_DIR}/nv-ios-http-status"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/Bolts" -isystem "${PODS_ROOT}/Headers/Public/CodFis-Helper" -isystem "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" -isystem "${PODS_ROOT}/Headers/Public/DJLocalization" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKShareKit" -isystem "${PODS_ROOT}/Headers/Public/NSDataAES" -isystem "${PODS_ROOT}/Headers/Public/NSDate_Utils" -isystem "${PODS_ROOT}/Headers/Public/NSString-Helper" -isystem "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" -isystem "${PODS_ROOT}/Headers/Public/PNObject" -isystem "${PODS_ROOT}/Headers/Public/PureLayout" -isystem "${PODS_ROOT}/Headers/Public/RZDataBinding" -isystem "${PODS_ROOT}/Headers/Public/Specta" -isystem "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" -isystem "${PODS_ROOT}/Headers/Public/UIDevice-Utils" -isystem "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"Bolts" -l"CodFis-Helper" -l"DDDKeychainWrapper" -l"DJLocalization" -l"FBSDKCoreKit" -l"FBSDKLoginKit" -l"FBSDKShareKit" -l"NSDataAES" -l"NSDate_Utils" -l"NSString-Helper" -l"PEAR-FileManager-iOS" -l"PNObject" -l"PureLayout" -l"RZDataBinding" -l"StrongestPasswordValidator" -l"UIDevice-Utils" -l"nv-ios-http-status" -framework "CoreGraphics" -framework "FBSDKMarketingKit" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit" -weak_framework "WebKit"
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKPlacesKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/Specta" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/CodFis-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/DDDKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKLoginKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKPlacesKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKShareKit" "${PODS_CONFIGURATION_BUILD_DIR}/NSDataAES" "${PODS_CONFIGURATION_BUILD_DIR}/NSDate_Utils" "${PODS_CONFIGURATION_BUILD_DIR}/NSString-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/PEAR-FileManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PNObject" "${PODS_CONFIGURATION_BUILD_DIR}/PureLayout" "${PODS_CONFIGURATION_BUILD_DIR}/RZDataBinding" "${PODS_CONFIGURATION_BUILD_DIR}/StrongestPasswordValidator" "${PODS_CONFIGURATION_BUILD_DIR}/UIDevice-Utils" "${PODS_CONFIGURATION_BUILD_DIR}/nv-ios-http-status"
OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"Bolts" -l"CodFis-Helper" -l"DDDKeychainWrapper" -l"DJLocalization" -l"FBSDKCoreKit" -l"FBSDKLoginKit" -l"FBSDKPlacesKit" -l"FBSDKShareKit" -l"NSDataAES" -l"NSDate_Utils" -l"NSString-Helper" -l"PEAR-FileManager-iOS" -l"PNObject" -l"PureLayout" -l"RZDataBinding" -l"StrongestPasswordValidator" -l"UIDevice-Utils" -l"nv-ios-http-status" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

View File

@ -1,9 +1,7 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/FBSDKMarketingKit"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/Specta" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/CodFis-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/DDDKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKLoginKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKShareKit" "${PODS_CONFIGURATION_BUILD_DIR}/NSDataAES" "${PODS_CONFIGURATION_BUILD_DIR}/NSDate_Utils" "${PODS_CONFIGURATION_BUILD_DIR}/NSString-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/PEAR-FileManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PNObject" "${PODS_CONFIGURATION_BUILD_DIR}/PureLayout" "${PODS_CONFIGURATION_BUILD_DIR}/RZDataBinding" "${PODS_CONFIGURATION_BUILD_DIR}/StrongestPasswordValidator" "${PODS_CONFIGURATION_BUILD_DIR}/UIDevice-Utils" "${PODS_CONFIGURATION_BUILD_DIR}/nv-ios-http-status"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/Bolts" -isystem "${PODS_ROOT}/Headers/Public/CodFis-Helper" -isystem "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" -isystem "${PODS_ROOT}/Headers/Public/DJLocalization" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKShareKit" -isystem "${PODS_ROOT}/Headers/Public/NSDataAES" -isystem "${PODS_ROOT}/Headers/Public/NSDate_Utils" -isystem "${PODS_ROOT}/Headers/Public/NSString-Helper" -isystem "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" -isystem "${PODS_ROOT}/Headers/Public/PNObject" -isystem "${PODS_ROOT}/Headers/Public/PureLayout" -isystem "${PODS_ROOT}/Headers/Public/RZDataBinding" -isystem "${PODS_ROOT}/Headers/Public/Specta" -isystem "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" -isystem "${PODS_ROOT}/Headers/Public/UIDevice-Utils" -isystem "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"Bolts" -l"CodFis-Helper" -l"DDDKeychainWrapper" -l"DJLocalization" -l"FBSDKCoreKit" -l"FBSDKLoginKit" -l"FBSDKShareKit" -l"NSDataAES" -l"NSDate_Utils" -l"NSString-Helper" -l"PEAR-FileManager-iOS" -l"PNObject" -l"PureLayout" -l"RZDataBinding" -l"StrongestPasswordValidator" -l"UIDevice-Utils" -l"nv-ios-http-status" -framework "CoreGraphics" -framework "FBSDKMarketingKit" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit" -weak_framework "WebKit"
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKPlacesKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/Specta" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/CodFis-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/DDDKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKLoginKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKPlacesKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKShareKit" "${PODS_CONFIGURATION_BUILD_DIR}/NSDataAES" "${PODS_CONFIGURATION_BUILD_DIR}/NSDate_Utils" "${PODS_CONFIGURATION_BUILD_DIR}/NSString-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/PEAR-FileManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PNObject" "${PODS_CONFIGURATION_BUILD_DIR}/PureLayout" "${PODS_CONFIGURATION_BUILD_DIR}/RZDataBinding" "${PODS_CONFIGURATION_BUILD_DIR}/StrongestPasswordValidator" "${PODS_CONFIGURATION_BUILD_DIR}/UIDevice-Utils" "${PODS_CONFIGURATION_BUILD_DIR}/nv-ios-http-status"
OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"Bolts" -l"CodFis-Helper" -l"DDDKeychainWrapper" -l"DJLocalization" -l"FBSDKCoreKit" -l"FBSDKLoginKit" -l"FBSDKPlacesKit" -l"FBSDKShareKit" -l"NSDataAES" -l"NSDate_Utils" -l"NSString-Helper" -l"PEAR-FileManager-iOS" -l"PNObject" -l"PureLayout" -l"RZDataBinding" -l"StrongestPasswordValidator" -l"UIDevice-Utils" -l"nv-ios-http-status" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

View File

@ -1,9 +1,8 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) $(PLATFORM_DIR)/Developer/Library/Frameworks "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_ROOT}/FBSDKMarketingKit"
FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/Specta" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Expecta" "${PODS_CONFIGURATION_BUILD_DIR}/Specta" "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/CodFis-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/DDDKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKLoginKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKShareKit" "${PODS_CONFIGURATION_BUILD_DIR}/NSDataAES" "${PODS_CONFIGURATION_BUILD_DIR}/NSDate_Utils" "${PODS_CONFIGURATION_BUILD_DIR}/NSString-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/PEAR-FileManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PNObject" "${PODS_CONFIGURATION_BUILD_DIR}/PureLayout" "${PODS_CONFIGURATION_BUILD_DIR}/RZDataBinding" "${PODS_CONFIGURATION_BUILD_DIR}/StrongestPasswordValidator" "${PODS_CONFIGURATION_BUILD_DIR}/UIDevice-Utils" "${PODS_CONFIGURATION_BUILD_DIR}/nv-ios-http-status"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/Bolts" -isystem "${PODS_ROOT}/Headers/Public/CodFis-Helper" -isystem "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" -isystem "${PODS_ROOT}/Headers/Public/DJLocalization" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKShareKit" -isystem "${PODS_ROOT}/Headers/Public/NSDataAES" -isystem "${PODS_ROOT}/Headers/Public/NSDate_Utils" -isystem "${PODS_ROOT}/Headers/Public/NSString-Helper" -isystem "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" -isystem "${PODS_ROOT}/Headers/Public/PNObject" -isystem "${PODS_ROOT}/Headers/Public/PureLayout" -isystem "${PODS_ROOT}/Headers/Public/RZDataBinding" -isystem "${PODS_ROOT}/Headers/Public/Specta" -isystem "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" -isystem "${PODS_ROOT}/Headers/Public/UIDevice-Utils" -isystem "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
OTHER_LDFLAGS = $(inherited) -ObjC -l"Expecta" -l"Specta" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "XCTest" -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit" -weak_framework "WebKit"
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKPlacesKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/Specta" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Expecta" "${PODS_CONFIGURATION_BUILD_DIR}/Specta"
OTHER_LDFLAGS = $(inherited) -ObjC -l"Expecta" -l"Specta" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "XCTest"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

View File

@ -1,9 +1,8 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) $(PLATFORM_DIR)/Developer/Library/Frameworks "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_ROOT}/FBSDKMarketingKit"
FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/Specta" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Expecta" "${PODS_CONFIGURATION_BUILD_DIR}/Specta" "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/Bolts" "${PODS_CONFIGURATION_BUILD_DIR}/CodFis-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/DDDKeychainWrapper" "${PODS_CONFIGURATION_BUILD_DIR}/DJLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKCoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKLoginKit" "${PODS_CONFIGURATION_BUILD_DIR}/FBSDKShareKit" "${PODS_CONFIGURATION_BUILD_DIR}/NSDataAES" "${PODS_CONFIGURATION_BUILD_DIR}/NSDate_Utils" "${PODS_CONFIGURATION_BUILD_DIR}/NSString-Helper" "${PODS_CONFIGURATION_BUILD_DIR}/PEAR-FileManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PNObject" "${PODS_CONFIGURATION_BUILD_DIR}/PureLayout" "${PODS_CONFIGURATION_BUILD_DIR}/RZDataBinding" "${PODS_CONFIGURATION_BUILD_DIR}/StrongestPasswordValidator" "${PODS_CONFIGURATION_BUILD_DIR}/UIDevice-Utils" "${PODS_CONFIGURATION_BUILD_DIR}/nv-ios-http-status"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/Bolts" -isystem "${PODS_ROOT}/Headers/Public/CodFis-Helper" -isystem "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" -isystem "${PODS_ROOT}/Headers/Public/DJLocalization" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKMarketingKit" -isystem "${PODS_ROOT}/Headers/Public/FBSDKShareKit" -isystem "${PODS_ROOT}/Headers/Public/NSDataAES" -isystem "${PODS_ROOT}/Headers/Public/NSDate_Utils" -isystem "${PODS_ROOT}/Headers/Public/NSString-Helper" -isystem "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" -isystem "${PODS_ROOT}/Headers/Public/PNObject" -isystem "${PODS_ROOT}/Headers/Public/PureLayout" -isystem "${PODS_ROOT}/Headers/Public/RZDataBinding" -isystem "${PODS_ROOT}/Headers/Public/Specta" -isystem "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" -isystem "${PODS_ROOT}/Headers/Public/UIDevice-Utils" -isystem "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
OTHER_LDFLAGS = $(inherited) -ObjC -l"Expecta" -l"Specta" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "XCTest" -weak_framework "Accounts" -weak_framework "AudioToolbox" -weak_framework "CoreGraphics" -weak_framework "CoreLocation" -weak_framework "Foundation" -weak_framework "QuartzCore" -weak_framework "Security" -weak_framework "Social" -weak_framework "UIKit" -weak_framework "WebKit"
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/Bolts" "${PODS_ROOT}/Headers/Public/CodFis-Helper" "${PODS_ROOT}/Headers/Public/DDDKeychainWrapper" "${PODS_ROOT}/Headers/Public/DJLocalization" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/FBSDKCoreKit" "${PODS_ROOT}/Headers/Public/FBSDKLoginKit" "${PODS_ROOT}/Headers/Public/FBSDKPlacesKit" "${PODS_ROOT}/Headers/Public/FBSDKShareKit" "${PODS_ROOT}/Headers/Public/NSDataAES" "${PODS_ROOT}/Headers/Public/NSDate_Utils" "${PODS_ROOT}/Headers/Public/NSString-Helper" "${PODS_ROOT}/Headers/Public/PEAR-FileManager-iOS" "${PODS_ROOT}/Headers/Public/PNObject" "${PODS_ROOT}/Headers/Public/PureLayout" "${PODS_ROOT}/Headers/Public/RZDataBinding" "${PODS_ROOT}/Headers/Public/Specta" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public/UIDevice-Utils" "${PODS_ROOT}/Headers/Public/nv-ios-http-status"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Expecta" "${PODS_CONFIGURATION_BUILD_DIR}/Specta"
OTHER_LDFLAGS = $(inherited) -ObjC -l"Expecta" -l"Specta" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "XCTest"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

View File

@ -1,9 +1,8 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Specta
ENABLE_BITCODE = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Specta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Specta"
OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -1,7 +1,6 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/StrongestPasswordValidator
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/StrongestPasswordValidator" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/StrongestPasswordValidator"
OTHER_LDFLAGS = -framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View File

@ -8,7 +8,7 @@
Pod::Spec.new do |s|
s.name = 'PNObject'
s.version = '2.6.3'
s.version = '2.6.4'
s.summary = 'PNObject is a simple replica of the more complex ParseObject'
@ -37,9 +37,10 @@ s.dependency 'nv-ios-http-status'
s.dependency 'NSString-Helper'
s.dependency 'CodFis-Helper'
s.dependency 'StrongestPasswordValidator'
s.dependency 'FacebookSDK'
s.dependency 'FBSDKCoreKit'
s.dependency 'FBSDKLoginKit'
s.dependency 'FBSDKShareKit'
s.dependency 'FBSDKPlacesKit'
s.dependency 'NSDataAES'
s.dependency 'DDDKeychainWrapper'
s.dependency 'DJLocalization'