Re-sign an application | iOS
In some cases, to interact with some UI components, specifically some types of Webviews, the application must be signed with a Developer Certificate that includes provisioning for the cloud device under test. Perfecto supports a re-sign app feature that replaces the app's signature and resigns it with a Perfecto code signing certificate that has the cloud device provisioned.
The following applicability notes apply:
- When re-signing an app with a Perfecto certificate, any entitlements used by the original certificate, that is Push notification entitlement, are removed.
- The re-sign functionality is only supported for hosted cradles. An alternative for the re-sign option is to add the device's UDID to your application's provisioning profile and install it without the re-signing functionality.
- Re-signing an app is required for working with SFSafariViewController on iOS devices running version 12.2 and later. For more information, see iOS - Working with SFSafariViewController.
For a visual explanation of the re-signing processes, see Re-signing illustrated.
To activate the re-sign app feature:
-
Capability: set the "iOSResign" capability to true, when starting the application during driver creation. For example:
CopyJava
capabilities.setCapability("bundleId", "com.apple.mobileslideshow");
capabilities.setCapability("app","PRIVATE:applications/SlideShow.ipa");
capabilities.setCapability("iOSResign",true); -
Perfecto app installation - set the "resign" parameter of the mobile:application:install Perfecto command to true.
CopyJava
//declare the Map for script parameters
Map<String, Object> params = new HashMap<>();
params.put("file", "PRIVATE:applications/SlideShow.ipa");
params.put("instrument","noinstrument");
params.put("resign","true");
driver.executeScript("mobile:application:install", params);