# RELEASE NOTES - Shield for iOS, Version 6.5.0, 2024-02-14 ## Highlights * Added new features: * Triggering debugging events. * Updated ShieldSDK API. * New command line options for Shielder. * Bug fixing and stability improvements for Jigsaw and Shield interoperability. * General stability and performance improvements. ## Supported platforms * Shield is supported on iOS 12.0 and up to iOS/iPadOS 17. * This release is compatible with iOS/iPadOS 17.7. * The Shielder tool is supported on 64-bit Java 17 on Windows 10, Mac OSX (10.15+), and Ubuntu Linux LTS 20.04 or 22.04. Shielder requires a macOS system in order to sign applications. * Shield supports Xcode 12 and higher. Promon recommends using the latest Xcode. ## New Features * Shielder now has the command line option `--check-app` to check if an application is shielded. For example: ```bash $ java -jar Shielder.jar --check-app my-app.ipa * Shield not found. ``` Or if the application is shielded: ```bash $ java -jar Shielder.jar --check-app my-shielded-app.ipa Shield version 6.5.0 found. ``` _(Resolves issue SHIOS-2659)_ * It is no longer necessary to specify `--standalone` or `--xcode` mode for shielding. Shielder will automatically detect the correct shielding mode when run directly from the command line or in Xcode. _(Resolves issue SHIOS-2577)_ * Updated the callback APIs for ShieldSDK with a new `PRMShieldEventManager` and `PRMShieldEventDelegate` protocol that align the code implementation with industry standards. The old `ShieldCallback` API is still available but is marked as deprecated and will be removed in the future. See the "Callbacks" section of the documentation for more details. _(Resolves issue SHIOS-2427)_ * ShieldSDK provides a new `PRMShieldCallbackTestManager` interface for testing and development purposes. These APIs allow 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 Shielder will replace the stub library with the actual Shield library. _(Resolves issue SHIOS-2506)_ ## Bugs and stability improvements * Fixed crash for `preventRuntimeLibraryInjection` on iOS 17. _(Resolves issue SHIOS-2347)_ * Fixed various memory leaks. 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). _(Resolves issues SHIOS-2464, SHIOS-2466, SHIOS-2468, SHIOS-2469, SHIOS-2520)_ * Fixed an issue where a Jigsaw protected application could not be uploaded to TestFlight. See the Jigsaw documentation for more details. Note that Jigsaw requires a valid license. _(Resolves issue SHIOS-2470)_ * When the ShieldSDK is embedded in a framework and weakly linked, Shielder will now detect it and properly link it during shielding. _(Resolves issue SHIOS-2419)_ * Removed privacy related APIs from internal Shield code that would have required declaration of use in a Privacy Manifest. See: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files. Shield no longer uses any of the listed APIs. _(Resolves issue SHIOS-2352)_ * Improved messaging for Shield in simulator mode. Whenever you run an app that calls Shield APIs (e.g., setting up events) in a simulator, it will log the following message: ``` ☠️ Shield is disabled in simulator builds ☠️ ``` This happens both for shielded and unshielded apps running in a simulator. If you run an unshielded app on a real device, it will show the following message instead: ``` ☠️ Application is not fully shielded ☠️ ``` _(Resolves issue SHIOS-2158)_ ## Highlights of Version 6.2.0 * Added new features: * Triggering debugging events. * General stability and performance improvements. * Bug fixing and stability improvements for Jigsaw and Shield interoperability. ## Highlights of Version 6.0.3 * Bug fixing and stability improvements for Jigsaw and Shield interoperability. ## Highlights of Version 6.0.2 * Bug fixing and stability improvements for Jigsaw and Shield interoperability. ## Highlights of Version 6.0.1 * Bug fixing and stability improvements for Jigsaw and Shield interoperability. ## Known limitations * Blocking of external screens, such as AirPlay, does not currently work for apps using `UISceneDelegate` in iOS 13 and above. * `--shield-all-extensions` option does not add Shield to AppClips. * `--shield-all-extensions` option will add Shield to all extensions from the default Plugins folder. ## Tested devices * iPhone SE : iOS 17.4 beta 3 * Iphone 14 : iOS 17.3.1 * iPhone 13 : iOS 16.7.2 * iPhone 12 : iOS 15.7.1 * iPhone 7 (N): iOS 14.8 * iPhone 7 : iOS 13.0 * iPhone XR : iOS 13.1.3 * iPhone 11 : iOS 13.7 * iPhone 8 : iOS 12.4.1 * iPhone 6S : iOS 11.4.1 * iPhone 5s : iOS 12.5.7 * iPod Touch (Jailbroken) : iOS 14.0.1 * iPad Gold 6 : 13.2.3 * iPad 7 : 14.8 * iPad 6 grey : 13.6 ## Tools (Xcode) * 14.2 on macOS v.12.7.1 (Intel, M1) * 15.0.1 on macOS v.14.1.1 (M2 Mac Mini) ## macOS * BigSur 11.7 (Intel / M1) * Monterey 12.7.1 (Intel Mac) * Ventura 13.3.1(a) (Intel / M2 ) * Sonoma 14.1.1 (M2 Mac Mini) * Sonoma 14.2 beta 4 (M2 Pro)