- 28 Oct 2024
- 3 Minutes to read
- DarkLight
Version 5.5.0 (July 2023)
- Updated on 28 Oct 2024
- 3 Minutes to read
- DarkLight
Supported platform versions
iOS 12.0 – iOS 16
With the end of support for iOS 9.0, support for 32-bit architectures also ended.
iPadOS 16
Shielding Tool:
Windows 10: 64-bit Java 17
Mac OSX (10.9+)
The Shielding Tool requires a macOS system to sign applications.
Ubuntu Linux 20.04 LTS or 22.04 LTS
Xcode 12 and later. We recommend using Xcode version 14.3.1 for now.
iOS platform updates
App Shielding version 6.0.0 is compatible with iOS/iPadOS 17 RC.
As of July 1, 2022, App Shielding for iOS version 4.2.0.39844 and earlier are no longer supported. For more information, refer to the OneSpan Customer Portal at https://cp.onespan.com/.
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
Developer mode detection
(Resolves issue SHIOS-2055)
In iOS 16, Apple has introduced the Developer Mode feature. This developer mode needs to be enabled on a device in case a user wants to install development signed apps and wants to debug apps on a given device. By default, developer mode is disabled which results in higher security for normal users.
With this, ShieldSDK introduces new options for the configuration file:
Check developer mode
Exit on developer mode
Exit on developer mode url
By default, developer mode detection is enabled but can be configured.
Build App Shielding library for arm64 simulator
(Resolves issue SHIOS-1287)
App Shielding now supports to run a shielded app in a simulator on ARM Macs.
Fixes and other changes
RASP-2961: iOS Sample App: missing status and callback from screen recording
Description: In the App Shielding sample application, the the status and a callback was missing from screen recording.
Status: This issue has been fixed. All detection mechanisms are again available in the sample app.
SHIOS-2093: Unknown architecture in library error in Shielding Tool
Description: Some frameworks may have additional architectures embedded, which are irrelevant for the Shielding Tool, such as the armv7k architecture for older generations of Apple Watch.
Status: This issue has been fixed. The Shielding Tool will no longer complain about such libraries being present in the application that is being shielded.
SHIOS-2119: Delay calls to UIDevice until bindings are restored
Description: In some rare cases an early call to UIDevice during binding restoration can cause an unexpected termination.
Status: This issue has been fixed.
SHIOS-2135, SHIOS-2368: Deprecation of configuration options
Description: The following configuration options are now deprecated:
exitOnDebuggerURL
runtimeLibraryInjectionPreventionMode
The default option is non-strict
SHIOS-2233: Fixed signing problem with Cocoapods
Description: Fixed signing when ShieldSDK is used with the Cocoapod framework as a dependency.
SHIOS-2255: Removed exposed ShieldSDK namespace classes when not enabled
Description: Some third party code may have names which conflict with a ShieldSDK namespace, for example Secure Local Storage.
Status: This issue has been fixed. This fix removes the SecureLocalStorage namespace from App Shielding packages where this API is not enabled.
SHIOS-2283: Fixed unexpected termination caused by symbol not found
Description: In the Shielding Tool the load order of frameworks for the app is rewritten to ensure App Shielding is always loaded first. In rare cases, this re-ordering could cause problems for some non-weak symbols - which would cause the app to reliably terminate unexpectedly when launched.
Status: This issue has been fixed.
SHIOS-2389: Fixed unexpected termination on iPad
Description: An issue with the binding feature on iOS/iPadOS can cause an unexpected termination during startup in very rare cases.
Status: This issue has been fixed.
SHIOS-2399, SHIOS-2406, SHIOS-2407, SHIOS-2455: Fixed memory leaks
Description: Improved memory management for long-running applications.
SHIOS-2410: Change the AppMonitor class name if already in the app
Description: If there is already an AppMonitor class name in the app, the Shielding Tool renames an internal AppMonitor class name to a random name in case of conflict with your app.
SHIOS-2435: Removal of deprecated configuration option
Description: The deprecated configuration option exitOnRepackagingURL has now been removed.
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.