Release notes

SmartFoxServer 2X
iOS/OSX/tvOS Objective-C API

Version 1.7.15 [Jul 20th, 2023]
[FIX] Under certain circumstances, cached User Variables are not synchronized correctly when a user that was already "seen" before, is met again in a different Room.

Version 1.7.14 [Dec 22nd, 2022]
[FIX] Corner-case issue when setting RoomVariables in an MMORoom with multiple joined Rooms.

Version 1.7.13 [Mar 25th, 2022]
[NEW] .xcframework for iOS API, supporting iOS and iOS+Catalyst apps.
[NEW] Added support for new QuickJoinOrCreateRoomRequest.

Version 1.7.12 [Oct 5th, 2021]
[FIX] Redesigned SFSErrorCodes class to support arbitrary custom errors, as supported in the other client APIs. The getErrorMessage and setErrorMessage static methods have been slightly changed, requiring an NSNumber in place of an NSInteger as the first argument. For more details on how to use the class please refer to the documentation here:

Version 1.7.11 [Feb 17th, 2020]
[FIX] MMORoom not receiving an update when a player disconnects, if the player is simultaneously joined one or more regular Room(s).
[FIX] Several reference cycles causing object leaks when creating and destroying the main API class multiple times.

Version 1.7.10 [Jun 4th, 2019]
[FIX] Several thread-safety and concurrency improvements.

Version 1.7.9 [May 27th, 2019]
[FIX] A missing header file could cause an error on connection under macOS and tvOS.

Version 1.7.8 [Jan 31st, 2019]
[FIX] Issue with an unhandled NULL value in ExtensionController that may raise an NSDictionary Exception.

Version 1.7.7 [Nov 12th, 2018]
[FIX] Room state inconsistency in case of Group subscribe/unsubscribe under a specific condition.

Version 1.7.6 [Oct 10th, 2018]
[FIX] Removed a dependency from a deprecated NSStream method that may cause runtime errors under XCode 10.0.

Version 1.7.5 [Aug 23rd, 2018]
[NEW] Added support for BlueBox over HTTPS.

Version 1.7.4 [Mar 31st, 2018]
[FIX] Issue with HRC+ system on an encrypted connection.

Version 1.7.3 [Aug 17th, 2017]
[NEW] Added support for switching run loop modes via [SmartFox2XClient setRunLoopMode:mode]. This can be useful in cases where UI components cannot receive events such as UITableView during scrolling. Switching the API run loop mode to NSRunLoopCommonModes instead of NSDefaultRunLoopMode (default) fixes the problem.

Version 1.7.2 [May 4th, 2017]
[FIX] Issue with “missing full bitcode” for tvOS framework when archiving a project.

Version 1.7.1 [not released] (internal version)

Version 1.7.0 [Nov 8th, 2016] (new features require SFS2X v2.12 or later)
[NEW] Added new JoinRoomInvitationRequest class.
[NEW] Added new SFSDataType.TEXT allowing “long text” to be sent and received, up to 2 GBytes.
[NEW] Added support for 'private' User Variables, visible to their owner only.
[FIX] Added "room" parameter to EXTENSION_RESPONSE event, to make it uniform with other Room-related events; the previous "sourceRoom" parameter is still available but deprecated.
[FIX] Removed client side permission checks for kick and ban requests.
[FIX] Return updated Buddy object data when a buddy is un-blocked.

Version 1.6.2 [May 3rd, 2016]
[FIX] Bug when transmitting packets in loops, resulting in potential packet loss.

Version 1.6.1 [Nov 23rd, 2015]
[NEW] Support for tvOS provided via new framework distributed in the package.
[FIX] SmartFox2XClient.isConnected == true after disconnection.
[FIX] 'type' property of Disconnection event was equal to "disconnect" instead of "connectionLost".

Version 1.6.0 [Jun 4th, 2015] (new feature requires SFS2X v2.10 or later)
[NEW] Support for TLS encrypted protocol over TCP/UDP.
[FIX] Issues with [SFSArray getItemAt:...] out of range in MMORoom.
[CHG] Unified version number: starting at 1.6.0, the major and minor release identify the "feature support level", the sub version indicates the platform specific release number.

Version 1.3.7 [Oct 13th, 2014]
[NEW] Added httpUploadURI method to the main SFS2X class, for HTTP uploads supported by SFS2X 2.9 and higher.
[NEW] Updated documentation.

Version 1.3.6 [June 13th, 2014]
[FIX] Added missing errorCode when dispatching generic errors such as LoginError, etc.
[FIX] Fixed a low-level problem with fragmented packet header bytes causing possible decode error of the whole packet.

Version 1.3.5a [May 6th, 2014]
[NEW] Added support for arm64 architecture introduced in XCode 5.1.

Version 1.3.5 [Mar 4th, 2014]
[NEW] Added LagMonitor to measure lag time between client and server.
NOTE I: The new feature requires iOS 6, if you don't plan to use it the API still work with iOS5
NOTE II: Since this release QuartzCore.framework is required in XCode under "Build Phases > Link Binaries with Libraries" panel.

Version 1.3.0 [Dec 5th, 2013]
[NEW] MMO API added, providing several new classes and functionalities for large and extra large virtual worlds and games (see SmartFoxServer 2X v2.8.0 release notes).

Version 1.2.2 [Dec 2nd, 2013]
[FIX] Fixed issue with UDP connection.

Version 1.2.1
[NEW] ARC only release. Solves a few previous memory management issues, in particular a memory leak when recreating the API main object.
[FIX] Fixed error with architecture signature of the iOS framework.
[FIX] Fixed isJoined property for results of FindRoom request.
[FIX] Bug on USER_LEAVE event (
[FIX] Issue with Spectator switch request.

Version 1.1.8
[FIX] KEY_ROOM in Extension parameters to identify the Room Id for Room Extensions.
[FIX] Fixed error with architecture signature of the iOS framework.

Version 1.1.7
[FIX] Added KEY_ROOM in Extension parameters to identify the Room Id for Room Extensions.
[FIX] Fixed problems with RoomVariables not dispatching correctly.
[FIX] Fixed a bug with InitBuddyRequest when the user logs out of a Zone and logs in another.
[FIX] Added support for internal Event code 1006, OnReconnectionFailure.

Version 1.1.5
[NEW] API now logs error messages as apposed to throwing an exception when packet loss is encountered.
[FIX] A bug that dispatched onConnectionLost event before connecting to BlueBox.

Version 1.1.4
[FIX] Issue with Room Variables as discussed here:

Version 1.1.3
[NEW] HRC+, improved version of the High Resilient Connection system, allows longer reconnection times improving connection stability.

Version 1.1.2
[FIX] Workaround for Obj-C bug while encoding data using stringByAddingPercentEscapesUsingEncoding for BlueBox, preventing certain characters from being sent via Base64 (as described here:

Version 1.1.1
[NEW] Added support for armv7s.
[NEW] Removed support for armv6 (iPhone 3G or previous).

Version 1.1.0
[NEW] BlueBox support.
[FIXED] blueBoxPollingRate min and max constants being used together with ConfigData value.
[FIXED] RoomProperties constants updated.

Version 1.0.8
[FIX] Wrong user count in game rooms.

Version 1.0.7
[FIX] API crashed after disconnection with at least one buddy added to the BuddyManager.
[FIX] Bug when sending GenericRequest while disconnected. System now warns as expected.

Version 1.0.6
[FIX] When retrieving a user list through FindUsersRequest, your own user object doesn't return the correct value for "isItMe".

Version 1.0.5
[FIX] Bug related to first user (server user id 0) sending UDP message.

Version 1.0.4
[FIX] Minor memory leak in XML parser and object deserializer.

Version 1.0.3
[FIX] handleBuddyMessage bug in SystemController as reported in support forum.
[FIX] Minor memory leak while decoding SFSObject messages as reported in support forum.
[FIX] Removed unnecessary NSLog statements when recieving UDP messages.

Version 1.0.2 rev. 2
[FIX] Created iOS and OSX separate packages due to compiling issues when using the iOS framework under Cocoa. Code base remains the same, but it is now packaged for OSX separately.

Version 1.0.2
[NEW] Updated usage instructions:
- no "Header Search Paths" required;
- "Other Linker Flags" now only requires "-lz" and "-ObjC".
[NEW] Replace TouchXML library with native XML handling.
[FIX] Device crashes while using the framework.
[FIX] Minor bug preventing more than 8 messages tobe sent to server.

Version 1.0.1
[FIX] Minor bug preventing armv6 compilation.