sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
extra_vars5 | |
extra_vars6 |
1. 의존성 분석 도구가 macOS/Xcode 환경에 종속된 경우
-
CocoaPods, Carthage, Swift Package Manager(SwiftPM) 등을 정확하게 해석하고 실제 다운로드된 라이브러리 목록을 포함하려면 해당 도구가 실행되어야 합니다.
-
이들은 보통 macOS에서만 실행 가능합니다.
의존성 관리자 | 플랫폼 필요 여부 | 설명 |
---|---|---|
CocoaPods (pod install ) |
macOS + Xcode 필요 | .xcworkspace 와 Pods/ 폴더 생성 |
Carthage | macOS 필요 | 실제 빌드 수행 필요 |
Swift Package Manager (swift build ) |
macOS 필요 | .build/ 폴더 생성 및 종속성 확인 |
2. 프로젝트가 macOS 전용 바이너리로 컴파일된 상태로 존재할 때
-
.app
번들,.framework
,.dylib
등의 바이너리 내부에 포함된 라이선스 정보나 메타데이터를 추출하려면, macOS에서의 접근이나 실행 환경이 유리함 -
예:
Info.plist
,embedded.lproj
내 텍스트 리소스, 번들 내 Third-Party 라이선스 파일 등
3. FOSSLight에서 macOS 의존성 도구 대응 방법
FOSSLight와 ORT(OSS Review Toolkit)는 기본적으로 macOS 의존성 도구들(CocoaPods, Carthage, SwiftPM 등)에 대한 직접적 실행 기능은 제한적입니다.
1. 의존성 정보 파일(Manifest) 기반 분석
FOSSLight Scanner는 아래와 같은 파일들을 기반으로 의존성 분석이 가능합니다:
-
Podfile.lock
(CocoaPods) -
Cartfile.resolved
(Carthage) -
Package.resolved
(SwiftPM)
하지만 이 파일들만으로는 라이선스 정보까지 정확히 파악되지 않는 경우도 많기 때문에, 실제 라이브러리를 내려받아야 할 수도 있습니다.
2. 해결 방법: 의존성 사전 설치
-
macOS에서 한 번 프로젝트를 빌드하여 의존성 디렉터리(
Pods/
,Carthage/Checkouts
,.build/
) 생성 -
이 디렉터리들을 Linux 또는 Windows에서 FOSSLight Scanner로 정적 분석
4. ORT(OSS Review Toolkit)에서 macOS 의존성 도구 대응 방법
ORT는 보다 강력한 의존성 해석 기능을 제공합니다. 실제로:
도구 | 지원 여부 | 비고 |
---|---|---|
CocoaPods | 공식 지원 | pod install 필요 |
Carthage | 제한적 | 수동 조치 필요 |
Swift Package Manager (SwiftPM) | 공식 지원 | swift build 필요 |
1. analyzer
단계에서 지원 확인
-
CocoaPods, SwiftPM은 프로젝트 디렉터리 내에
Podfile
,Package.swift
가 있어야 하며 -
ORT 실행 시 내부적으로
pod
나swift
커맨드를 실행함 (→ macOS 필요)
2. macOS 의존성 도구 실행을 위한 사전 환경 조건
-
CocoaPods:
pod
명령어가 설치되어 있어야 함 -
SwiftPM: Xcode 명령줄 도구 필요 (
xcode-select --install
) -
ORT는
brew
나sdkman
으로 설치한swift
도 감지 가능
요약 비교
도구 | macOS 의존성 대응 | 비고 |
---|---|---|
FOSSLight | ❌ 직접 해석 불가, 수동 다운로드 필요 | Pods 등 사전 다운로드 후 정적 분석 |
ORT | ✅ CocoaPods, SwiftPM 해석 가능 | pod , swift 실행 위해 macOS 필요 |