Development Integration Issues(FAQ) #
1.Android/iOS Download Configuration Rules #
Android
(1) High Precision Installation Package: Download the APK package uploaded to the OpenInstall console. After SMS registration verification, the daily testing limit is 20 IPs. The restriction is lifted upon subscription to the Advanced version.
(2) Customized Download Address: It’s possible to configure a third-party APK installation package download address or download page (including addresses from third-party distribution platforms).
iOS
(1) Upload Installation Package: Upload the IPA package to the OpenInstall console. After SMS registration verification, the daily testing limit is 20 IPs. Subscription to the Advanced version automatically removes the IP restriction.
(2) Custom IPA Address: Only supports configuring the IPA file address.
(3) App Store or Others: Can configure App Store download address, TestFlight address, or the third-party download address.
(4) OTA Online Installation: Limited to providing plist file address, for example: itms-services://?action=download- manifest&url=xxxxxxxx.
2.How to avoid callbacks every time app parameter installation method (getinstall) is accessed? #
Once the SDK is successfully initialized, it internally retains the installation parameters. Each invocation of the App parameter installation method will return the installation parameters. If developers don’t want to invoke this method every time the app is accessed, they can call it only when necessary for specific business scenarios to obtain installation parameters. Furthermore, once the parameters are acquired and there’s no need for repeated retrieval, developers can set a flag to prevent the method from being called again in subsequent instances.
3.Priority relationship between channel ID parameters inside the channel package and custom parameters on H5 webpage links #
(1) By only carrying custom parameters (without channel IDs) in the H5 webpage link to download and install the channel package, both the custom parameters from the H5 link and the channel ID parameters from the channel package can be obtained in the app.
(2) By carrying both custom parameters and channel ID parameters (with different channel IDs between the H5 webpage link and the channel package) in the H5 webpage link to download and install the channel package, both the custom parameters from the H5 webpage link and the channel ID parameters (non-channel ID parameters from the channel package) can be obtained in the app.
(3) By only carrying channel ID parameters (with different channel IDs between the H5 webpage link and the channel package) in the H5 webpage link to download and install the channel package, the channel ID parameters from the H5 link can be obtained in the app.
Summary: The priority of the channel ID parameters on the H5 webpage link is higher than the channel ID parameters inside the channel package.
4.How to handle URL parameters with special characters? #
When constructing URL parameters, if there are special characters within the parameters, it’s necessary to encode the parameters. This involves encoding the parameters before appending them to the URL. For example:
in Android:
URLEncoder.encode(value, "utf-8")
In iOS:
(NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)"parameter string",NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8));
Note: stringByAddingPercentEscapesUsingEncoding encodes the entire URL and does not handle special characters such as &, :, ?, =, etc.
5.When opening the H5 test page, the message "Integration work for the corresponding platform is not yet complete. Please log in to OpenInstall for details" appears. #
After integrating according to the documentation, developers must export the installation package and upload it to the console to activate the corresponding AppKey. This step is necessary to properly test the app’s functionalities.
For each AppKey, at least one installation package needs to be uploaded for Android/iOS to proceed with the corresponding Android/iOS testing.
6.As an OpenInstall user, where can I obtain the download link or QR code for my own App? #
OpenInstall platform provides an "Online Test" link, QR code, and "System Default" channel link and QR code for testing purposes.
If OpenInstall users want to implement the same functionality as the "Test Page" on their own developed webpages, they need to integrate the "Web Integration – JavaScript Integration" or "App Banner Integration" documentation into their webpages. This enables features such as app parameter installation, channel statistics, one-click launch, and quick installation. (Web links can be converted into QR code images using tools, making the link function equivalent to QR code functionality.)
7.Upon opening the webpage, the message "Domain Restricted, please log in to OpenInstall to view web security configurations" is displayed. #
Navigate to the "Web Integration" section in the OpenInstall dashboard, then click on "Web Security Configuration". From there, disable the "Enable Domain Verification" toggle switch (or add the required domain to the whitelist).
8.If the upload of the installation package fails or encounters other errors #
Android
Check if the package contains V1 signature. Failure to include it may result in parsing failure.
iOS
Verify if the package is correctly signed, ensure that the IPA file name does not contain any special characters.
If the above steps do not resolve the issue, you may try uploading the package using a different web browser.
9. Formats of the Returned Parameters #
Android
Custom parameters returned by the native SDK are in JSON string format (need to be parsed manually). channel ID parameter format: String (the channel ID entered when creating the channel, no parsing required).
iOS
Custom parameters returned by the native SDK are in dictionary format (need to be parsed manually). channel ID parameter format: String (the channel ID entered when creating the channel, no parsing required).
Third-party plugin platforms
The format of returned custom parameters is uniformly in JSON string format (need to be parsed manually). channel ID parameter format: String (the channel ID entered when creating the channel, no parsing required).