- 28 Oct 2024
- 3 Minutes to read
- DarkLight
Version 6.5.0 (March 2024)
- Updated on 28 Oct 2024
- 3 Minutes to read
- DarkLight
Supported platform versions
iOS 12.0 – iOS/iPadOS 17
With the end of support for iOS 9.0, support for 32-bit architectures also ended.
Shielding Tool:
Windows 10: 64-bit Java 17
Mac OSX (10.15+)
The Shielding Tool requires a macOS system to sign applications.
Ubuntu Linux 20.04 LTS or 22.04
Xcode 12 and later. We recommend using the latest Xcode version.
iOS platform updates
App Shielding version 6.5.0 is compatible with iOS/iPadOS 17.7.
As of March 1, 2024, App Shielding for iOS version 4.3.8.69424 and earlier are no longer supported. For more information, refer to the OneSpan Customer Portal at https://cp.onespan.com/ or the OneSpan Mobile Portal.
Deprecations
iOS: The minimum supported version is iOS 12. App Shielding no longer supports iOS 11.
Xcode: As of Xcode 14, Apple has deprecated bitcode.
As of App Shielding version 6.0.0, the Shielding Tool no longer supports bitcode-based code obfuscation!
New features and other updates
New callback protocols
New protocols have been integrated into the callback APIs for ShieldSDK, PRMShieldEventManager and PRMShieldEventDelegate. The old ShieldCallback API is still available but is marked as deprecated and will be removed in the future.
For more information, see Configure callbacks on iOS.
New callback testing and development interface
ShieldSDK provides a new interface for testing and development purposes, PRMShieldCallbackTestManager. This API allows you to trigger events with the desired value (e.g., the device is jailbroken) and a delay when the event should be triggered. This API will not trigger any security checks to run, only the desired event that you want to validate. Refer to the "Triggering Callbacks" section of the documentation for more details.
Note that this code is for debugging only and should not exist in the binary when shielding it, as these calls in a shielded app will cause the app to crash. This feature will not be available after shielding, as the Shielding Tool will replace the stub library with the actual App Shielding library.
For more information, see Configure callbacks on iOS - Debugging: manual triggering of callbacks.
General improvements
A number of general improvements have been implemented:
Triggering of debugging events was added
General stability and performance improvements
Stability improvements of App Shielding
Fixes and other changes
Documentation fixes
Description: The method and details for the developerModeStatus callback were missing from the list of callback methods.
Status: The documentation has been updated. The method and its description has been added to the ShieldCallbackMethods table in the Mobile Application Shielding Integration Guide for iOS.
SHIOS-2158: Improved message text for App Shielding in simulator mode
Description: Whenever you run an app that calls App Shielding APIs (e.g., setting up events) in a simulator, the following message was logged:
☠ App Shielding is disabled in simulator builds ☠
This applied for shielded as well as unshielded apps running in a simulator.
Status: This has been improved. If you run an unshielded app on a real device, it will now show the following message instead:
☠ Application is not fully shielded.☠
SHIOS-2347: Fixed unexpected termination for Prevent runtime library injection
Description: On iOS 17, an unexpected termination occurred for the Prevent runtime library injection option.
Status: This issue has been fixed.
SHIOS-2352: Missing declaration of use for privacy-related APIs
Description: Privacy-related APIs from internal App Shielding code would have required declaration of use in a Privacy Manifest. For more information, refer to Privacy manifest files in the Apple developer documentation.
Status: This issue has been fixed. App Shielding no longer uses any of the listed APIs, they have been removed from the code.
SHIOS-2419: ShieldSDK not detected and correctly linked
Description: When ShieldSDK was embedded in a framework and weakly linked, it was not detected or correctly linked.
Status: This issue has been fixed. The Shielding Tool will now detect and correctly link it during shielding.
SHIOS-2464, SHIOS-2466, SHIOS-2468, SHIOS-2469, and SHIOS-2520, : Fixed various memory leaks
Description: Various memory leaks were fixed. This includes a memory leak that caused large amounts of memory to be consumed over prolonged amounts of time (i.e., when the app was running in the foreground for days or weeks.
Known limitations
The limitations described here have not yet been solved for the current Mobile Application Shielding version. Possible workarounds are described where available.
XCFramework support
App Shielding is provided both as framework and as XCFramework. If you are using a legacy build system on Xcode 11 and later, use the ShieldSDK.framework instead of the newer ShieldSDK.xcframework. Xcode will cause an error when using the XCFramework in the legacy build system.
ARM64E limited support
The ShieldSDK framework is not compiled for the ARM64E CPU architecture, and therefore does not include the corresponding slices. ARM64 CPU ABI should be used instead. At the moment, Xcode 11 does not create an ARM64E target by default. Consequently, no action is required at this point.
External screen block
Blocking external screens (e.g. AirPlay) is currently not working for apps that use UISceneDelegate in iOS 13 and later.