OpenText Fortify SourceAnalyzer로 Swift 코드 분석하기

OpenText Fortify의 sourceanalyzer를 사용하여 Swift 프로젝트를 분석하는 방법을 설명드립니다. Swift 분석은 다른 언어와 약간 다른 접근이 필요합니다.

1. 필수 준비 사항

  • Fortify SCA 20.2 이상 버전 (Swift 지원 버전)
  • Swift 컴파일러 설치 (Xcode 포함)
  • macOS 환경 (Linux에서의 Swift 분석은 제한적)

2. 기본 분석 방법

방법 1: 직접 컴파일 명령 사용

bash

sourceanalyzer -b MySwiftProject swiftc -emit-object MyFile.swift

방법 2: Xcode 프로젝트 분석

bash

sourceanalyzer -b MySwiftProject xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme

3. Swift Package Manager(SPM) 프로젝트 분석

bash

sourceanalyzer -b MySPMProject -clean
sourceanalyzer -b MySPMProject swift build
sourceanalyzer -b MySPMProject -scan -f swift_results.fpr

4. 고급 분석 옵션

Swift 버전 지정

bash

sourceanalyzer -b MySwiftProject -swift-version 5 xcodebuild [...]

분석 메모리 설정

bash

sourceanalyzer -b MySwiftProject -Xmx8G -analysis-memory 8G swift build

병렬 분석

bash

sourceanalyzer -b MySwiftProject -mt swift build

5. CocoaPods 프로젝트 분석

bash

sourceanalyzer -b MyPodProject pod install
sourceanalyzer -b MyPodProject xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme

6. 분석 결과 생성 및 확인

bash

sourceanalyzer -b MySwiftProject -scan -f swift_results.fpr
AuditWorkbench swift_results.fpr

7. 일반적인 문제 해결

빌드 설정 문제

bash

sourceanalyzer -b MySwiftProject xcodebuild -workspace MyProject.xcworkspace -scheme MyScheme -destination 'platform=macOS'

SDK 경로 지정

bash

sourceanalyzer -b MySwiftProject xcodebuild [...] -sdk $(xcrun --show-sdk-path)

분석 범위 제한

bash

sourceanalyzer -b MySwiftProject -exclude "Pods/**" xcodebuild [...]

주의사항

  1. Swift 분석은 Fortify SCA 20.2 이상에서만 완전히 지원됩니다.
  2. Xcode 프로젝트는 완전한 빌드 가능한 상태여야 합니다.
  3. 대형 프로젝트의 경우 충분한 메모리를 할당하세요.
  4. SwiftUI 코드 분석에는 일부 제한이 있을 수 있습니다.
  5. 외부 종속성(Pods, SPM 패키지)은 사전에 설치되어 있어야 합니다.
위로 스크롤