요청 없이 아이콘 변경(iOS 10.3)
개시하다
요즘에는 계절과 활동에 따라 앱 아이콘을 바꾸는 앱이 자주 눈에 띈다.
지금까지 앱 신청 후 변경 필요
iOS10.3부터 신청하지 않아 프로그램의 아이콘을 변경할 수 있습니다.
나는 트위터의 아이콘을 페이스북의 아이콘으로 바꾸려고 했다.
Alternate Icons
UIApplication Extension에 추가된 것 같습니다.
UIApplication.hextension UIApplication {
// If false, alternate icons are not supported for the current process.
@available(iOS 10.3, *)
open var supportsAlternateIcons: Bool { get }
// Pass `nil` to use the primary application icon. The completion handler will be invoked asynchronously on an arbitrary background queue; be sure to dispatch back to the main queue before doing any further UI work.
@available(iOS 10.3, *)
open func setAlternateIconName(_ alternateIconName: String?, completionHandler: ((Error?) -> Swift.Void)? = nil)
// If `nil`, the primary application icon is being used.
@available(iOS 10.3, *)
open var alternateIconName: String? { get }
}
setAlternateIconName(_:completionHandler:) - UIApplication | Apple Developer Documentation
아이콘 변경 사항은 배경 상태에만 적용됩니다.
수정 후에 대화상자에서 사용자에게 알립니다.
이루어지다
extension UIApplication {
// If false, alternate icons are not supported for the current process.
@available(iOS 10.3, *)
open var supportsAlternateIcons: Bool { get }
// Pass `nil` to use the primary application icon. The completion handler will be invoked asynchronously on an arbitrary background queue; be sure to dispatch back to the main queue before doing any further UI work.
@available(iOS 10.3, *)
open func setAlternateIconName(_ alternateIconName: String?, completionHandler: ((Error?) -> Swift.Void)? = nil)
// If `nil`, the primary application icon is being used.
@available(iOS 10.3, *)
open var alternateIconName: String? { get }
}
1. 등록 아이콘
아이콘은 자산 디렉터리를 사용할 수 없습니다.
그래서 나는 프로젝트의 아래에 저장했다.
2. Info.plist에 필요한 항목 등록
(1) Add Row에 행을 추가하고 아이콘 파일(iOS 5)을 선택합니다.
(2) Premiary Icon>Icon files>Item0에 기본 아이콘 이름을 입력합니다.
(3) 교체 아이콘에 CFBundleAlternateIcons를 추가합니다.
(4) CFBundleAlternateIcons > 임의의 이름을 입력합니다.
(5) CFBundleAlternateIcons > 임의의 이름 > CFBundleIconFiles > Item0으로 교체된 파일 이름을 추가합니다.
이번에는 페이스북 아이콘, 인스타그램 아이콘.
이 값은 소스 코드에 사용됩니다.
3. 아이콘 변경 처리 실현
버튼을 클릭하여 아이콘을 수정합니다.
ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func didTapChangeIcon(_ sender: UIButton) {
// Info.plist で設定した値
let iconName = "facebook Icon"
UIApplication.shared.setAlternateIconName(iconName) { error in
if let error = error {
print(error.localizedDescription)
}
print("Done!")
}
}
}
총결산
시계나 달력 애플리케이션처럼 동적으로 변경할 수는 없지만
계절과 활동에 따라 아이콘을 바꾸고 싶을 때 활용할 수 있을 것 같아요.
참고 자료
Swift World: Change your app’s icon programmatically in iOS 10.3
신청 없이 iOS 앱 아이콘 바로 변경?!Alternate Icons의
Reference
이 문제에 관하여(요청 없이 아이콘 변경(iOS 10.3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/eKushida/items/8ba40ddbb451df61752f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Swift World: Change your app’s icon programmatically in iOS 10.3
신청 없이 iOS 앱 아이콘 바로 변경?!Alternate Icons의
Reference
이 문제에 관하여(요청 없이 아이콘 변경(iOS 10.3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/eKushida/items/8ba40ddbb451df61752f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)