lpw
2021-01-26 49b8839fda3439edc31581527e84036e58f55f0f
commit | author | age
bad748 1 // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
W 2 //
3 // You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4 // copy, modify, and distribute this software in source code or binary form for use
5 // in connection with the web services and APIs provided by Facebook.
6 //
7 // As with any software that integrates with the Facebook platform, your use of
8 // this software is subject to the Facebook Developer Principles and Policies
9 // [http://developers.facebook.com/policy/]. This copyright notice shall be
10 // included in all copies or substantial portions of the software.
11 //
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15 // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16 // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
19 #import <UIKit/UIKit.h>
20
e81c27 21 NS_ASSUME_NONNULL_BEGIN
H 22
bad748 23 /*
W 24  * Constants defining logging behavior.  Use with <[FBSDKSettings setLoggingBehavior]>.
25  */
26
e81c27 27 /// typedef for FBSDKAppEventName
H 28 typedef NSString *const FBSDKLoggingBehavior NS_TYPED_EXTENSIBLE_ENUM NS_SWIFT_NAME(LoggingBehavior);
29
9febd9 30 /** Include access token in logging. */
e81c27 31 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorAccessTokens;
bad748 32
9febd9 33 /** Log performance characteristics */
e81c27 34 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorPerformanceCharacteristics;
bad748 35
9febd9 36 /** Log FBSDKAppEvents interactions */
e81c27 37 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorAppEvents;
bad748 38
9febd9 39 /** Log Informational occurrences */
e81c27 40 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorInformational;
bad748 41
9febd9 42 /** Log cache errors. */
e81c27 43 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorCacheErrors;
bad748 44
9febd9 45 /** Log errors from SDK UI controls */
e81c27 46 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorUIControlErrors;
bad748 47
9febd9 48 /** Log debug warnings from API response, i.e. when friends fields requested, but user_friends permission isn't granted. */
e81c27 49 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorGraphAPIDebugWarning;
bad748 50
9febd9 51 /** Log warnings from API response, i.e. when requested feature will be deprecated in next version of API.
bad748 52  Info is the lowest level of severity, using it will result in logging all previously mentioned levels.
W 53  */
e81c27 54 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorGraphAPIDebugInfo;
bad748 55
9febd9 56 /** Log errors from SDK network requests */
e81c27 57 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorNetworkRequests;
bad748 58
9febd9 59 /** Log errors likely to be preventable by the developer. This is in the default set of enabled logging behaviors. */
e81c27 60 FOUNDATION_EXPORT FBSDKLoggingBehavior FBSDKLoggingBehaviorDeveloperErrors;
bad748 61
e81c27 62 NS_SWIFT_NAME(Settings)
bad748 63 @interface FBSDKSettings : NSObject
13e53a 64
H 65 - (instancetype)init NS_UNAVAILABLE;
66 + (instancetype)new NS_UNAVAILABLE;
bad748 67
9febd9 68 /**
e81c27 69  Retrieve the current iOS SDK version.
bad748 70  */
e81c27 71 @property (class, nonatomic, copy, readonly) NSString *sdkVersion;
bad748 72
9febd9 73 /**
e81c27 74  Retrieve the current default Graph API version.
bad748 75  */
e81c27 76 @property (class, nonatomic, copy, readonly) NSString *defaultGraphAPIVersion;
bad748 77
9febd9 78 /**
e81c27 79  The quality of JPEG images sent to Facebook from the SDK,
H 80  expressed as a value from 0.0 to 1.0.
9febd9 81
W 82  If not explicitly set, the default is 0.9.
83
13e53a 84  @see [UIImageJPEGRepresentation](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/#//apple_ref/c/func/UIImageJPEGRepresentation) */
e81c27 85 @property (class, nonatomic, assign) CGFloat JPEGCompressionQuality
H 86 NS_SWIFT_NAME(jpegCompressionQuality);
bad748 87
9febd9 88 /**
e81c27 89  Controls sdk auto initailization.
H 90  If not explicitly set, the default is true
37c026 91  */
49b883 92 @property (class, nonatomic, assign, getter=isAutoInitEnabled) BOOL autoInitEnabled
L 93 DEPRECATED_MSG_ATTRIBUTE("Auto-initialization will be removed in the next major version release.");
88188e 94
L 95 /**
e81c27 96  Controls the auto logging of basic app events, such as activateApp and deactivateApp.
H 97  If not explicitly set, the default is true
37c026 98  */
e81c27 99 @property (class, nonatomic, assign, getter=isAutoLogAppEventsEnabled) BOOL autoLogAppEventsEnabled;
37c026 100
H 101 /**
e81c27 102  Controls the fb_codeless_debug logging event
H 103  If not explicitly set, the default is true
9f077b 104  */
e81c27 105 @property (class, nonatomic, assign, getter=isCodelessDebugLogEnabled) BOOL codelessDebugLogEnabled;
9f077b 106
H 107 /**
49b883 108  Controls the access to IDFA
e81c27 109  If not explicitly set, the default is true
9f077b 110  */
e81c27 111 @property (class, nonatomic, assign, getter=isAdvertiserIDCollectionEnabled) BOOL advertiserIDCollectionEnabled;
13e53a 112
H 113 /**
e81c27 114  Whether data such as that generated through FBSDKAppEvents and sent to Facebook
H 115  should be restricted from being used for other than analytics and conversions.
116  Defaults to NO. This value is stored on the device and persists across app launches.
13e53a 117  */
e81c27 118 @property (class, nonatomic, assign, getter=shouldLimitEventAndDataUsage) BOOL limitEventAndDataUsage;
13e53a 119
H 120 /**
e81c27 121  A convenient way to toggle error recovery for all FBSDKGraphRequest instances created after this is set.
13e53a 122  */
e81c27 123 @property (class, nonatomic, assign, getter=isGraphErrorRecoveryEnabled) BOOL graphErrorRecoveryEnabled;
9f077b 124
H 125 /**
e81c27 126   The Facebook App ID used by the SDK.
H 127
128  If not explicitly set, the default will be read from the application's plist (FacebookAppID).
bad748 129  */
49b883 130 @property (class, nonatomic, copy, nullable) NSString *appID;
bad748 131
9febd9 132 /**
e81c27 133   The default url scheme suffix used for sessions.
bad748 134
e81c27 135  If not explicitly set, the default will be read from the application's plist (FacebookUrlSchemeSuffix).
bad748 136  */
49b883 137 @property (class, nonatomic, copy, nullable) NSString *appURLSchemeSuffix;
bad748 138
9febd9 139 /**
e81c27 140   The Client Token that has been set via [FBSDKSettings setClientToken].
H 141  This is needed for certain API calls when made anonymously, without a user-based access token.
142
143  The Facebook App's "client token", which, for a given appid can be found in the Security
144  section of the Advanced tab of the Facebook App settings found at <https://developers.facebook.com/apps/[your-app-id]>
145
146  If not explicitly set, the default will be read from the application's plist (FacebookClientToken).
bad748 147  */
49b883 148 @property (class, nonatomic, copy, nullable) NSString *clientToken;
bad748 149
9febd9 150 /**
e81c27 151   The Facebook Display Name used by the SDK.
H 152
153  This should match the Display Name that has been set for the app with the corresponding Facebook App ID,
154  in the Facebook App Dashboard.
155
156  If not explicitly set, the default will be read from the application's plist (FacebookDisplayName).
bad748 157  */
49b883 158 @property (class, nonatomic, copy, nullable) NSString *displayName;
bad748 159
9febd9 160 /**
e81c27 161  The Facebook domain part. This can be used to change the Facebook domain
H 162  (e.g. @"beta") so that requests will be sent to `graph.beta.facebook.com`
bad748 163
e81c27 164  If not explicitly set, the default will be read from the application's plist (FacebookDomainPart).
H 165  */
49b883 166 @property (class, nonatomic, copy, nullable) NSString *facebookDomainPart;
bad748 167
e81c27 168 /**
H 169   The current Facebook SDK logging behavior. This should consist of strings
170  defined as constants with FBSDKLoggingBehavior*.
171
172  This should consist a set of strings indicating what information should be logged
173  defined as constants with FBSDKLoggingBehavior*. Set to an empty set in order to disable all logging.
9febd9 174
W 175  You can also define this via an array in your app plist with key "FacebookLoggingBehavior" or add and remove individual values via enableLoggingBehavior: or disableLogginBehavior:
e81c27 176
H 177  The default is a set consisting of FBSDKLoggingBehaviorDeveloperErrors
bad748 178  */
e81c27 179 @property (class, nonatomic, copy) NSSet<FBSDKLoggingBehavior> *loggingBehaviors
H 180 NS_REFINED_FOR_SWIFT;
bad748 181
9febd9 182 /**
W 183   Overrides the default Graph API version to use with `FBSDKGraphRequests`. This overrides `FBSDK_TARGET_PLATFORM_VERSION`.
184
185  The string should be of the form `@"v2.7"`.
e81c27 186
H 187  Defaults to `FBSDK_TARGET_PLATFORM_VERSION`.
9febd9 188 */
e81c27 189 @property (class, nonatomic, copy, null_resettable) NSString *graphAPIVersion;
9febd9 190
W 191 /**
49b883 192  The value of the flag advertiser_tracking_enabled that controls the advertiser tracking status of the data sent to Facebook
L 193  If not explicitly set in iOS14 or above, the default is false in iOS14 or above.
194  */
195 + (BOOL)isAdvertiserTrackingEnabled;
196
197 /**
198 Set the advertiser_tracking_enabled flag. It only works in iOS14 and above.
199  
200 @param advertiserTrackingEnabled the value of the flag
201 @return Whether the the value is set successfully. It will always return NO in iOS 13 and below.
202  */
203 + (BOOL)setAdvertiserTrackingEnabled:(BOOL)advertiserTrackingEnabled;
204
205 /**
206 Set the data processing options.
207
208 @param options list of options
209 */
210 + (void)setDataProcessingOptions:(nullable NSArray<NSString *> *)options;
211
212 /**
213 Set the data processing options.
214
215 @param options list of the options
216 @param country code of the country
217 @param state code of the state
218 */
219 + (void)setDataProcessingOptions:(nullable NSArray<NSString *> *)options
220                          country:(int)country
221                            state:(int)state;
222
223 /**
e81c27 224  Enable a particular Facebook SDK logging behavior.
H 225
226  @param loggingBehavior The LoggingBehavior to enable. This should be a string defined as a constant with FBSDKLoggingBehavior*.
227  */
228 + (void)enableLoggingBehavior:(FBSDKLoggingBehavior)loggingBehavior;
229
230 /**
231  Disable a particular Facebook SDK logging behavior.
232
233  @param loggingBehavior The LoggingBehavior to disable. This should be a string defined as a constant with FBSDKLoggingBehavior*.
234  */
235 + (void)disableLoggingBehavior:(FBSDKLoggingBehavior)loggingBehavior;
9febd9 236
bad748 237 @end
e81c27 238
H 239 NS_ASSUME_NONNULL_END