Releases: BranchMetrics/cpp-branch-deep-linking-attribution
Release 1.2.0-rc4
Include open-source license files in MSI. These are installed in C:\Program Files (x86)\Branch SDK\licenses.
Release 1.2.0-rc3
- Introduced signed MSI.
- Add all pdbs to MSI.
Release 1.2.0-rc2
SDK-1107: PDB not installed by MSI. Debug builds were broken.
A new MSI is attached. Please uninstall any previous MSI before installing this one.
1.2.0-rc1
Release 1.1.2
- Fixed deep linking when tracking disabled
- Fixed developer identity (
setIdentity
/logout
) - Removed all
/v1/close
traffic from the SDK - Implemented per-app Registry storage
- Fixed bad OS Version sent to server
- Introduced TestBed QA app
This release includes no breaking API changes.
Deep linking was incorrectly disabled in previous releases when tracking is
disabled. In this release, open events will be sent to the server without any
identifiable fields. The response will be received normally by the caller.
Only opening links and generating short URLs will work with tracking disabled.
All other Branch functionality will return errors.
The Branch::closeSession
method no longer does anything of value and may be
removed. Session closes are automatically inferred by the server.
Per-app Storage
Storage of Branch-related settings is usually per app in all other existing
SDKs, often because of app sandboxing. Win32 is a rare environment where apps
frequently operate outside a sandbox and can collide. Most of the information
Branch stores must be per app. This release scopes all Registry-based storage
to the app key in use. As of this release, only one app key may be used at a
time (only one Branch
instance at a time).
Previous builds erroneously stored information under
HKEY_CURRENT_USER\Software\BranchIO
. Now each app will use
HKCU\Software\BranchIO\<branch-key>
, e.g.
HKCU\Software\BranchIO\key_live_xyz
. Any setting from a previous version of
the SDK not scoped to a Branch key, in particular
HKCU\Software\BranchIO\advertiser\trackingDisabled
, will be assumed to have
come from the current app. These settings will be migrated to
HKCU\Software\BranchIO\<branch-key>
(HKCU\Software\BranchIO\<branch-key>\advertiser\trackingDisabled
).
Developer Identity
The AppInfo::setDeveloperIdentity
method no longer does anything. The way
it was used in certain examples was misleading. "Developer Identity" is an
identity meaningful to the developer of the app. That is usually a user
ID in the app developer's environment. It simply identifies the user in events
recorded by Branch in whatever way is convenient for the developer. This is
distinct from Branch's own notion of an Identity, represented by the
identity_id
. Any calls to the AppInfo::setDeveloperIdentity
method
should be removed.
To associate a developer identity with the current app session, use
Branch::setIdentity
. The Branch::logout
function removes that association.
A new function Branch::getIdentity
returns the current developer identity.
Note that setIdentity
and logout
must be called after opening a session.
The identity is persistent through multiple sessions once the association is
made or removed.
TestBed
The repo now includes a TestBed
app for QA that represents a standard
Win32 implementation of the SDK.
Release 1.1.1
- Added support for wide strings via BranchIO::String adapter class.
All public API methods that accept a string now take a BranchIO::String,
which can be constructed automatically from std::string, std::wstring,
const char* or const wchar_t*. Two new getters, Branch::getBranchKeyW()
and Branch::getVersionW(), were also introduced.
Release 1.1.0
- Improvements to thread safety of LinkInfo and its ancestors.
- Eliminate queueing and retry of /v1/url requests. A long link will now be
generated immediately on any request failure.
This required some changes to the public interface of BaseEvent
. The return
types of getCustomData()
and name()
have changed to avoid returning
pointers or references to unsynchronized objects from synchronized getters.
BranchIO::JSONObject getCustomData() const;
std::string name() const;
In addition, the destructor of LinkInfo
will now block while any background
request is in progress. Once createUrl()
is called, the LinkInfo
object
is guaranteed to outlive the thread that executes the request. To force
immediate termination of the background thread, use LinkInfo::cancel()
.
Also note that each Each LinkInfo
instance can currently only be used once to
generate a URL. For now, create a new LinkInfo
instance for each URL
request. This will be improved in a future release.LinkInfo
instance is reusable.
Release 1.0.1
Updated Poco dependency to ~=1.9.4, allowing patch revisions via conan install --update. This addresses an HTTPS failure on Windows.
Release 1.0.0
- v1.0.0
- Master Release - November 22, 2019
- Initial Revision