Pricing

iOS App Resigning & Certificate Uploading Guide

The article covers iOS APP resigning and certificate uploading guide.
1. Why is Resigning Necessary?

iOS app resigning refers to re-signing an iOS app, mainly applied in the following scenarios:

  • [Changing/Expired Signature]: Initially, a personal account was utilized for signing, but due to some reasons, an enterprise account is needed, requiring a bundleid change. However, the original statistics and push notification functions will become invalid, requiring reconfiguration of a new bundleid, which may affect previous versions.
  • [Paid Software Usage]: If the user does not want to jailbreak their phone but still wants to use paid apps from the App Store, many third-party Apple assistant tools use enterprise certificates to re-sign apps for download. As an iOS developer, you can also use your own certificate for resigning and use the app in a test environment.
  • [Using Another Person's Signed Package]: Personal developer-signed packages require binding to a device's UDID, making installation on other devices impossible unless re-signed.

 

2.  Relationship Between iOS Resigning and Developer Accounts

iOS resigning is usually done using Xcode, which requires an Apple Developer account or an enterprise certificate for signing.

1)Enterprise Certificate Signing

  • IPA packages signed with an enterprise certificate can be installed on any iOS device.
  • After installation, the first launch on iOS will prompt a trust confirmation. Clicking "Trust" allows normal use.
  • Enterprise test environment signatures are valid for one year.

2)Personal Developer Certificate Signing

Developers can register for an Apple Developer account, which can bind up to 100 iOS/iPad devices.

  • The account requires an annual renewal fee of 688 RMB.
  • Within the one-year validity, up to 100 iPhone/iPad devices can be bound. Once full, no more devices can be added.
  • Device bindings can be changed after the one-year expiration by unbinding previous devices and binding new devices.

 

3.  When is Resigning Needed in UDT (WeTest Automated Testing Platform)?

  • [UDT Screen Mirroring Component Resigning]:

If UDT is connected to an iOS version below 15.0, the screen mirroring function will be restricted by Apple's system.

Resigning the screen mirroring component app is necessary (recommended to use devices with iOS 15.0 or above).

  • [Resigning Apps Under Testing]:

Scenario 1: If the app is signed with a personal certificate and already bound to the tested device's UDID, resigning is unnecessary.

Scenario 2: If the app is signed with a personal certificate but not bound to the tested device's UDID, resigning of personal application is required.

Scenario 3: If the app is signed with an enterprise certificate, resigning is not needed. After installation, go to Settings > General > Profiles to trust the signature.

Important: If an enterprise-signed package is resigned with a personal certificate, it may fail to run.

 

4. How to Perform iOS Resigning in UDT?

4.1 Preparing a Developer Account and P12 File

Prerequisites: A personal Apple Developer account is required.

Step 1: Generate a New Certificate in Xcode

1.  Open Xcode on a Mac.

2.  Go to Preferences, log in to a personal developer account.

3.  Select "Apple Development" to generate a new certificate.

Step 2: Export the Certificate as a .p12 File

1.  Open Keychain Access.

2.  Export the newly generated certificate as a .p12 file, ensuring that:

Both the certificate and private key are exported together and remember the password set for the .p12 file during export.

Step 3: Generate and Download the MobileProvision File

1.  Log in to the Apple Developer website: Apple Developer

2.  Navigate to Certificates, Identifiers & Profiles.

3.  We can see that this account has bound to multiple devices.

-There are 6 tabs on the left side, only three of them are useful Certificates: This page mainly shows the certificates bound to the developer account.

-Devices: This page shows the iPhone/iPad devices bound to the Developer Account, this page can also be used to bind iPhone/iPad devices.

-Profiles: This page shows the mobileprovision files bound to the Developer Account.

 

4.  Under Profiles, click the "+" button.

5.  Select iOS App Development, then click Continue.

6.  Under App ID, choose the default option and click Continue.

7.  Click Download to get the mobileprovision file.

 

4.2 Adding the Certificate in UDT

1.  Log in to the UDT Consoleand select a project. UDT site: udt

2.  Navigate to iOS App Resigning.

3.  Upload the required files:.

-p12 certificate file (input the password set during export).

-MobileProvision file (downloaded from the Apple Developer website).

Note:

  • Devices must be added on Apple's website for successful signing.
  • If "All" is selected, all devices connected to the PC will be automatically registered.
  • If a specific UDID is set, only that device will be registered.

 

4.3 Resigning and Installing on Cloud Devices

On the target device in the test environment, click "Re-Signature" to complete the process.

5. How to Resign Components?

For devices running iOS < 15.0, screen mirroring features are restricted by Apple's system, requiring component resigning.

 

Steps to Resign Components

1.  Find the working directory using the following method:

2.  Identify the following files in the directory:

  • resources/scrcpy-*_enterprise_sign.ipa
  • resources/wda-*_enterprise_sign.ipa

3.  Resign these files using a developer account and replace them in the folder.

4.  Restart the client application.

Upcoming Improvements:

Future versions will include automated component resigning, removing the need for manual operations. Stay tuned!

 

Start Your Free Trial on UDT

UDT is a comprehensive mobile testing platform for large-scale automation on a cloud-based device farm, featuring local access tools for efficient device management by development teams. It supports seamless integration with common automated testing frameworks while offering customization services to extend these frameworks according to specific project requirements.

1.  Register to get your UDT account

2.  Create a new project in your account

3.  Contact us to get free real devices in your project

Also, we are glad to have a meeting with you: Schedule a Meeting with Us

Learn more about UDT platform: WeTest-All Test in WeTest

UDT Demo: WeTest-All Test in WeTest

Latest Posts
1Leveraging Multi-Dimensional Test Reports to Improve Testing Efficiency with WeTest UDT WeTest UDT offers multi-dimensional test reports to improve testing accuracy, and enhance overall product quality.
2WeTest UDT's Framework Flexibility: Bridging Mainstream and Custom Testing Needs WeTest UDT unifys mainstream and custom frameworks under a single platform to bridge mainstream and custom testing needs.
3Real-World Scenarios: When to Use Regression Testing with WeTest UDT Businesses can implement automated, scalable, and efficient regression Testing with WeTest UDT.
4Custom UDT Deployment Options for Enterprises: Tailored Solutions for Optimal Test Efficiency Custom UDT deployment options provide enterprises with the flexibility, security, and performance needed for modern testing environments.
5Enhancing Functional Testing with WeTest UDT: Ensuring Seamless Application Performance WeTest UDT offers an advanced automated testing platform to ensure seamless application performance.