다음을 통해 공유


iOS 및 tvOS용 .NET의 대체 앱 아이콘

Apple에는 앱에서 아이콘을 관리할 수 있는 여러 UIApplication API가 있습니다.

  • UIApplication.SupportsAlternateIcons - true 경우 앱에 대체 아이콘 집합이 있습니다.
  • UIApplication.AlternateIconName - 현재 선택된 대체 아이콘의 이름을 반환하거나 기본 아이콘을 사용하는 경우 null.
  • UIApplication.SetAlternateIconName - 이 메서드를 사용하여 앱의 아이콘을 지정된 대체 아이콘으로 전환합니다.
  • UNUserNotificationCenter.Current.SetBadgeCount - Springboard에서 앱 아이콘의 배지 수를 설정합니다(iOS 16 이상 및 tvOS 16 이상에서는 사용되지 않음).

앱에서 아이콘 변경할 때 샘플 경고

.NET 프로젝트에 대체 아이콘 추가

앱이 대체 아이콘으로 전환할 수 있도록 하려면 아이콘 이미지 컬렉션이 있는 새 .appiconset 폴더를 프로젝트의 자산 카탈로그에 포함해야 합니다.

  1. Finder에서 프로젝트의 자산 카탈로그(Assets.xcassets)를 엽니다.

    자산 카탈로그 열기

  2. 기존 AppIcon.appiconset 폴더의 복사본을 만듭니다.

    appiconset 폴더 복사

  3. 복사한 폴더의 각 아이콘을 일치하는 크기의 새 아이콘으로 바꿉다.

    새 아이콘 만들기

  4. AppIcon 속성을 사용하여 프로젝트 파일에 앱 아이콘을 추가합니다.

    <PropertyGroup>
        <AppIcon>AppIcon</AppIcon>
    </PropertyGroup>
    

    메모

    기존 프로젝트는 일반적으로 Info.plist 파일의 XSAppIconAssets 키를 사용하여 앱 아이콘을 지정합니다. 이 키는 계속 사용할 수 있지만 대신 프로젝트 파일의 AppIcon 속성으로 전환하는 것이 좋습니다(값이 리소스 경로가 아닌 아이콘의 이름이므로 더 간단함).

  5. AlternativeAppIcons 항목 그룹을 사용하여 프로젝트 파일에 대체 아이콘을 추가합니다.

    <ItemGroup>
        <AlternativeAppIcon Include="AlternativeAppIcons" />
    </ItemGroup>
    

앱의 아이콘 관리

.NET 프로젝트에 포함된 아이콘 이미지를 사용하여 개발자는 앱의 아이콘을 제어하는 다음과 같은 방법을 사용할 수 있습니다.

UIApplication 클래스의 SupportsAlternateIcons 속성을 통해 개발자는 앱이 대체 아이콘을 지원하는지 확인할 수 있습니다. 예를 들어:

// Can the app select a different icon?
primaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
alternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;

UIApplication 클래스의 ApplicationIconBadgeNumber 속성을 사용하면 개발자가 Springboard에서 앱 아이콘의 현재 배지 번호를 얻거나 설정할 수 있습니다. 기본값은 0입니다. 예를 들어:

// Set the badge number to 1
var badgeCount = 1;
UNUserNotificationCenter.Current.SetBadgeCount (badgeCount, (error) => {
    Console.WriteLine ($"Set badge count to {badgeCount}: {(error is null ? "successfully" : error.ToString ())}");
}

메모

iOS에서는 UNUserNotificationCenter.SetBadgeCount에 대해 사용자 권한이 필요하며, 이는 배지 수를 설정하기 전에 UNUserNotificationCenter.Current.RequestAuthorization을 호출하여 획득할 수 있습니다.

UIApplication 클래스의 AlternateIconName 속성을 사용하면 개발자가 현재 선택한 대체 앱 아이콘의 이름을 가져올 수 있으며 앱에서 기본 아이콘을 사용하는 경우 null 반환합니다. 예를 들어:

// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;

if (name != null ) {
    // Do something with the name
}

UIApplication 클래스의 SetAlternameIconName 속성을 사용하면 개발자가 앱 아이콘을 변경할 수 있습니다. 아이콘의 이름을 전달하여 선택하고 null를 사용하여 기본 아이콘으로 돌아갑니다. 예를 들어:

void UsePrimaryIcon (Foundation.NSObject sender)
{
    UIApplication.SharedApplication.SetAlternateIconName (null, (error) => {
        Console.WriteLine ($"Set Primary Icon: {(error is null ? "successfully" : error.ToString ())}");
    });
}

void UseAlternateIcon (Foundation.NSObject sender)
{
    UIApplication.SharedApplication.SetAlternateIconName ("AlternateAppIcons", (error) => {
        Console.WriteLine ($"Set Alternate Icon: {(error is null ? "successfully" : error.ToString ())}");
    });
}

앱이 실행되고 사용자가 대체 아이콘을 선택하면 다음과 같은 경고가 표시됩니다.

앱에서 아이콘 변경할 때 샘플 경고

사용자가 기본 아이콘으로 다시 전환하면 다음과 같은 경고가 표시됩니다.

앱이 기본 아이콘 변경되는 경우 샘플 경고

참고