lpw
2022-02-15 2e29a3a585524a054640bb6e7bdf26fe77ba1f17
commit | author | age
2e29a3 1 /*
L 2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  * All rights reserved.
4  *
5  * This source code is licensed under the license found in the
6  * LICENSE file in the root directory of this source tree.
7  */
8
9 #import <UIKit/UIKit.h>
10
11 #import <FBSDKCoreKit/FBSDKLoggingBehavior.h>
12 #import <FBSDKCoreKit/FBSDKSettingsLogging.h>
13 #import <FBSDKCoreKit/FBSDKSettingsProtocol.h>
14
15 NS_ASSUME_NONNULL_BEGIN
16
17 NS_SWIFT_NAME(Settings)
18 @interface FBSDKSettings : NSObject <FBSDKSettings, FBSDKSettingsLogging>
19
20 #if !FBTEST
21 - (instancetype)init NS_UNAVAILABLE;
22 + (instancetype)new NS_UNAVAILABLE;
23 #endif
24
25 /**
26  The shared settings instance. Prefer this and the exposed instance methods over the class variants.
27  */
28 @property (class, nonatomic, readonly) FBSDKSettings *sharedSettings;
29
30 /**
31  Retrieve the current iOS SDK version.
32  */
33 @property (nonatomic, readonly, copy) NSString *sdkVersion;
34
35 /**
36  Retrieve the current iOS SDK version.
37  */
38 @property (class, nonatomic, readonly, copy) NSString *sdkVersion
39   DEPRECATED_MSG_ATTRIBUTE("`Settings.sdkVersion` is deprecated and will be removed in the next major release, please use `Settings.shared.sdkVersion` instead");
40
41 /**
42  Retrieve the current default Graph API version.
43  */
44 @property (class, nonatomic, readonly, copy) NSString *defaultGraphAPIVersion
45   DEPRECATED_MSG_ATTRIBUTE("`Settings.defaultGraphAPIVersion` is deprecated and will be removed in the next major release, please use `Settings.shared.defaultGraphAPIVersion` instead");
46
47 /**
48  Retrieve the current default Graph API version.
49  */
50 @property (nonatomic, readonly, copy) NSString *defaultGraphAPIVersion;
51
52 /**
53  The quality of JPEG images sent to Facebook from the SDK,
54  expressed as a value from 0.0 to 1.0.
55
56  If not explicitly set, the default is 0.9.
57
58  @see [UIImageJPEGRepresentation](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/#//apple_ref/c/func/UIImageJPEGRepresentation) */
59 @property (class, nonatomic) CGFloat JPEGCompressionQuality
60 NS_SWIFT_NAME(jpegCompressionQuality)
61 DEPRECATED_MSG_ATTRIBUTE("`Settings.JPEGCompressionQuality` is deprecated and will be removed in the next major release, please use `Settings.shared.JPEGCompressionQuality` instead");
62
63 /**
64  The quality of JPEG images sent to Facebook from the SDK,
65  expressed as a value from 0.0 to 1.0.
66
67  If not explicitly set, the default is 0.9.
68
69  @see [UIImageJPEGRepresentation](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/#//apple_ref/c/func/UIImageJPEGRepresentation) */
70 @property (nonatomic) CGFloat JPEGCompressionQuality
71 NS_SWIFT_NAME(jpegCompressionQuality);
72
73 /**
74  Controls the auto logging of basic app events, such as activateApp and deactivateApp.
75  If not explicitly set, the default is true
76  */
77 @property (class, nonatomic, getter = isAutoLogAppEventsEnabled) BOOL autoLogAppEventsEnabled
78   DEPRECATED_MSG_ATTRIBUTE("`Settings.isAutoLogAppEventsEnabled` is deprecated and will be removed in the next major release, please use `Settings.shared.isAutoLogAppEventsEnabled` instead");
79
80 /**
81  Controls the auto logging of basic app events, such as activateApp and deactivateApp.
82  If not explicitly set, the default is true
83  */
84 @property (nonatomic, getter = isAutoLogAppEventsEnabled) BOOL autoLogAppEventsEnabled;
85
86 /**
87  Controls the fb_codeless_debug logging event
88  If not explicitly set, the default is true
89  */
90 @property (class, nonatomic, getter = isCodelessDebugLogEnabled) BOOL codelessDebugLogEnabled
91   DEPRECATED_MSG_ATTRIBUTE("`Settings.isCodelessDebugLogEnabled` is deprecated and will be removed in the next major release, please use `Settings.shared.isCodelessDebugLogEnabled` instead");
92
93 /**
94  Controls the fb_codeless_debug logging event
95  If not explicitly set, the default is true
96  */
97 @property (nonatomic, getter = isCodelessDebugLogEnabled) BOOL codelessDebugLogEnabled;
98
99 /**
100  Controls the access to IDFA
101  If not explicitly set, the default is true
102  */
103 @property (class, nonatomic, getter = isAdvertiserIDCollectionEnabled) BOOL advertiserIDCollectionEnabled
104   DEPRECATED_MSG_ATTRIBUTE("`Settings.isAdvertiserIDCollectionEnabled` is deprecated and will be removed in the next major release, please use `Settings.shared.isAdvertiserIDCollectionEnabled` instead");
105
106 /**
107  Controls the access to IDFA
108  If not explicitly set, the default is true
109  */
110 @property (nonatomic, getter = isAdvertiserIDCollectionEnabled) BOOL advertiserIDCollectionEnabled;
111
112 /**
113  Controls the SKAdNetwork report
114  If not explicitly set, the default is true
115  */
116 @property (class, nonatomic, getter = isSKAdNetworkReportEnabled) BOOL SKAdNetworkReportEnabled
117   DEPRECATED_MSG_ATTRIBUTE("`Settings.isSKAdNetworkReportEnabled` is deprecated and will be removed in the next major release, please use `Settings.shared.isSKAdNetworkReportEnabled` instead");
118
119 /**
120  Controls the SKAdNetwork report
121  If not explicitly set, the default is true
122  */
123 @property (nonatomic, getter = isSKAdNetworkReportEnabled) BOOL skAdNetworkReportEnabled;
124
125 /**
126  Whether data such as that generated through FBSDKAppEvents and sent to Facebook
127  should be restricted from being used for other than analytics and conversions.
128  Defaults to NO. This value is stored on the device and persists across app launches.
129  */
130 @property (class, nonatomic, getter = shouldLimitEventAndDataUsage) BOOL limitEventAndDataUsage
131   DEPRECATED_MSG_ATTRIBUTE("`Settings.shouldLimitEventAndDataUsage` is deprecated and will be removed in the next major release, please use `Settings.shared.isEventDataUsageLimited` instead");
132
133 /**
134  Whether data such as that generated through FBSDKAppEvents and sent to Facebook
135  should be restricted from being used for other than analytics and conversions.
136  Defaults to NO. This value is stored on the device and persists across app launches.
137  */
138 @property (nonatomic) BOOL isEventDataUsageLimited;
139
140 /**
141  Whether in memory cached values should be used for expensive metadata fields, such as
142  carrier and advertiser ID, that are fetched on many applicationDidBecomeActive notifications.
143  Defaults to NO. This value is stored on the device and persists across app launches.
144  */
145 @property (class, nonatomic, getter = shouldUseCachedValuesForExpensiveMetadata) BOOL shouldUseCachedValuesForExpensiveMetadata
146   DEPRECATED_MSG_ATTRIBUTE("`Settings.shouldUseCachedValuesForExpensiveMetadata` is deprecated and will be removed in the next major release, please use `Settings.shared.shouldUseCachedValuesForExpensiveMetadata` instead");
147
148 /**
149  Whether in memory cached values should be used for expensive metadata fields, such as
150  carrier and advertiser ID, that are fetched on many applicationDidBecomeActive notifications.
151  Defaults to NO. This value is stored on the device and persists across app launches.
152  */
153 @property (nonatomic) BOOL shouldUseCachedValuesForExpensiveMetadata;
154
155 /**
156  A convenient way to toggle error recovery for all FBSDKGraphRequest instances created after this is set.
157  */
158 @property (class, nonatomic, getter = isGraphErrorRecoveryEnabled) BOOL graphErrorRecoveryEnabled
159   DEPRECATED_MSG_ATTRIBUTE("`Settings.isGraphErrorRecoveryEnabled` is deprecated and will be removed in the next major release, please use `Settings.shared.isGraphErrorRecoveryEnabled` instead");
160
161 /**
162  A convenient way to toggle error recovery for all FBSDKGraphRequest instances created after this is set.
163  */
164 @property (nonatomic) BOOL isGraphErrorRecoveryEnabled;
165
166 /**
167   The Facebook App ID used by the SDK.
168
169  If not explicitly set, the default will be read from the application's plist (FacebookAppID).
170  */
171 @property (nullable, nonatomic, copy) NSString *appID;
172
173 /**
174   The Facebook App ID used by the SDK.
175
176  If not explicitly set, the default will be read from the application's plist (FacebookAppID).
177  */
178 @property (class, nullable, nonatomic, copy) NSString *appID
179   DEPRECATED_MSG_ATTRIBUTE("`Settings.appID` is deprecated and will be removed in the next major release, please use `Settings.shared.appID` instead");
180
181 /**
182   The default url scheme suffix used for sessions.
183
184  If not explicitly set, the default will be read from the application's plist (FacebookUrlSchemeSuffix).
185  */
186 @property (class, nullable, nonatomic, copy) NSString *appURLSchemeSuffix
187   DEPRECATED_MSG_ATTRIBUTE("`Settings.appURLSchemeSuffix` is deprecated and will be removed in the next major release, please use `Settings.shared.appURLSchemeSuffix` instead");
188
189 /**
190   The default url scheme suffix used for sessions.
191
192  If not explicitly set, the default will be read from the application's plist (FacebookUrlSchemeSuffix).
193  */
194 @property (nullable, nonatomic, copy) NSString *appURLSchemeSuffix;
195
196 /**
197   The Client Token that has been set via [[FBSDKSettings sharedSettings] setClientToken].
198  This is needed for certain API calls when made anonymously, without a user-based access token.
199
200  The Facebook App's "client token", which, for a given appid can be found in the Security
201  section of the Advanced tab of the Facebook App settings found at <https://developers.facebook.com/apps/[your-app-id]>
202
203  If not explicitly set, the default will be read from the application's plist (FacebookClientToken).
204  */
205 @property (nullable, nonatomic, copy) NSString *clientToken;
206
207 /**
208   The Client Token that has been set via [[FBSDKSettings sharedSettings] setClientToken].
209  This is needed for certain API calls when made anonymously, without a user-based access token.
210
211  The Facebook App's "client token", which, for a given appid can be found in the Security
212  section of the Advanced tab of the Facebook App settings found at <https://developers.facebook.com/apps/[your-app-id]>
213
214  If not explicitly set, the default will be read from the application's plist (FacebookClientToken).
215  */
216 @property (class, nullable, nonatomic, copy) NSString *clientToken
217   DEPRECATED_MSG_ATTRIBUTE("`Settings.clientToken` is deprecated and will be removed in the next major release, please use `Settings.shared.clientToken` instead");
218
219 /**
220   The Facebook Display Name used by the SDK.
221
222  This should match the Display Name that has been set for the app with the corresponding Facebook App ID,
223  in the Facebook App Dashboard.
224
225  If not explicitly set, the default will be read from the application's plist (FacebookDisplayName).
226  */
227 @property (class, nullable, nonatomic, copy) NSString *displayName
228   DEPRECATED_MSG_ATTRIBUTE("`Settings.displayName` is deprecated and will be removed in the next major release, please use `Settings.shared.displayName` instead");
229
230 /**
231   The Facebook Display Name used by the SDK.
232
233  This should match the Display Name that has been set for the app with the corresponding Facebook App ID,
234  in the Facebook App Dashboard.
235
236  If not explicitly set, the default will be read from the application's plist (FacebookDisplayName).
237  */
238 @property (nullable, nonatomic, copy) NSString *displayName;
239
240 /**
241  The Facebook domain part. This can be used to change the Facebook domain
242  (e.g. @"beta") so that requests will be sent to `graph.beta.facebook.com`
243
244  If not explicitly set, the default will be read from the application's plist (FacebookDomainPart).
245  */
246 @property (class, nullable, nonatomic, copy) NSString *facebookDomainPart
247   DEPRECATED_MSG_ATTRIBUTE("`Settings.facebookDomainPart` is deprecated and will be removed in the next major release, please use `Settings.shared.facebookDomainPart` instead");
248
249 /**
250  The Facebook domain part. This can be used to change the Facebook domain
251  (e.g. @"beta") so that requests will be sent to `graph.beta.facebook.com`
252
253  If not explicitly set, the default will be read from the application's plist (FacebookDomainPart).
254  */
255 @property (nullable, nonatomic, copy) NSString *facebookDomainPart;
256
257 /**
258   The current Facebook SDK logging behavior. This should consist of strings
259  defined as constants with FBSDKLoggingBehavior*.
260
261  This should consist a set of strings indicating what information should be logged
262  defined as constants with FBSDKLoggingBehavior*. Set to an empty set in order to disable all logging.
263
264  You can also define this via an array in your app plist with key "FacebookLoggingBehavior" or add and remove individual values via enableLoggingBehavior: or disableLoggingBehavior:
265
266  The default is a set consisting of FBSDKLoggingBehaviorDeveloperErrors
267  */
268 @property (class, nonatomic, copy) NSSet<FBSDKLoggingBehavior> *loggingBehaviors
269   DEPRECATED_MSG_ATTRIBUTE("`Settings.loggingBehaviors` is deprecated and will be removed in the next major release, please use `Settings.shared.loggingBehaviors` instead");
270
271 /**
272   The current Facebook SDK logging behavior. This should consist of strings
273  defined as constants with FBSDKLoggingBehavior*.
274
275  This should consist a set of strings indicating what information should be logged
276  defined as constants with FBSDKLoggingBehavior*. Set to an empty set in order to disable all logging.
277
278  You can also define this via an array in your app plist with key "FacebookLoggingBehavior" or add and remove individual values via enableLoggingBehavior: or disableLoggingBehavior:
279
280  The default is a set consisting of FBSDKLoggingBehaviorDeveloperErrors
281  */
282 @property (nonatomic, copy) NSSet<FBSDKLoggingBehavior> *loggingBehaviors;
283
284 /**
285   Overrides the default Graph API version to use with `FBSDKGraphRequests`.
286
287  The string should be of the form `@"v2.7"`.
288
289  Defaults to `defaultGraphAPIVersion`.
290 */
291 @property (class, null_resettable, nonatomic, copy) NSString *graphAPIVersion
292   DEPRECATED_MSG_ATTRIBUTE("`Settings.graphAPIVersion` is deprecated and will be removed in the next major release, please use the `Settings.shared.graphAPIVersion` property instead");
293
294 /**
295   Overrides the default Graph API version to use with `FBSDKGraphRequests`.
296
297  The string should be of the form `@"v2.7"`.
298
299  Defaults to `defaultGraphAPIVersion`.
300 */
301 @property (nonatomic, copy) NSString *graphAPIVersion;
302
303 /**
304  Internal property exposed to facilitate transition to Swift.
305  API Subject to change or removal without warning. Do not use.
306
307  @warning INTERNAL - DO NOT USE
308  */
309 @property (nullable, nonatomic, copy) NSString *userAgentSuffix;
310
311 /**
312  The value of the flag advertiser_tracking_enabled that controls the advertiser tracking status of the data sent to Facebook
313  If not explicitly set in iOS14 or above, the default is false in iOS14 or above.
314  */
315 @property (nonatomic, getter = isAdvertiserTrackingEnabled) BOOL advertiserTrackingEnabled;
316
317 /**
318  The value of the flag advertiser_tracking_enabled that controls the advertiser tracking status of the data sent to Facebook
319  If not explicitly set in iOS14 or above, the default is false in iOS14 or above.
320  */
321 + (BOOL)isAdvertiserTrackingEnabled
322     DEPRECATED_MSG_ATTRIBUTE("`Settings.isAdvertiserTrackingEnabled()` is deprecated and will be removed in the next major release, please use the `Settings.shared.isAdvertiserTrackingEnabled` property instead");
323
324 /**
325 Set the advertiser_tracking_enabled flag. It only works in iOS14 and above.
326
327 @param advertiserTrackingEnabled the value of the flag
328 @return Whether the the value is set successfully. It will always return NO in iOS 13 and below.
329  */
330 + (BOOL)setAdvertiserTrackingEnabled:(BOOL)advertiserTrackingEnabled
331     DEPRECATED_MSG_ATTRIBUTE("`Settings.setAdvertiserTrackingEnabled(_:)` is deprecated and will be removed in the next major release, please use the `Settings.shared.isAdvertiserTrackingEnabled` property to set a value instead");
332
333 /**
334 Set the data processing options.
335
336 @param options list of options
337 */
338 + (void)setDataProcessingOptions:(nullable NSArray<NSString *> *)options
339     DEPRECATED_MSG_ATTRIBUTE("`Settings.setDataProcessingOptions(_:)` is deprecated and will be removed in the next major release, please use the `Settings.shared.setDataProcessingOptions(_:)` method to set the data processing options instead");
340
341 /**
342 Set the data processing options.
343
344 @param options list of options
345 */
346 - (void)setDataProcessingOptions:(nullable NSArray<NSString *> *)options;
347
348 /**
349 Set the data processing options.
350
351 @param options list of the options
352 @param country code of the country
353 @param state code of the state
354 */
355 + (void)setDataProcessingOptions:(nullable NSArray<NSString *> *)options
356                          country:(int)country
357                            state:(int)state
358     DEPRECATED_MSG_ATTRIBUTE("`Settings.setDataProcessingOptions(_:_:_:)` is deprecated and will be removed in the next major release, please use the `Settings.shared.setDataProcessingOptions(_:_:_:)` method to set the data processing options instead");
359
360 /**
361 Set the data processing options.
362
363 @param options list of the options
364 @param country code of the country
365 @param state code of the state
366 */
367 - (void)setDataProcessingOptions:(nullable NSArray<NSString *> *)options
368                          country:(int)country
369                            state:(int)state;
370
371 /**
372  Enable a particular Facebook SDK logging behavior.
373
374  @param loggingBehavior The LoggingBehavior to enable. This should be a string defined as a constant with FBSDKLoggingBehavior*.
375  */
376 + (void)enableLoggingBehavior:(FBSDKLoggingBehavior)loggingBehavior
377     DEPRECATED_MSG_ATTRIBUTE("`Settings.enableLoggingBehavior()` is deprecated and will be removed in the next major release, please use `Settings.shared.enableLoggingBehavior()` instead");
378
379 /**
380  Enable a particular Facebook SDK logging behavior.
381
382  @param loggingBehavior The LoggingBehavior to enable. This should be a string defined as a constant with FBSDKLoggingBehavior*.
383  */
384 - (void)enableLoggingBehavior:(FBSDKLoggingBehavior)loggingBehavior;
385
386 /**
387  Disable a particular Facebook SDK logging behavior.
388
389  @param loggingBehavior The LoggingBehavior to disable. This should be a string defined as a constant with FBSDKLoggingBehavior*.
390  */
391 + (void)disableLoggingBehavior:(FBSDKLoggingBehavior)loggingBehavior
392     DEPRECATED_MSG_ATTRIBUTE("`Settings.disableLoggingBehavior()` is deprecated and will be removed in the next major release, please use `Settings.shared.disableLoggingBehavior()` instead");
393
394 /**
395  Disable a particular Facebook SDK logging behavior.
396
397  @param loggingBehavior The LoggingBehavior to disable. This should be a string defined as a constant with FBSDKLoggingBehavior*.
398  */
399 - (void)disableLoggingBehavior:(FBSDKLoggingBehavior)loggingBehavior;
400
401 @end
402
403 NS_ASSUME_NONNULL_END