Introducing the Intune iOS MAM Static Framework #432
msintuneappsdk
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This is a notice for an upcoming change in the 19.4.0 Intune iOS MAM SDK release that is relevant to all applications that integrate the static library variant of the SDK (libIntuneMAMSwift.xcframework). If your application uses the dynamic framework (IntuneMAMSwift.xcframework), then you may disregard this post.
Based on feedback we've received from Apple, the static library variant of the Intune iOS MAM SDK is now deprecated and is being replaced with the new Intune MAM static framework.
What is a static framework and how is it different from a static library?
From a runtime performance perspective, a static framework is essentially the same as a static library. The SDK's executable code gets embedded directly into the app or extension's binary at compile time. The main difference is that the executable code is now wrapped in a ".framework" bundle which can house resources that are required by the SDK.
Why is this change happening?
The Intune iOS MAM SDK team has followed up with Apple on some open questions on distributing a privacy manifest for static libraries. Apple has documented that this will soon be an app store review requirement for any app integrating the Intune MAM SDK, because the SDK calls some "required reason" APIs. The recommendation our team received from Apple was to create a static framework: A .framework bundle whose main binary is a static archive which can house the privacy manifest, public headers, and other resources required by the SDK. The static framework also comes with some other benefits which simplify integration for partners. The Intune resource bundle (IntuneMAMResources.bundle) can now be included directly within the framework, and consumers no longer need to add a build phase to their app target that handles copying the resource bundle into their app bundle. This will be automatically handled by Xcode.
What changes are required when switching to the static framework?
Integrators should remove links to libIntuneMAMSwift.xcframework and instead link to the new IntuneMAMStatic.xcframework available in the 19.4.0+ release of the Intune MAM SDK. Select "Embed & Sign" in the Xcode UI for the main app, and select "Do Not Embed" for any extensions. This will prevent the framework bundle from being unnecessarily copied into the app bundle multiple times. Remove IntuneMAMResources.bundle from the build target's "Copy Bundle Resources" build phase. Any Objective-C imports of the SDK's public headers should be changed to a framework-style import: "#import <IntuneMAMSwift/header_name.h>". Swift module import statements do NOT require updating. They will remain "import IntuneMAMSwift".
What is the timeline for this change?
It is recommended that integrators currently using the static library and submitting to the app store adopt the static framework as soon as possible to avoid any potential disruptions to their releases. The static library (libIntuneMAMSwift.xcframework) variant of the SDK will be removed in our next major version update, which is anticipated to be in September 2024 for iOS 18.
If you experience an app store rejection prior to availability of the 19.4.0 SDK release, please reach out by filing an issue
Beta Was this translation helpful? Give feedback.
All reactions