Migrating to version 1.0
This latest release brings a number of updates to the extension particularly around the Android integration.
Most importantly the underlying Braze SDK has been updated to the latest releases:
- Android: v36.0.0
- iOS: v12.0.0
The implementation remains largely the same however there are some changes to the integration of the extension that you should be aware of.
Additionally make sure you update all dependency extensions to the latest versions as well, apm
will help you with this.
Updating code
You should update your code to use the ImageOnlyCard
instead of the BannerImageCard
. This change was made to better align with the Braze SDK.
This should be a simple change in your code, for example:
import com.distriqt.extension.braze.contentcards.ImageOnlyCard;
should now be used to import the ImageOnlyCard
class, instead of the previous import for BannerImageCard
:
import com.distriqt.extension.braze.contentcards.BannerImageCard;
Android Integration
Minimum SDK Version
The minimum SDK version has been updated to 25 (Android 7.1 Nougat) and the target SDK version has been updated to 34 (Android 14).
Gradle Version
We have updated the required gradle version used to build your application to be higher than the default AIR currently uses.
To specify a higher version add the following to your android node in your application descriptor:
<android>
<gradleVersion>8.9</gradleVersion>
<androidGradlePluginVersion>8.7.3</androidGradlePluginVersion>
...
</android>
If you don't do this you will see the following error when building your application:
Unexpected failure: Unable to run java: com.adobe.air.ADTException: gradle tool failed:
FAILURE: Build failed with an exception.
...
> BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65
May 2025: This is not currently automatically handled by apm
so you will need to add this manually to your application descriptor.
We are working on an update to handle this.
Gradle Dependencies
We have moved to using gradle dependencies within our extensions which will improve dependency resolution, reduce update times and improve compatibility with other extensions.
This also reduces the amount of work required to manually integrate the extensions, reducing the additions to the manifest in your application descriptor.
We highly recommend using the apm tool to manage the integration of the extensions in your application and to generate your application descriptor:
apm update
apm generate app-descriptor
However, you can still integrate the manifest additions manually if you prefer. With this update we recommend starting fresh as there have been a lot of entries to be removed.
Updating the manifest
You can simplify the manifest now as well as the gradle implementation will add a significant amount of the required manifest entries for you.
If you use the apm
tool to generate your application descriptor you will see the manifest entries are significantly reduced and simply running the commands above will update the manifest for you.
If you manually update the manifest then, as mentioned above, we recommend starting fresh as there have been a lot of entries to be removed. The minimum manifest additions now looks like the following:
<manifest android:installLocation="auto" >
<uses-sdk android:minSdkVersion="25" android:targetSdkVersion="34" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application>
<meta-data android:name="android.max_aspect" android:value="2.5" />
<meta-data android:name="android.notch_support" android:value="true"/>
<activity android:name="com.distriqt.extension.braze.contentcards.BrazeContentCardsActivity" android:exported="false" android:theme="@style/Theme.AppCompat.NoActionBar"/>
<service android:name="com.braze.push.BrazeFirebaseMessagingService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<activity android:name="com.distriqt.core.auth.AuthorisationActivity" android:exported="false" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
</application>
</manifest>
You no longer have to manually add all of the braze, and androidx related manifest entries as these are now added automatically by the gradle implementation.
Assets
You used to have to manually add the following files to your application, however these are now automatically added by the gradle implementation:
braze-html-in-app-message-bridge.js
fontawesome-webfont.ttf
You should remove these files from your application and let the gradle implementation add them for you.
If you are using apm
you may find there is no longer an assets/android
directory so you should remove this from your package. (This may still exist if you have other airpackages that require android assets).
iOS Integration
Minimum SDK Version
The minimum SDK version has been updated to 13.
If you are manaully managing the minimum version, check your info additions for the following:
<key>MinimumOSVersion</key>
<string>13.0</string>