SPM으로 배포할 라이브러리를 생성하고 비공개로 관리하는 방법에 대해 작성합니다.
방법은 간단합니다
xcframework로 배포하면 됩니다!
그리고 SPM의 package.swift를 작성할 때 xcframework가 들어있는 저장소를 가리키도록 작성해주면 됩니다.

Xcode > File > New > Package 에서 Package를 생성합니다.

해당 Package 파일 이름은 GitHub에서 보여질 저장소 이름과 동일하게 작성해줍니다.

package가 생성되었습니다. 🎉

binaryTarget이란?
→ 이미 빌드된 xcframework/라이브러리를 SPM target처럼 쓰게 해주는 것
저는 라이브러리의 소스를 비공개로 관리하고 싶기 때문에 xcframework를 spm으로 제공합니다.

binaryTarget
swift package compute-checksum xcframework이름

dependencies: 이 패키지가 의존하는 외부 패키지 목록
dependencies에 등록된 패키지는 패키지 전체에서 접근 가능하지만, 실제로 target이 사용하려면 target 내부에서 product로 지정해야 합니다.

target(iOS-SSP-AdFit-SPM) 이 의존하는 라이브러리/ target 목록
GitHub에 public 저장소 (ex. iOS-SSP-AdFit-SPM) 를 생성하고 위에서 만든 package를 추가하여 push 합니다.
Package: AdMixerMediationAdFit
|
├─ Products (외부 공개용)
| └─ AdMixerMediationAdFit (라이브러리 이름)
| └─ Targets: iOS_SSP_AdFit_SPM
|
├─ Dependencies (외부 패키지)
| └─ AdFitSDK (adfit-spm)
|
└─ Targets (실제 빌드 단위)
├─ iOS_SSP_AdFit_SPM (.target / Wrapper)
| ├─ path: Sources/iOS-SSP-AdFit-SPM
| ├─ 의존성: AdMixerMediationAdFitBinary (.binaryTarget)
| └─ 의존성: AdFitSDK (.product from dependency)
|
└─ AdMixerMediationAdFitBinary (.binaryTarget)
└─ 이미 빌드된 xcframework