Automatic packaging and signing services
After you upload an app to UFT Mobile, the server automatically attempts to package the app. This provides users with the option of selecting either a packaged app or the original version when running a test. To enable UFT Mobile to automatically sign and package apps, the administrator needs to set up the packaging and signing services.
About app signing services
Whenever an app is repackaged with UFT Mobile record and replay libraries, the app needs to be re-signed. By default, Android apps are signed with a debug certificate, and no additional action is required by the administrator. For iOS apps, or for Android apps that use services requiring a private key such as Google Maps or the Authentication service, the administrator needs to set up UFT Mobile to automatically re-sign apps. This is done by configuring the packager properties file.
You can also package and sign apps manually and then upload them to UFT Mobile. For details see, Package an Android app manually or Package an iOS app manually with the packager service.
Configure app signing services for iOS apps (on-premises)
This section is relevant only for on-premises deployments of UFT Mobile.
You can set up the packaging and signing service to automatically sign and package iOS apps when they are uploaded to UFTM. The packaging service can also be used for signing the Agents. For details, see Signing services for iOS apps (on-premises).
Configure app signing services for Android apps requiring a private key (on-premises)
This section is relevant only for on-premises deployments of UFT Mobile. In general, automatic packaging of apps after upload to UFT Mobile requires no additional action.
If your app uses services that require a private key, such as Google Maps or the authentication service, you need to sign your app using your own private key. To enable UFT Mobile to automatically sign your app with your own private key during the packaging process, you need to first set up the app packager for signing Android apps.
By default, UFT Mobile signs your app with a debug certificate. If your app uses services that require a private key, for example Google Maps or the authentication service, you need to sign your app with your own private key during the packaging process.
To configure UFT Mobile to automatically sign your app with your own certificate:
- Open the packager properties file on the UFT Mobile Server machine:
Linux:<Path to your server installation folder>/server/conf/packager.properties
Windows:<Path to your server installation folder>\server\conf\packager.properties
- Enter the following information:
ANDROID_KEYSTORE_PATH = The path to your key store, which is a binary file containing your set of private keys.
ANDROID_KEY_PASSWORD = The password for the private key that you will use to sign the app.
ANDROID_STORE_PASSWORD = The password for the key store.
ANDROID_ALIAS_NAME =The name used to identify the private key entry in the key store.
Note: All four values are required. If any of the values is left empty, the app packaging process will fail.
Automatic signing and packaging for UFT Mobile SaaS
The automatic signing and packaging service is hosted.
iOS
Open a service request for a dedicated signing/packaging service using your Apple certificate and provisioning profile. When this service is set up, the Agent apps, as well as any app uploaded to UFT Mobile, will be signed automatically with your Apple certificate and provisioning profile.
Alternatively, if you choose not to set up automatic packaging, you can manually sign the Agents and your apps using the iOS Enabler. For details, see Package an iOS app manually with the iOS Enabler.
Note for hosted devices:
When using only UFT Mobile hosted devices, automatic signing and packaging services do not need to be set up:
- Agent signing is not required.
- App signing and packaging services are not required unless your apps need to be automatically packaged and signed with your own Developer certificate.
Android
By default, UFT Mobile signs your app with a debug certificate. If your app uses services that require a private key, for example Google Maps or the authentication service, open a service request for a dedicated signing service to sign your app with your own private key. Alternatively, you can package the app manually and then upload it. For details, see Package an Android app manually. When using manual packaging and signing, set the Autopacking toggle to OFF.
Define packaging settings in UFT Mobile
You can set up UFT Mobile so that when a user uploads an app, UFT Mobile automatically packages the app with record and replay libraries.
- In UFT Mobile, click Administration and select the SETTINGS tab. For multiple shared space environments, see Global settings for iOS Packager settings.
- In the packaging service sections (for Android or iOS), set the IP address and port of the machine that will be used for repackaging the app. Set the protocol type to HTTP or HTTPS, depending on whether the connection is secure.
- The packaging service machine is set to localhost by default.
- You can enable packaged apps to trust Android User Certificates. This is required when recording a script for load testing using the VuGen MITM protocol.
- Use the Add Service button to add other packaging services in addition to the primary one. For these additional services, you also indicate the workspace that will use this service. Use the Remove button to remove packaging services that you added. The primary service cannot be removed.
- If you enable SSL for the connection to the app packager, you can use the self-signed certificate or use a certificate issued by a Certificate Authority (CA). When using a self-signed certificate, you can either import it to the UFT Mobile server or disable the iOS app packager certificate validation setting.
- Android:
- iOS
Troubleshooting the app packager
There may be times when the packaging process does not succeed When UFT Mobile is unable to create a packaged version of the app, a notification is displayed. Packaging is not essential for testing, however, there are certain test cases that require the app to be packaged. For details, see When to use a packaged app.
Packaging may not succeed for the following reasons:
- Check the settings that you defined for the packaging service in the Administration > Settings page.
Android:
- If you are using your own key to sign Android apps, check that the details in the app packager file on the server machine are correct.
iOS:
- Check that you have provided the correct settings for the Mac machine on which the packager service is installed if you are using the remote packager, or that the provisioning profile and apple certificate are valid if you are using the embedded packaging service.
- Check the packaging service logs. Click the about icon in top right of the packager UI, and download the log files.
- Try uploading the original application again.
- Android apps: If you used the Android Enabler tool to package your app, check that you are using the latest version.
- iOS apps: If you are using the packager service or the iOS Enabler to package your app, make sure that the packager service/ iOS Enabler version matches the UFT Mobile server version. For details, see and Package an iOS app manually with the packager service or Package an iOS app manually with the iOS Enabler.
- The maximum file size that you can upload is 1GB.
To package an iOS app successfully, the Team identifier must be specified in your provisioning profile.
When uploading your UFT Mobile apps, if you encounter a packaging error, use this list to determine the cause of the error. For assistance, contact your administrator.
Error Code |
Description |
2802 |
A general packaging error occurred. |
2803 |
The application couldn't be uploaded, because it used an incorrect version of the iOS Enabler. For details, see Package an iOS app manually with the packager service. |
2807 |
The version of the app packager is not compatible with this version of the UFT Mobile server. |
2808 |
The app packager was not configured correctly. |
2809 |
This application no longer exists due to an upgrade of the UFT Mobile server. You will need to upload the application again. |
2810 |
One of the properties (PROTOCOL/IP/PORT) of the app packager is missing or incorrect. An administrator can modify these values in Administration > SETTINGS, in the Android/iOS Packaging Service sections. |
2821 |
General Error: The application couldn't be packaged by the iOS Enabler. |
2822 |
The application couldn't be packaged due to an incorrect usage of the iOS Enabler. For details, see Package an iOS app manually with the packager service. |
2823 |
The application couldn't be packaged because the app was previously packaged manually with a static library using Xcode. |
2824 |
The application couldn't be packaged because the iOS Enabler couldn't code sign the app. For details, see Package an iOS app manually with the packager service. |
2825 |
The application couldn't be packaged because the iOS Enabler couldn't code sign Dylib. Check the Dylib file HPMobileCenter.dylib. For details, see Package an iOS app manually with the packager service. |
2826 |
The application couldn't be packaged because the iOS Enabler couldn't inject the Dylib. For details, see Package an iOS app manually with the packager service. |
2827 |
The application couldn't be packaged because the Dylib is not valid. For details, see Package an iOS app manually with the packager service. |
2829 | The application couldn't be packaged because the provision profile is missing a team identifier. |
2850 |
The app was successfully uploaded and UFT Mobile created a packaged version of the app. However, remote content debugging could not be enabled. Note: For this error, you will not be able to record, replay, or perform spy actions on unpackaged Android apps. As a workaround, try to manually Enable remote content debugging of Android apps. Alternatively, used the packaged app. |
2851 |
The app was successfully uploaded. However, UFT Mobile was unable to create a packaged version of the app, nor could it enable remote content debugging. Note: For this error, try to manually Enable remote content debugging of Android apps. |
See also: