← Back to list

XCFramework를 Swift Package로 배포하고 버전 관리하기: 로컬 vs 서버 방식

XCFramework로 iOS 모듈화하기: 생성부터 프로젝트 적용까지 에 이어서 XCFramework를 Swift Package로 배포하는 방법을 알아봅시다!

릴리 · 2026-05-02 06:21 · 1 claps · 5.6 min read
#spm #xcframework #swift-package #모듈화
Open on Medium ↗
Wiki topics: 📱 · Mobile Development

XCFramework를 Swift Package로 배포하고 버전 관리하기: 로컬 vs 서버 방식

XCFramework로 iOS 모듈화하기: 생성부터 프로젝트 적용까지 에 이어서 XCFramework를 Swift Package로 배포하는 방법을 알아봅시다!

XCFramework는 단독으로도 프로젝트에 직접 추가하여 사용할 수 있지만, 여러 프로젝트에서 재사용하거나 버전 관리를 하기 위해서는 Swift Package로 감싸서 배포하는 방식이 더 유용합니다.

즉, 이미 만들어둔 XCFramework를 그대로 사용하면서, 이를 감싸는 Swift Package를 구성한 뒤, Swift Package Manager(SPM)를 통해 프로젝트에 추가하는 방식입니다.

XCFramework는 로컬에 둘 수도 있고, 원격 서버에 올려둘 수도 있습니다.

  • 로컬 방식: XCFramework를 Swift Package의 Git 저장소 내부에 포함시키고, 압축 없이 직접 참조하는 방식
  • 서버 방식: XCFramework를 zip으로 압축한 뒤 서버에 업로드하고, URL을 통해 다운로드하여 사용하는 방식

로컬 방식

로컬 방식은 XCFramework를 Swift Package의 Git 저장소 안에 직접 포함시키고, Package.swift에서 해당 파일을 path로 참조하는 방식입니다.

서버 방식처럼 .zip으로 압축하거나 checksum을 계산할 필요가 없기 때문에, 내부 프로젝트나 빠른 테스트 용도로 사용하기 좋습니다.

1. Swift Package 생성

먼저 XCFramework를 감쌀 Swift Package를 만들어줍니다.

  • Xcode에서 File > New > Package로 새로운 패키지를 만듭니다.

  • 버전 관리를 위해 Create Git rpeository on Mac 을 체크합니다.

2. XCFramework 추가

  • XCFramework를 넣을 폴더를 만들고, 만들어둔 XCFramework를 폴더 안으로 복사합니다.

  • Package.swift 를 수정합니다.
  • platforms 에 지원할 플랫폼 추가, XCFramework 최소 지원 버전과 동일하게 작성
  • XCFramework를 binary Target으로 등록. path에는 패키지 루트 기준으로 XCFramework가 위치한 경로 작성
  • products에 정의된 library의 타겟에 추가한 binary target 추가

3. remote에 Package 업로드

  • 그 다음 git을 remote에 올립니다.

4. 버전 태그 추가

  • SPM은 Git tag를 기준으로 버전을 인식하므로 tag를 생성합니다.
git tag 1.0.0
git push origin 1.0.0
  • tag가 생성되었습니다.

5. SPM으로 패키지 추가

  • 이제 사용하고자 하는 프로젝트에 SPM으로 패키지를 추가해주면 끝~

6. XCFramework 업데이트 후 새 버전 배포

  • 새로운 XCFramework를 만들었다면 기존 파일을 교체한 뒤 커밋하고 새 tag를 생성합니다.

서버 방식

서버 방식은 XCFramework를 .zip으로 압축한 뒤 서버(Github Release Asset, AWS .. )에 업로드하고, Package.swift에서 해당 파일을 URL로 다운로드 받아 사용하는 방식입니다.

1. XCFramework 압축

먼저 만들어둔 XCFramework를 .zip 파일로 압축합니다.

zip -r MyFramework.xcframework.zip MyFramework.xcframework

2. checksum 생성

아래 명령어로 checksum을 만들고 값을 복사해둡니다.

swift package compute-checksum MyFramework.xcframework.zip

3. zip 파일 서버에 업로드

위에서 압축한 파일을 서버에 업로드합니다. 저는 Github Release 에 업로드했습니다.

4. SwiftPackage 생성, Package.swift 수정

로컬과 동일한 방식으로 SwiftPackage를 만들고, 이번엔 Package.swift에 binarytargetpath대신 zip을 받을 수 있는 urlchecksum을 기재해줍니다.

여기서부턴 로컬과 동일하게 진행합니다.

5. remote에 Package 업로드

6. 버전 태그 추가

7. SPM으로 패키지 추가

8. XCFramework 업데이트 후 새 버전 배포

7. SPM으로 패키지 추가

새 zip 파일을 서버에 업로드한 뒤, Package.swift를 수정합니다.

url: ".../1.1.0/MyFramework.xcframework.zip",
checksum: "새 checksum"

그리고 새로운 버전으로 태그를 추가합니다.

git add .
git commit -m "Release 1.1.0"
git tag 1.1.0
git push origin main
git push origin 1.1.0

그럼 프로젝트에서 패키지를 업데이트하면 새 버전을 사용할 수 있습니다!


메타데이터
post_id
fedbca692593
slug
xcframework를-swift-package로-배포하고-버전-관리하기-로컬-vs-서버-방식-fedbca692593
url
https://medium.com/@yeahg.dev/xcframework%EB%A5%BC-swift-package%EB%A1%9C-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B3%A0-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-%EB%A1%9C%EC%BB%AC-vs-%EC%84%9C%EB%B2%84-%EB%B0%A9%EC%8B%9D-fedbca692593
canonical_url
https://medium.com/@yeahg.dev/xcframework%EB%A5%BC-swift-package%EB%A1%9C-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B3%A0-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-%EB%A1%9C%EC%BB%AC-vs-%EC%84%9C%EB%B2%84-%EB%B0%A9%EC%8B%9D-fedbca692593
author_url
https://medium.com/@yeahg.dev
status
ok
fetched_at
2026-06-13 12:55:53