Native iOS SDK Release Notes
Keep track of every change to the Native iOS SDK. This changelog lists all additions and updates to the Native iOS SDK, in chronological order.
DOWNLOAD RELEASES: Access to all releases including and after v8.3.0 are available on Big Fish's GitHub release repo.
8.11.0 (September 25, 2025)
- Update Appsflyer to v6.17.5
- Update RaveScenePack to v4.5.2
Upgrading to 8.11.0
AppsFlyer update
- Update AppsFlyerLib.xcframework from the project with the one from the SDK v8.11.0.
RaveScenePack update
- Update BigFishScenePack.xcframework and BigFishScenePack.bundle from the project with those from the SDK v8.11.0.
(Optional) Update bfg_config.json - No newsletter dialog on login
- Add
"BigFishSettings.UI.ShowNewsletterOptInPostLogin": false
to remove Newsletter opt-in dialog after login.
If the object BigFishSettings.UI.ShowNewsletterOptInPostLogin
is absent or set to true
, the post login Newsletter dialog will still be shown.
Implementation
"rave": {
"RaveSettings.General.ApplicationID": "64b93a17c8a34486a4c2598945935c98",
"BigFishSettings.UI.ShowNewsletterOptInPostLogin": false,
"RaveSettings.Facebook.ReadPermissions" : "public_profile,email,user_friends",
"RaveSettings.Facebook.LimitedLoginTracking" : false
}
8.10.2 (August 5, 2025)
Overview
-
Rave ScenePack Updated
Updated Rave iOS ScenePack to version v4.5.0. -
User Account Creation via SUSI Removed
The ability to create a new user account through SUSI has been removed. -
Default Timestamp CDN url in the SDK is changed to support https
- Old url:
http://cdn-f2p.bigfishgames.com
- New url:
https://cdn-f2p.bigfishgames.com
- Old url:
Deprecations
Remove any usage of:
BigFishSettings.General.NewsletterName
presentNewsletterSignup
presentNewsletterSignupWithOrigin
-
The newsletter opt-in options have been updated Rave to provide more flexibility.
-
New APIs has been introduced through the
BFGNewsletter
class. These APIs allow games to:- Check if the user has already been asked to opt in to the newsletter
- Show the newsletter opt-in dialog
-
It is the responsibility of game teams to be sure the user shared a valid email before showing the newsletter dialog.
-
It is the responsibility of game teams to handle the newsletter sign-up (e.g., using LeanPlum to register the user).
Note:
Since this feature is new,getNewsletterConsent
will returnUnknown
for all users, even those who may have previously accepted or declined a newsletter prompt in your own implementation. It is up to the game team to find the best solution.
Getting Newsletter Consent Status
To get the current newsletter consent state, call:
NewsletterConsentData *newsletterConsentData = [bfgNewsLetter getNewsletterConsent]
NewsletterConsentData structure
@property (nonatomic, assign) NewsletterConsentStatus status; // Selected newsletter status
@property (nonatomic, strong) NSString *timestamp; // Timestamp of the momente of status change
- (NSDictionary *)toJson {
...
return @{
@"status": statusString,
@"timestamp": self.timestamp ?: @"" //"yyyy-MM-dd'T'HH:mm:ss'Z'"
};
}
+ (nullable instancetype)fromJsonString:(NSString *)jsonString {
...
return [[self alloc] initWithStatus:status timestamp:timestamp];
}
typedef NS_ENUM(NSInteger, NewsletterConsentStatus) {
NewsletterConsentStatusUnknown = 0,
NewsletterConsentStatusConsented = 1,
NewsletterConsentStatusDenied = 2
};
Note:
If the user closes the dialog—either by clicking the "X" button or selecting "No, thanks"—the consent status will be set toDenied
.
Upgrading to 8.10.2
-
BigFishScenePack Update
Update
BigFishScenePack.xcframework
andBigFishScenePack.bundle
- Showing the Newsletter Dialog
There are two ways to show the newsletter consent screen:
-
Automatically after login:
If the user is logged out, the dialog will be shown after a successful login—provided that the users have shared their email. Only occurs for Facebook and Apple auth. -
Manually by the game team:
At any time (after initialization), the game team may trigger the dialog by calling:[bfgNewsLetter setResultCallback:^(BOOL optedIn) {
NSString *optedInString = optedIn ? @"true" : @"false";
NSLog(@"Newsletter flow is completed with optedIn: %@", optedInString);
}];
[bfgNewsLetter showNewsletterConsentScreen];
8.10.1 (July 17, 2025)
- BigFishScenePack is reverted to previous version to include Rave Newsletter and SUSI Signup flows.
-
The binaries for the release 8.10.0 have been removed and are no longer accessible. Please use only the binary provided with this hotfix, as it fully replaces the previous release.
-
The new Newsletter API introduced on 8.10.0 is not intended for use at this time. We recommend avoiding its use until further notice, as it may be updated or removed in a future release.
Upgrading to 8.10.1
BigFishScenePack Reversion
Update BigFishScenePack.xcframework and BigFishScenePack.bundle
8.10.0 (July 14, 2025)
- New user account creation through SUSI has been removed
- Newsletter opt-in flow is now supported by BFGSDK
Upgrading to 8.10.0
Newsletter opt-in flow
This flow is not intended for use at this time. We recommend avoiding its use until further notice, as it may be updated or removed in a future release.
-
The newsletter opt-in options has been removed from Rave, as it has been deprecated and not working for a long time.
-
A new set of newsletter APIs has been added via the new bfgNewsletter class. These APIs can be used to get whether the user has already been asked if they want to sign up for the newsletter, and then set whether the user accepted or declined the newsletter. Signing up for the newsletter and displaying a newsletter opt-in dialog is now the responsibility of game teams (for example, using LeanPlum to sign the user up for newsletters).
NOTE: Because this feature is new, getNewsletterConsent will return Unknown for all users, even if they have accepted or declined your newsletter implementation in the past.
Deprecations
- Remove any usage of
BigFishSettings.General.NewsletterName
setting. - Remove any usage of
presentNewsletterSignup
andpresentNewsletterSignupWithOrigin
APIs.
Implementation Notes
The definition of enum for NewsletterConsentStatus:
typedef NS_ENUM(NSInteger, NewsletterConsentStatus) {
NewsletterConsentStatusUnknown = 0,
NewsletterConsentStatusConsented = 1,
NewsletterConsentStatusDenied = 2
};
To set newsletter consent, please call this function with the appropriate parameter:
NewsletterConsentStatus status = NewsletterConsentStatusConsented;
BOOL success = [bfgNewsLetter saveNewsletterConsent:status];
To get newsletter consent status, please call this function:
NewsletterConsentStatus status = [bfgNewsLetter getNewsletterConsent];
BigFishScenePack Update for SUSI changes
Update BigFishScenePack.xcframework and BigFishScenePack.bundle
8.9.0 (May 29, 2025)
[AppsFlyer Update] - AppsFlyer is updated to version 6.15.0
Upgrading to v8.9.0
Appsflyer Update
[AppsFlyer Update] - Please update AppsFlyerLib.xcframework
8.8.2 (May 02, 2025)
- BigFishScenePack is updated to fix SUSI auth issue.
Upgrading to v8.8.2
BigFishScenePack Update
- Update BigFishScenePack.xcframework and BigFishScenePack.bundle
8.8.1 (March 31, 2025)
- Downgraded Firebase version to v10.24
- Reverted minimum iOS version to v12.
Upgrading to v8.8.1
Updating the XCFrameworks
To upgrade to v8.8.1, update the following XCFrameworks:
- FirebaseAnalytics:
FBLPromises.xcframework
,FirebaseAnalytics.xcframework
,FirebaseCore.xcframework
,FirebaseCoreInternal.xcframework
,FirebaseInstallations.xcframework
,GoogleAppMeasurement.xcframework
,GoogleAppMeasurementIdentitySupport.xcframework
,GoogleUtilities.xcframework
andnanopb.xcframework
. - FirebaseCrashlytics:
FirebaseCoreExtension.xcframework
,FirebaseCrashlytics.xcframework
,FirebaseSessions.xcframework
,Promises.xcframework
andThe executable file named run
. - FirebasePerformance:
FirebaseABTesting.xcframework
,FirebasePerformance.xcframework
,FirebaseRemoteConfig.xcframework
,FirebaseRemoteConfigInterop.xcframework
,FirebaseSharedSwift.xcframework
andGoogleDataTransport.xcframework
. - bfg_iOS_Crashlytics Update:
bfg_iOS_Crashlytics.xcframework
.
8.8.0 (February 27, 2025)
- Added Xcode 16.2 compatibility.
- Updated minimum iOS version to v13.
- Updated Rave to v4.3.3.
- Updated BigFishScenePack with Rave v4.3.3.
- Updated OpenSSL to v3.3.2000.
- Updated Firebase to v11.0
- Updated bfg_iOS_Crashlytics
Upgrading to v8.8.0
Updating the XCFrameworks and bundles
To upgrade to v8.8.0, update the following XCFrameworks and bundles:
- Rave: Replace
RaveSocial.xcframework
andRaveSocial.bundle
with the new version. - BigFishScenePack: Replace
BigFishScenePack.xcframework
andBigFishScenePack.bundle
with the new version.
Updating OpenSLL
OpenSLL code signature has changed, which will cause a build error.
To update OpenSSL replace openssl.xcframework
with the new version.
To resolve the build error:
- In Xcode, navigate to the Issues tab.
- Select the error that says
openssl.xcframework is not signed with the expected identify and may have been compromised
. - In the dialog that appears, click Accept Change.
For more information on about this build error, see Verifying the origin of your XCFrameworks ↗️.
Updating Firebase
To update Firebase, replace the following Firebase Frameworks with the new version:
- Replace Firebase header file
Firebase.h
. - Replace the following FirebaseAnalytics files:
FBLPromises.xcframework
FirebaseAnalytics.xcframework
FirebaseCore.xcframework
FirebaseCoreInternal.xcframework
FirebaseInstallations.xcframework
GoogleAppMeasurement.xcframework
GoogleAppMeasurementIdentitySupport.xcframework
GoogleUtilities.xcframework
nanopb.xcframework
- Replace the following FirebaseCrashlytics files:
FirebaseCoreExtension.xcframework
FirebaseCrashlytics.xcframework
FirebaseSessions.xcframework
Promises.xcframework
Executable
runfile
- Replace the following FirebasePerformance files:
FirebaseABTesting.xcframework
FirebasePerformance.xcframework
FirebaseRemoteConfig.xcframework
FirebaseRemoteConfigInterop.xcframework
FirebaseSharedSwift.xcframework
GoogleDataTransport.xcframework
8.7.1 (September 27, 2024)
When upgrading to v8.7.1, you are required to add the URL cdn-f2p.bigfishgames.com
to your Exception Domains in your info.plist
file.
- Replaced hardcoded Akamai URL with
cdn-f2p.bigfishgames.com
.
Upgrading to v8.7.1
Replacing the Akamai URL
To replace the Akamai URL:
- In your game's
Info.plist
file, locate the Exception Domains section. - Add
cdn-f2p.bigfishgames.com
to the list of exceptions.
The time stamp URL is now configurable in the config file, bfg_config.json
. Configuring the URL is optional; by default, it will use the recommended URLcdn-f2p.bigfishgames.com
.
When customizing your time stamp URL, ensure you:
- Add the current time in its response header with the
'Date'
key. - Add the time stamp URL to your exception domains list if it is not a secure URL. Secure URLs use the prefix
https
. - Add the following code into the config file,
bfg_config.json
with your custom URL value for the key"time_stamp_url"
:
"time_stamp": {
"time_stamp_url": "http://yourcustomtimestampurl.com"
}
8.7.0 (August 20, 2024)
The v8.7.0 has a critical bug that has been fixed in the v8.7.1 release. Do not upgrade to this version.
If you have already upgraded to v8.7.0, you are required to upgrade to v8.7.1.
- Updated OpenSLL to v3.1.5001.
- Updated WebP to v1.2.2.
- Added arm64 simulator architecture support for the Native iOS SDK.
- Updated BigFishScenePack to resolve an error in the Facebook login flow.
Upgrading to v8.7.0
Update BigFishScenePack
Replace the BigFishScenePack.xcframework with the new version.
Update OpenSSL
Replace the openssl.xcframework with the new version.
Update WebP
- In the Xcode Project, navigate to the App Target's General tab.
- Find the WebP.xcframework under Frameworks, Libraries, and Embedded Content.
- Select Do Not Embed from the dropdown on the right side.
8.6.1 (June 06, 2024)
- Updated BigFishScenePack to resolve an unexpected error.
- Updated Crashlytics to target iOS v12 and above.
Upgrading to v8.6.1
Update BigFishScenePack
- In the Xcode Project, navigate to the General tab for the App Target.
- Click the '+' under Frameworks, Libraries, and Embedded Content.
- Click Add Other, then Add Files and select the BigFishScenePack.xcframework and set it to Embed & Sign.
To update the BigFishScenePack.bundle, replace with the new version from the release.
Update Crashlytics
Replace the bfg_iOS_Crashlytics.xcframework with the new version.
8.6.0 (May 21, 2024)
- Added a custom MTS event and bfgLog message to report promoted in-app purchases.
- Updated Facebook SDK to v17.0.0.
- Updated Firebase SDK to v10.24.0.
- Updated RaveSocial SDK to v4.3.1.
- Updated BigFishScenePack with RaveSocial SDK v4.3.1.
- Deprecated the
-ld64
flag with Xcode 15,-ld_classic
should be used instead.
Upgrading to v8.6.0
Xcode 15 Flag Deprecation
If you have -ld64
flag in the Build Settings/Other Linker Flags of your application target, replace it with -ld_classic
.
Update RaveSocial SDK and BigFishScenePack
To update RaveSocial SDK and the BigFishScenePack, replace the following frameworks:
- RaveSocial.xcframework
- BigFishScenePack.xcframework
Additionally, replace the following bundles:
- RaceSocial.bundle
- BigFishScenePack.bundle
Update the Facebook SDK
Update each of the following Facebook frameworks:
- FBAEMKit.xcframework
- FBSDKCoreKit_Basics.xcframework
- FBSDKCoreKit.xcframework
- FBSDKLoginKit.xcframework
- FBSDKShareKit.xcframework
Additionally, add the FacebookClientToken
key to your Info.plist:
- In the Facebook App Dashboard, open Settings.
- Navigate to Advanced.
- Under the Client Token section, add the
FacebookClientToken
key.
Update the Firebase SDK
Update or add each of the following Firebase Frameworks:
- FirebaseAnalytics
- FBLPromises.xcframework
- FirebaseAnalytics.xcframework
- FirebaseCore.xcframework
- FirebaseCoreInternal.xcframework
- FirebaseInstallations.xcframework
- GoogleAppMeasurement.xcframework
- GoogleAppMeasurementIdentitySupport.xcframework
- GoogleUtilities.xcframework
- nanopb.xcframework
- FirebaseCrashlytics
- FirebaseCoreExtension.xcframework
- FirebaseCrashlytics.xcframework
- FirebaseSessions.xcframework
- Replace PromisesSwift.xcframework with Promises.xcframework
- Run the FirebaseCrashlytics executable file
- FirebasePerformance
- FirebaseABTesting.xcframework
- FirebasePerformance.xcframework
- FirebaseRemoteConfig.xcframework
- Add FirebaseRemoteConfigInterop.xcframework
- Add FirebaseSharedSwift.xcframework
- GoogleDataTransport.xcframework
In Xcode:
- Go to General tab.
- Under the Frameworks, Libraries, and Embedded Content section:
- Replace PromisesSwift.xcframework with Promises.xcframework.
- Add FirebaseRemoteConfigInterop.xcframework and FirebaseSharedSwift.xcframework.
- Navigate to the Build Settings tab.
- Add
$(SDKROOT)/usr/lib/swift
line to the Library Search Paths. - Move it to the first line in Library Search Paths.
- Add
8.5.0 (March 22, 2024)
- Added the Privacy Manifest file. For more information, refer to our Privacy Manifest documentation.
- Updated to Firebase v10.7.0.
- Updated Deployment Target and Minimum iOS to v12.
- Sample App: Added fatal and non-fatal crash buttons as examples for testing Crashlytics crash events.
- Removed deprecation warnings from
bfgGameReporting.logCustomEvent()
methods. These methods are still the preferred way of sending custom events.
Upgrading to v8.5.0
Update Firebase
Add Frameworks/ThirdParty/Firebase/Firebase.h and all libraries in the Firebase directory to your application bundle when linking bfg_iOS_Crashlytics
as static dependencies.
- Most games should omit
FirebaseAnalyticsSwift
and useFirebaseAnalytics
instead.FirebaseAnalyticsSwift
should be used for SwiftUI projects.
Linking these libraries in the app bundle is a new requirement as of this release, as they were previously encapsulated in bfg_iOS_Crashlytics.xcframework. This change is required due to the changes in Apple's build tools.
If your game doesn’t already contain Swift files, add an empty Swift file to your project and allow Xcode to generate a Bridging Header, as many of these new libraries contain Swift.
If your game uses SwiftUI views, link FirebaseAnalyticsSwift.xcframework
along with the other Firebase xcframeworks.
Support for iOS v12
These upgrade steps are not needed if your minimum iOS is v13 or higher.
An additional framework (SwiftUI) is required to support iOS v12, regardless of whether or not your app uses Swift UI views. To weakly link the SwiftUI framework:
- In the Xcode Project Navigator, select your project file (blue Xcode icon) at the topmost of the tree.
- In the editor that opens, ensure your app target is selected or the target you are using for SwiftUI.
- Select the Build Phases tab.
- Open the Link Binary With Libraries section.
- Click the + button under the list that appears.
- Type "SwiftUI" into the search field of the popup sheet.
- Select SwiftUI.framework and click Add.
- On the new row in the table, click the Required popup button in the last column.
- Change the value to "Optional".
8.4.1 (Feb 15, 2024)
- Fixed a bug in the Standalone Newsletter sign-up flow. It was not functioning correctly due to the removal of a UI element in the Rave SDK code.
- Fixed a bug where content was missing for non-US locales in email login.
8.4.0 (Jan 09, 2024)
- Updated to Zendesk v7.0 for chatbot support.
- Added Newsletter Opt-In checkbox for all localities and text updates for the checkbox and policies.
- Added alert for players when the internet isn’t available in Zendesk when requesting help articles or requests.
- Added helpful debug output for ‘failed to acquire product info’ error.
Upgrading to v8.4.0
Update Zendesk
Remove the existing Zendesk xcframeworks from your project and replace them with the frameworks found in /frameworks/ThirdParty/Zendesk/*. It's no longer necessary to strip architectures before submitting your game to the App Store.
Update iOS for Newsletter Opt-In
Update /Frameworks/ThirdParty/RaveSocial.xcframework and /Frameworks/Resources/BigFishScenePack.bundle.