Notice
Recent Posts
Recent Comments
Link
투케이2K
105. (ios/swift) 앱 런처 대표 아이콘 동적으로 변경 실시 - setAlternateIconName 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[방법 설명]
[소스 코드]
func changeAppIcon(iconName:String) {
/*
MARK: [참고 사항]
1. info.plist 에 동적으로 변경하려는 아이콘을 등록해야합니다
2. 동적으로 변경하려는 아이콘을 프로젝트에 추가해야합니다
3. 동적 아이콘 변경은 ios 10.3 버전 이상부터 사용할 수 있습니다
4. 호출 방법 : [실제 디바이스 기기에서 확인 필요]
- self.changeAppIcon(iconName: "") // 기본 Assets 에서 설정한 아이콘 지정 실시
- self.changeAppIcon(iconName: "Icon1") // info.plist 에서 지정한 동적 파일 KEY
5. info.plist 지정 KEY :
- Icon files (iOS 5) >> 설정 시 자동으로 Newsstand Icon , Primary Icon 추가 목록 표시가 보임
- CFBundleAlternateIcons >> Icon1 (뷰컨트롤러에서 호출할 이름) >> CFBundleIconFiles >> icon1 (이미지 파일명)
*/
// MARK: [iOS 특정 버전 이상 분기 처리 사용]
if #available(iOS 10.3, *) {
print("")
print("===============================")
print("[ViewController >> changeAppIcon() :: 앱 아이콘 동적 변경 실시]")
print("===============================")
print("")
// MARK: [멀티 icon 지원여부 체크]
guard UIApplication.shared.supportsAlternateIcons
else {
print("")
print("===============================")
print("[ViewController >> changeAppIcon() :: 앱 아이콘 동적 변경 실패]")
print("error [에러] :: 멀티 아이콘을 지원하지 않습니다")
print("===============================")
print("")
return
}
// MARK: [앱 아이콘 길이 확인 및 기본 Assets 아이콘 표시 , 동적 아이콘 변경 실시]
if iconName != nil && iconName.count>0 { // MARK: [동적 아이콘 변경하기]
DispatchQueue.main.async {
UIApplication.shared.setAlternateIconName(iconName) { (iconChangeError) in
if let error = iconChangeError {
// [에러 발생]
print("")
print("===============================")
print("[ViewController >> changeAppIcon() :: 앱 아이콘 동적 변경 실패]")
print("error [에러] :: ", error.localizedDescription)
print("===============================")
print("")
}
else {
print("")
print("===============================")
print("[ViewController >> changeAppIcon() :: 앱 아이콘 동적 변경 성공]")
print("success [성공] :: ", "변경된 앱 아이콘을 확인해주세요")
print("===============================")
print("")
}
}
}
}
else { // MARK: [기본 아이콘 설정 하기]
DispatchQueue.main.async {
UIApplication.shared.setAlternateIconName(nil) { (iconChangeError) in
if let error = iconChangeError {
// [에러 발생]
print("")
print("===============================")
print("[ViewController >> changeAppIcon() :: 앱 기본 아이콘 설정 실패]")
print("error [에러] :: ", error.localizedDescription)
print("===============================")
print("")
}
else {
print("")
print("===============================")
print("[ViewController >> changeAppIcon() :: 앱 기본 아이콘 설정 성공]")
print("success [성공] :: ", "앱 기본 아이콘으로 설정되었습니다")
print("===============================")
print("")
}
}
}
}
}
else { // MARK: [iOS 10.3 버전 미만 인 경우 분기 처리 내용]
print("")
print("===============================")
print("[ViewController >> changeAppIcon() :: 앱 아이콘 동적 변경 실패]")
print("error [에러] :: ios 10.3 미만 단말기")
print("===============================")
print("")
}
}
[결과 출력]
반응형
'IOS' 카테고리의 다른 글
Comments