Applies To
RSA Product/Service Type: SecurID SDK V2.5 for iOS
Issue
Apple has introduced the following changes recently:
- Starting with Xcode 12.3, fat binaries created with “lipo” can no longer be used.
- Apps must be built with single architecture frameworks, arm64 for device builds and x86_64 for simulator builds.
- If multiple architecture frameworks are desired, an xcframework must be used.
- The SDK does not contain a framework dedicated for the simulator builds only.
Resolution
SecurID SDK V2.5 for iOS has been qualified to run on iOS16 application. The use of SDK 2.5 on iOS16 requires some repackaging to be applied, due to the changes introduced by Apple. The following sections outline the required procedures.
Repackaging Framework for Simulator Builds
To create a framework and extract the architecture from the fat binary (Release-merged folder), follow these steps:
- Copy Release-merged folder to Release-simulator folder.
- Open terminal.
- cd ./Release-simulator/SecurIDLibFramework,framework/
- lipo -archs ./SecurIDLibFramework. (You should see x86_64 & arm64)
- lipo -remove arm64 ./SecurIDLibFramework -o ./SecurIDLibFramework
Repackaging Framework to Multi-Architecture XCFramework
To repackage the SDK V2.5 framework:
- Run the following command:
xcodebuild -create-xcframework -allow-internal-distribution -framework ./Release-iphoneos/SecurIDLibFramework.framework -framework ./Release-simulator/SecurIDLibFramework.framework -output ./SecurIDLibFramework.xcframework
Building the Sample App
To build the Sample App:
- Remove the old framework and add new SecurIDLibFramework.xcframework to the app target.
- For simulator builds, you need to add the build setting to exclude arm64 architecture.