Swift패키지 · v0.1.0

KLShareLink

명시적 입력이나 공유 텍스트에서HTTP(S) URL을 선택합니다.

KLShareLink는 외부 라이브러리 없이 동기 방식으로 실행되는Swift패키지입니다. 명시적URL, 텍스트의 링크 후보, 서비스별 도메인, 이전 형식의 식별 문자열을 확인하고 규칙을 통과한HTTP(S) URL과 선택적 서비스 이름을 반환합니다.

지원OS
iOS 17+ · macOS 14+
개발 환경
Swift 6.0+
라이선스
MIT
외부 의존성
없음

기능

  • 안전한 명시적URL을 가장 먼저 사용
  • 본문의HTTP(S) URL을 등장 순서대로 검색
  • 설정한 서비스 도메인과 일치하는URL을 우선 선택
  • localhost, .local, 루프백, 링크 로컬, RFC 1918주소 제외

포함하지 않는 기능

이 패키지는 링크 선택만 담당합니다. 네트워크 요청, 리디렉션 추적, 추적 파라미터 제거, 방문 기록 저장은 수행하지 않습니다. 실제 요청을 보내기 직전에DNS결과와 모든 리디렉션 목적지를 네트워크 계층에서 다시 검증해야 합니다.

SwiftPM으로 추가

Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLShareLink.git", from: "0.1.0")

사용 방법

연동 예제Swift
let resolver = ShareLinkResolver(providers: providers)
let result = resolver.resolve(
    explicitURL: itemURL,
    sharedText: itemText
)

if let url = result.url {
    open(url, source: result.providerName)
}
ShareLinkResolver

가변 상태가 없는Sendable분석기입니다. 동기 방식으로 동작하며 네트워크 요청을 보내지 않습니다.

ShareLinkProvider

서비스 이름, 대상 도메인, 이전 형식의 식별 패턴을 담는Codable설정값입니다.

ShareLinkResolution

선택한URL과 서비스 이름을 서로 독립적으로 보관합니다.

데모 앱

Link Inspector

안전한 명시적URL을 가장 먼저 사용 · 본문의HTTP(S) URL을 등장 순서대로 검색

Policy Playground

설정한 서비스 도메인과 일치하는URL을 우선 선택 · localhost, .local, 루프백, 링크 로컬, RFC 1918주소 제외