# Troubleshooting_RN

# Xcode Build error (1) Undefined symbols for architecture arm64:         "OBJC_CLASS$_AppSealingInterface"

This link error can occur in two cases. The first is when you create a project in  macOS 11.x environment and try to rebuild after updating macOS to 12.x, and the second is when the necessary files are not included in the project.

If you have created a React Native 0.66 project in macOS 11.x environment, and updated macOS to 12.x / Xcode to 13.3 or higher, when you try to build the existing project, the above link error occurs.

In this case, the problem is solved by creating a new React Native 0.66 project in the new macOS environment and moving the code from the existing project to build.

This link error do not occur if you are using macOS 11.x as it is or if it is a React Native 0.64, 0.65 version project.

It will be improved to solve problems without transferring project code in the future.

This case occurs when the "AppsealingiOS.mm (opens new window)" is not included in your project. Check project tree whether the file has added or not.

If the "AppsealingiOS.mm (opens new window)" file is not included in your project, perform "File > Add Files to "RnMyApp" ... “ menu action to include required files into your project.

# Execution error (I) App terminated immediately after launch

If your app has terminated right after launching in device, you should check the execution log message whether your bundle ID is valid.

If the log message contains string like " ==>> FAILED( Not registered bundle name )" then it tells the bundle Id you used is not registered properly at AppSealing Developer Center (ADC) while downloading AppSealing SDK file. Check your bundle Id if it is same as the value you entered when downloading SDK at ADC.

# Execution error (II) App terminated suddenly while running

If your app has terminated suddenly while running about after 20 seconds from launching you should check the execution log message whether you have run your app with Release configuration.

If the log message contains string like "Message from debugger: Terminated due to signal 14" then it tells that you have built & run your app in Release configuration and so AppSealing detection logic has activated. AppSealing logic in Release configuration checks some security intrusion such as jailbreak, debugger attachment, execution file encryption flag and if there is some problem it will close the app after 20 seconds irrespectively of user action or other circumstances.

Only in Release configuration the AppSealing logic will be activated and will terminate your app, so you should run your app with Debug configuration until you distribute the app to AppStore or TestFlight because the built executable file doesn't have encrypted with FairPlay DRM before it is installed from AppStore to device. AppSealing logic will detect that executable file has decrypted abnormally and it will terminate the app after 20 seconds while running your app in device at Xcode.

# Cannot execute “generate_hash” : Permission denied

It may happens that script execution in step 3-5 “Generate App integrity and certificate snapshot” fails by “Permission denied” error message like below.

In this situation run add permission command like below and try again.

$ chmod +x /MyRnApp/ios/AppSealingSDK_ReactNative/generate_hash

# Using AppSealing SDK in Continuous Integration Tools

AppSealing SDK can be integrated naturally into CI (continues integration) tools such as "Buddy" or "Jenkins" etc. Once the AppSealing SDK has applied to your Xcode project, you can archive and export the project with command line shell script as usual.

Last Updated: 11/19/2024, 6:55:37 AM