Page tree
Skip to end of metadata
Go to start of metadata

Last updated: Jan 01, 2020 16:51

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. 

Notes:

  • 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.

To activate the re-sign app feature:

  • Manual Testing view:
    1. In the Manual Testing view, open a device.
    2. Click  to open the Install application form.
    3. Add your application file.
      When the app is ready to be installed, advanced options become available.
    4. Turn on the Resign application toggle to activate the feature.
    5. Click Install App.
  • Perfecto Automation/UFT: Use the Install application function and set the Re-sign parameter to True.
  • Appium:

    • Capability: set the "iOSResign" capability to true, when starting the application during driver creation.For example:

      In Java:
      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.

      In Java:
      //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);