Solution: Find the error codes and their corresponding description in the following table.
|301||The local patch file is empty. Please check if the patch file is successfully downloaded, or check if the file path is correct in local testing.|
|303||The local patch file is empty. Please check if the patch file is successfully downloaded, or check if the file path for local testing is correct.|
|304||Failed to decrypt the patch file. Please check if the wireless guard signature verification figure
|305||Fialed to decrypt the patch file. Please try again.|
|306||The patch file failed to pass MD5 verification. Please check if the released patch file is an encrypted
Solution: Check the error message returned by the called method, as shown in the following figure. If it is not nil, troubleshoot according to the error codes mentioned above.
NSString *jsFile = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"js"];
NSError *errorJS = [MPDynamicInterface runWithResultDynamicLocalFile:jsFile];
If there is no error in the previous step, check if the syntax of the
.js file is correct, see OS-to-JS conversion syntax.
Check if the RSA asymmetric encryption information in the project is correct. You can judge the correctness by checking if the ret value in the following figure is 0.
- Check if wireless security guard image in the project is correct and if it’s consistent with the
meta.configfile of the project. If you are not sure, try generating a new wireless security guard image, and updating the
Ensure that the tested
.zipfile has been encrypted.
Check the error message returned by the called method, as shown in the following figure. If it is not nil, troubleshoot according to the error codes mentioned above.
NSString *jsZip = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"zip"];
NSError *error = [MPDynamicInterface runWithResultDynamicLocalSecFile:jsZip];
Why the patch doesn’t take effect on the client after the encrypted .js file is delivered from the release platform?
- Verify the
.zipfile locally to check if the patch takes effect after the original
.jsfile is encrypted.
When you upload new repair tasks on the console, ensure that the patch packages uploaded to the release platform are encrypted
The target version must be consistent with the field
info.plistfile of the project.
In Xcode console, check if the result returned from gateway for
alipay.client.getUnionResourceis 1000 to ensure successful network request.
If the result returned from gateway is not 1000, see Mobile Gateway Service > Client programming > FAQ for further troubleshooting.
When the network request succeeded, check if the patch package has been delivered to the client in local sandbox path. If both
.sigfiles have been generated under the directory, it means that the client has received the script delivered from the release platform. The patch will take effect after you kill process and restart the application.
Solution: Follow the method proposed on Android official website to introduce Apache HTTP client. It is forbidden to import HTTP client by importing Jar packages or Gradle implementation/compilation; otherwise, it may cause classloader confusion.
Fully qualified names are required for calling internal classes. To fix a internal class, the easiest way is to decompile the class to smali, and the file name of smali is the class name of the internal class.