이 라이브러리는 캐시 지원이있는 비동기 이미지 다운로더를 제공합니다. 편의를 위해 UIImageView , UIButton , MKAnnotationView 와 같은 UI 요소에 대한 범주를 추가했습니다.
참고 :
SD는 단순한 디자인 의 접두사입니다 (저자 Olivier Poitrey의 Daily Motion Company의 팀 이름입니다)
UIImageView , UIButton , MKAnnotationView 추가 웹 이미지 및 캐시 관리에 대한 카테고리 5.19+에서 SDWebimage는 모든 패키지 관리자 (코코 포드/카르타고/SPM 포함)에서 VisionOS를 지원합니다. 문제에 직면 할 경우 관련 도구를 업그레이드하십시오.
5.18+의 경우 SDWebimage를 VisionOS 플랫폼 용으로 컴파일 할 수 있습니다. 그러나 여전히 베타 버전에 있으며 안정적인 iOS UIKIT 지원과 달리 문제가 포함되어있을 수 있습니다. 시도 및 보고서 문제를 오신 것을 환영합니다.
VisionOS를 구축하기 위해 현재 표준 Xcode 통합 만 지원합니다.
Installation with Swift Package Manager 및 Manual Installation Guide 사용하여 설치하십시오.
참고 : 새 사용자의 경우
sdwebimage 코더 플러그인 시스템을 사용하여 Apple의 내장 및 외부 이미지 형식을 모두 지원합니다. 정적 이미지의 경우 항상 Apple의 내장을 폴백으로 사용하지만 애니메이션 이미지에는 그렇지 않습니다. 현재 (5.19.x 버전으로 업데이트 됨) 최신 펌웨어에서도 Awebp/Heics/Avif와 같은 최신 형식없이 기본적으로 GIF/APNG와 같은 기존 애니메이션 형식 만 기본적으로 등록합니다.
이러한 애니메이션 이미지 형식 지원을 원한다면 한 줄 코드로 직접 등록하려면 Webp Coder 및 HEIC Coder에서 자세한 내용을 확인하십시오.
향후 우리는 새로운 사용자가 쉽게 통합 할 수 있도록 Apple의 내장 애니메이션 이미지 형식을 항상 등록 하여이 동작을 변경할 것입니다.
5.0 리팩토링 중에 SDWebImage가 핵심 기능에 집중하고 핵심 기능에만 초점을 맞추고 확장 성 및 사용자 정의 동작을 허용하기 위해 라이브러리 모듈화에 중점을 두었습니다. 따라서 우리는 새 모듈을 sdwebimage org로 이동/구축했습니다.
Swiftui는 모든 Apple 플랫폼에서 사용자 인터페이스를 구축하기 위해 Swift로 작성된 혁신적인 UI 프레임 워크입니다.
우리는 sdwebimage core functions (캐싱,로드 및 애니메이션) 위에 구축 된 sdwebimageswiftui라는 새로운 프레임 워크를 구축하여 Swiftui를 지원합니다.
새로운 프레임 워크는 Swiftui World의 WebImage 및 AnimatedImage 소개합니다. Swiftui World, 모든보기에 대한 ImageIndicator 수정 자, 데이터 소스에 대한 ImageManager Observable Object를 소개합니다. iOS 13+/macOS 10.15+/TVOS 13+/WatchOS 6+ 및 Swift 5.1을 지원합니다. 좋은 시도를하고 피드백을 제공하십시오!
Photos.framework )LPLinkView ( LinkPresentation.framework 사용) SDWebimage의 사용자 정의 가능한 아키텍처를 사용하여 직접 사용하거나 자신의 유사한 구성 요소를 만들 수 있습니다.
pod try SDWebImage# import < SDWebImage/SDWebImage.h >
...
[imageView sd_setImageWithURL: [ NSURL URLWithString: @" http://www.domain.com/path/to/image.jpg " ]
placeholderImage: [UIImage imageNamed: @" placeholder.png " ]];import SDWebImage
imageView . sd_setImage ( with : URL ( string : " http://www.domain.com/path/to/image.jpg " ) , placeholderImage : UIImage ( named : " placeholder.png " ) )5.0에서는 애니메이션 이미지를 지원하기위한 새로운 메커니즘을 도입했습니다. 여기에는 애니메이션 이미지로드, 렌더링, 디코딩 및 사용자 정의 (고급 사용자의 경우)도 포함됩니다.
이 애니메이션 이미지 솔루션은 iOS / tvOS / macOS 에서 사용할 수 있습니다. SDAnimatedImage 는 UIImage/NSImage 의 서브 클래스이며, SDAnimatedImageView 공통 프레임 워크 API와 호환되도록 UIImageView/NSImageView 의 서브 클래스입니다.
SDAnimatedImageView 친숙한 이미지로드 카테고리 메소드를 지원하며 UIImageView/NSImageView 의 드롭 인 교체와 같은 작동합니다.
UIView ( WatchKit 또는 CALayer 와 같은)가 없습니까? 고급 재생 및 렌더링을 위해 SDAnimatedPlayer The Player 엔진을 사용할 수 있습니다.
자세한 정보는 애니메이션 이미지를 참조하십시오.
SDAnimatedImageView *imageView = [SDAnimatedImageView new ];
SDAnimatedImage *animatedImage = [SDAnimatedImage imageNamed: @" image.gif " ];
imageView.image = animatedImage; let imageView = SDAnimatedImageView ( )
let animatedImage = SDAnimatedImage ( named : " image.gif " )
imageView . image = animatedImage 사물을 정리하고 핵심 프로젝트를 덜 할 수 있도록하기 위해, 우리는 FLAnimatedImage 통합이 여기에 속하지 않기로 결정했습니다. 5.0에서는 여전히 사용할 수 있지만 전용 Repo Sdwebimageflplugin 하에서.
프로젝트에서 sdwebimage를 사용하는 5 가지 방법이 있습니다.
Cocoapods는 Objective-C의 종속성 관리자로 프로젝트에서 3 자 라이브러리를 사용하는 프로세스를 자동화하고 단순화합니다. 자세한 내용은 시작 섹션을 참조하십시오.
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
Swift Project는 이전에 use_frameworks! 모든 포드를 동적 프레임 워크로 만들어 코코 포드가 작동하도록합니다.
그러나 CocoaPods 1.5.0+ ( Xcode 9+ )로 시작하여 Objective-C && Swift 코드를 모두 정적 프레임 워크로 빌드하는 것을 지원합니다. modular 헤더를 사용하여 sdwebimage를 사용하여 use_frameworks! :
platform :ios, '8.0'
# Uncomment the next line when you want all Pods as static framework
# use_modular_headers!
pod 'SDWebImage', :modular_headers => true
Cocoapods 1.5.0 - Swift 정적 라이브러리에 대한 자세한 내용을 참조하십시오
그렇지 않은 경우 여전히 use_frameworks! 동적 프레임 워크로 sdwebimage를 사용하려면 :
platform :ios, '8.0'
use_frameworks!
pod 'SDWebImage'
현재 사용 가능한 2 개의 하위 스펙트가 있습니다 : Core 및 MapKit (이것은 sdwebimage 모듈 만 설치할 수 있습니다. 기본적으로 Core 만 얻으므로 MapKit 필요한 경우 지정해야합니다).
podfile 예 :
pod 'SDWebImage/MapKit'
Carthage는 Swift and Objective-C의 경량 의존 관리자입니다. 그것은 Cocoatouch 모듈을 활용하고 Cocoapods보다 덜 침습적입니다.
Carthage로 설치하려면 Carthage의 지침을 따르십시오
Carthage 사용자는이 저장소를 가리키고 원하는 프레임 워크를 사용할 수 있습니다 : sdwebimage, sdwebimagemapkit 또는 둘 다.
Cartfile에서 다음 항목을 작성하십시오 : github "SDWebImage/SDWebImage" 그런 다음 carthage update 실행하면 프로젝트에서 Carthage를 처음 사용하면 Carthage에서 설명한 추가 단계를 거쳐야합니다.
참고 : 현재 Carthage는 특정 저장소 하위 구성 요소 (또는 Cocoapods의 서브 스펙트와 동등한) 만 구축하는 방법을 제공하지 않습니다. 모든 구성 요소와 그 종속성은 위 명령으로 구축됩니다. 그러나 사용하지 않는 프레임 워크를 프로젝트에 복사 할 필요는 없습니다. 예를 들어,
SDWebImageMapKit사용하지 않는 경우carthage update완료된 후 Carthage 빌드 디렉토리에서 해당 프레임 워크를 자유롭게 삭제하십시오.
참고 : Apple에는 sdwebimage에 서명이 포함되어 있습니다. 따라서 기본적으로
carthage buildBinary Framework는 CodesIGN을 사용하지 않으므로 유효성 검사 오류가 발생합니다. Apple Developer Program Identity에 서명하거나 바이너리 프레임 워크를 사용할 수 있습니다.
binary "https://github.com/SDWebImage/SDWebImage/raw/master/SDWebImage.json"
SWIFTPM (SwiftPM)은 SWIFT 코드의 배포 및 C-FAMILY 의존성을 관리하는 도구입니다. Xcode 11에서 SwiftPM은 기본적으로 Xcode와 통합되었습니다.
SDWebimage 지원 버전 5.1.0에서 SwiftPM. SwiftPM을 사용하려면 Xcode 11을 사용하여 프로젝트를 열어야합니다. File -> Swift Packages -> Add Package Dependency 클릭하고 sdwebimage repo의 URL을 입력하십시오. 또는 github 계정으로 Xcode를 로그인하고 SDWebImage 입력하여 검색 할 수 있습니다.
패키지를 선택한 후 종속성 유형 (태그 버전, 분기 또는 커밋)을 선택할 수 있습니다. 그러면 Xcode가 모든 것을 설정합니다.
프레임 워크 저자이고 sdwebimage를 종속성으로 사용하는 경우 Package.swift 파일을 업데이트하십시오.
let package = Package (
// 5.1.0 ..< 6.0.0
dependencies : [
. package ( url : " https://github.com/SDWebImage/SDWebImage.git " , from : " 5.1.0 " )
] ,
// ...
)5.19.2에서 SDWebimage는 GitHub 릴리스 페이지에 표준 공식 바이너리 XCFramework를 제공합니다.
동적 링크 된 링크 또는 static-inked one에 대한 SDWebImage-dynamic.xcframework.zip SDWebImage-static.xcframework.zip 하도록 선택할 수 있습니다.
압축 된 .xcframework Xcode 프로젝트의 프레임 워크 탭으로 드래그하십시오.
Xcode 15에서 Apple은 공급망 공격을 피하기 위해 이진 XCFramework의 서명을 확인합니다.
지문은 현재 FC 3B 10 13 86 34 4C 50 DB 70 2A 9A D1 01 6F B5 1A 3E CC 8B 9D A9 B7 AE 47 A0 48 D4 D0 63 39 83 이어야합니다.
인증서는 여기에서 저장소에 저장됩니다
공개 키는 여기에 저장소에 저장됩니다
자세한 내용 : XCFramework의 기원을 확인하십시오
sudo xcode-select -s /path/to/Xcode.app
또는
export DEVELOPER_DIR=/path/to/Xcode.app/Contents/Developer
./Scripts/build-frameworks.sh
./Scripts/create-xcframework.sh
// https://developer.apple.com/support/third-party-SDK-requirements/
codesign --timestamp -v --sign "your own certificate" SDWebImage.xcframework
Wiki : Manual 설치 안내서에 대한 자세한 내용을 참조하십시오
라이브러리를 사용해야하는 소스 파일에서 우산 헤더 파일을 가져 오십시오.
# import < SDWebImage/SDWebImage.h > Cocoapods (Enable modular_headers )/Carthage/SwiftPM에서 사용할 수있는 모듈 Import Syntax를 사용하는 것이 좋습니다.
@import SDWebImage;
이 시점에서 작업 공간은 오류없이 빌드해야합니다. 문제가있는 경우 문제에 대해 게시하면 커뮤니티가 문제를 해결하는 데 도움이 될 수 있습니다.
Xcode 15에서 개인 정보 보호 세부 정보는 새로운 PrivacyInfo.xcprivacy 파일을 제공합니다. 개인 정보 매니페스트에서 데이터 사용 설명을 참조하십시오.
swiftpm/xcframework 또는 cocoapods를 통해 sdwebimage를 통합하여 앱을 보관 한 후 개인 정보 보호 보고서를 내보낼 수 있습니다 ( use_frameworks set to True).
이전 버전의 경우 또는 App Store의 App Privacy 세부 사항에 따라 STATIC AR Archive를 사용하는 경우 SDWebImage의 데이터 수집 사례 목록이 있습니다.
이미 SDWebimage에 기여한 모든 사람들에게 감사합니다.
모든 소스 코드는 MIT 라이센스에 따라 라이센스가 부여됩니다.
기여를위한 SDWebimage의 아키텍처 설계에 대해 알아 보려면 SDWebimage v5.6 아키텍처의 핵심을 읽으십시오. 게시물과 번역에 감사드립니다.