콘텐츠로 이동

문제 해결

Xcode 빌드 오류 (1) Use of undeclared type ‘AppSealingInterface’

Section titled “Xcode 빌드 오류 (1) Use of undeclared type ‘AppSealingInterface’”

브리징 헤더 파일에서 ‘#import “AppsealingiOS.h”’ 문장을 누락했거나 잘못 입력했을 때 위와 같은 오류 메시지가 나타납니다.

“TestApp_Swift-Bridging-Header.h”를 선택하고 문서 끝에 ‘#import “AppsealingiOS.h“‘를 추가합니다. “AppsealingiOS.h” 파일이 지정된 폴더(Xcode project/AppSealingSDK/Libraries/AppsealingiOS.h)에 존재하는지 확인하세요.

또한 “AppsealingiOS.h” 파일은 “AppsealingiOS.mm” 파일과 함께 프로젝트에 포함되어야 합니다.

Xcode 빌드 오류 (2) Undefined symbols for architecture arm64:_OBJC_CLASS_$_AppSealingInterface

Section titled “Xcode 빌드 오류 (2) Undefined symbols for architecture arm64: “_OBJC_CLASS_$_AppSealingInterface””

이 링커 오류는 “AppsealingiOS.mm”이 프로젝트에 포함되지 않았을 때 발생합니다. 프로젝트 트리에서 파일이 추가되었는지 확인하세요.

“AppsealingiOS.mm” 파일이 프로젝트에 포함되지 않은 경우 “File > Add Files to “TestApp_Swift” … ” 메뉴 작업을 수행하세요.

Xcode 빌드 오류 (3) ld: library not found for -lStaticAppSec_Debug

Section titled “Xcode 빌드 오류 (3) ld: library not found for -lStaticAppSec_Debug”

이 링커 오류는 libStaticAppSec_Debug.a 파일이 지정된 폴더에 존재하지 않거나 손상되었을 때 발생합니다. libStaticAppSec_Debug.a 파일은 다음 경로에 있어야 합니다.

“TestApp_Swift (프로젝트 폴더) > AppSealingSDK > Libraries > libStaticAppSec_Debug.a”

파일이 누락되었거나 손상된 경우 AppSealingSDK zip 파일을 다시 다운로드하거나 다시 압축 해제해 보세요.

이 단계는 “lStaticAppSec_Debug”를 “lStaticAppSec”로 바꿔서 “ld: library not found for -lStaticAppSec”라고 하는 링커 오류에도 동일하게 적용됩니다. 릴리스 빌드의 경우 “libStaticAppSec.a” 파일이 올바른 위치에 있어야 합니다.

“TestApp_Swift (프로젝트 폴더) > AppSealingSDK > Libraries > libStaticAppSec.a”

Xcode 빌드 오류 (4) Undefined symbols for architecture arm64:ObjC_IsAbnormalEnvironmentDetected()”, “Appsealing()

Section titled “Xcode 빌드 오류 (4) Undefined symbols for architecture arm64: “ObjC_IsAbnormalEnvironmentDetected()”, “Appsealing()””

이 링커 오류는 “Build Settings” 구성 섹션 내의 “Other Linker Flags” 필드 값이 누락되었거나 잘못되었을 때 발생합니다.

먼저 “Other Linker Flags” 필드 값에 대한 “Build Settings”를 확인하세요.

다음 단계에 따라 “Other Linker Flags” 설정을 복원하세요.

  1. 설정 값 지우기: “Other Linker Flags” 행을 선택하고 ‘Delete’ 키를 누릅니다.

  2. “Other Linker Flags” 왼쪽의 삼각형 아이콘을 클릭하여 “Other Linker Flags”를 확장합니다.

  1. “Debug” 항목을 선택하고 클릭하여 값을 편집/삽입한 다음 다음 텍스트를 입력합니다.

-lStaticAppSec_Debug -L$(PROJECT_DIR)/AppSealingSDK/Libraries

  1. “Release” 항목을 선택하고 클릭하여 값을 편집/삽입한 다음 다음 텍스트를 입력합니다.

-lStaticAppSec -L$(PROJECT_DIR)/AppSealingSDK/Libraries

Xcode 빌드 오류 (5) Undefined symbols for architecture arm64:ObjC_IsAbnormalEnvironmentDetected()” (Objective-C 프로젝트만)

Section titled “Xcode 빌드 오류 (5) Undefined symbols for architecture arm64: “ObjC_IsAbnormalEnvironmentDetected()” (Objective-C 프로젝트만)”

이 링커 오류는 프로젝트가 Objective-C 기반이고 ViewController 소스 코드 파일의 확장자가 “.m”일 때 발생합니다. 확장자를 “.mm”로 변경하세요.

실행 오류 (I) 앱이 실행 직후 즉시 종료됨

Section titled “실행 오류 (I) 앱이 실행 직후 즉시 종료됨”

앱이 기기에서 실행 직후 종료되면 번들 ID가 유효한지 실행 로그 메시지를 확인해야 합니다.

로그 메시지에 ” ==>> FAILED( Not registered bundle name )“과 같은 문자열이 포함되어 있으면 사용한 번들 ID가 DoveRunner Mobile App Security SDK 파일을 다운로드할 때 DoveRunner Mobile App Security Developer Center (ADC)에서 제대로 등록되지 않았음을 의미합니다. ADC에서 SDK를 다운로드할 때 입력한 값과 번들 ID가 동일한지 확인하세요.

실행 오류 (II) 실행 중 앱이 갑자기 종료됨

Section titled “실행 오류 (II) 실행 중 앱이 갑자기 종료됨”

실행 후 약 20초 후에 앱이 갑자기 종료되면 Release 구성으로 앱을 실행했는지 실행 로그 메시지를 확인해야 합니다.

로그 메시지에 “Message from debugger: Terminated due to signal 14”와 같은 문자열이 포함되어 있으면 Release 구성에서 앱을 빌드하고 실행했으며 DoveRunner Mobile App Security 탐지 로직이 활성화되었음을 의미합니다. Release 구성의 DoveRunner Mobile App Security 로직은 탈옥, 디버거 연결, 실행 파일 암호화 플래그와 같은 일부 보안 침입을 확인하고 문제가 있으면 사용자 액션이나 기타 상황에 관계없이 20초 후에 앱을 종료합니다.

Release 구성에서만 DoveRunner Mobile App Security 로직이 활성화되어 앱을 종료하므로 AppStore 또는 TestFlight에서 기기에 설치되기 전에는 빌드된 실행 파일이 FairPlay DRM으로 암호화되지 않기 때문에 AppStore 또는 TestFlight에 앱을 배포할 때까지 Debug 구성으로 앱을 실행해야 합니다. DoveRunner Mobile App Security 로직은 실행 파일이 비정상적으로 복호화되었음을 감지하고 Xcode에서 기기에서 앱을 실행하는 동안 20초 후에 앱을 종료합니다.

”generate_hash” 실행할 수 없음: 권한 거부됨

Section titled “”generate_hash” 실행할 수 없음: 권한 거부됨”

3-5단계 “앱 무결성 및 인증서 스냅샷 생성”에서 스크립트 실행이 아래와 같은 “Permission denied” 오류 메시지로 실패할 수 있습니다.

이 상황에서는 아래와 같은 권한 추가 명령을 실행하고 다시 시도하세요.

Terminal window
$ chmod +x AppSealingSDK/Tools/generate_hash

지속적 통합 도구에서 DoveRunner Mobile App Security SDK 사용

Section titled “지속적 통합 도구에서 DoveRunner Mobile App Security SDK 사용”

DoveRunner Mobile App Security SDK는 “Buddy” 또는 “Jenkins” 등과 같은 CI(지속적 통합) 도구에 자연스럽게 통합될 수 있습니다. DoveRunner Mobile App Security SDK가 Xcode 프로젝트에 적용되면 평소와 같이 명령줄 셸 스크립트로 프로젝트를 아카이브하고 내보낼 수 있습니다.