Xamarin.iOS에서 IPA 지원

이 문서에서는 테스트 또는 내부 애플리케이션의 사내 배포를 위해 임시 배포를 사용하여 애플리케이션을 배포하는 데 사용할 수 있는 IPA 파일을 만드는 방법에 대해 설명합니다.

iTunes 앱 스토어를 통해 판매할 애플리케이션을 릴리스하는 것 외에도 다음 용도로 배포할 수 있습니다.

  • 임시 테스트 - 알파 및 베타 테스트 목적으로 iOS 애플리케이션을 최대 100명의 사용자(특정 iOS 디바이스 UUID로 식별)에게 배포할 수 있습니다. Apple iOS 디바이스를 Apple 개발자 계정에 추가하는 방법에 대한 자세한 내용은 개발용 iOS 디바이스 프로비전 설명서를 참조하고, 이 방식으로 배포하는 방법에 대한 자세한 내용은 임시 가이드를 참조하세요.
  • 사내/엔터프라이즈 배포 - iOS 애플리케이션은 Apple의 Developer Enterprise 프로그램 구성원 자격이 필요한 회사 내에서 내부적으로 배포할 수 있습니다. 사내 배포에 대한 자세한 내용은 사내 배포 가이드에서 자세히 설명하고 있습니다.

두 경우 모두에서 올바른 배포 프로비전 프로필을 사용하여 IPA 패키지(특수 유형의 zip 파일)를 만들고 디지털 서명해야 합니다. 이 문서에서는 Mac 또는 Windows PC에서 iTunes를 사용하여 IPA 패키지를 빌드하고 iOS 디바이스에 패키지를 설치하는 데 필요한 단계에 대해 설명합니다.

iTunesMetadata.plist 파일

iOS 애플리케이션(iTunes 앱 스토어의 판매 또는 무료 릴리스용)이 iTunes Connect에 만들어지면, 개발자가 애플리케이션의 장르, 하위 장르, 저작권 표시, 지원되는 iOS 디바이스 및 필요한 디바이스 기능과 같은 정보를 지정할 수 있습니다.

임시 또는 사내 배포를 통해 제공되는 iOS 애플리케이션에는 iTunes 및 사용자 디바이스에 표시될 수 있도록 이 정보를 지원하는 몇 가지 방법이 필요합니다. 기본적으로 프로젝트를 빌드할 때마다 작은 iTunesMetadata.plist 파일이 만들어지며 프로젝트 디렉터리에 저장됩니다.

또한 추가 정보를 배포에 제공하기 위해 사용자 지정 iTunesMetadata.plist를 만들 수도 있습니다. 이 파일의 내용 및 만드는 방법에 대한 자세한 내용은 iTunesMetadata.plist 내용iTunesMetadata.plist 파일 만들기 설명서를 참조하세요.

iTunes 아트워크

앱 스토어 이외의 수단을 통해 앱을 배달하는 경우 iTunes에서 애플리케이션을 나타내는 데 사용할 512x512 및 1024x1024 이미지도 포함해야 합니다.

iTunes 아트워크를 지정하려면 다음을 수행합니다.

  1. 편집하기 위해 솔루션 탐색기에서 Info.plist 파일을 두 번 클릭하여 엽니다.
  2. 편집기의 iTunes 아트워크 섹션으로 스크롤합니다.
  3. 누락된 이미지가 있는 경우 편집기에서 썸네일을 클릭하고, 파일 열기 대화 상자에서 원하는 iTunes 아트워크에 대한 이미지 파일을 선택하고, 확인 또는 열기 단추를 누릅니다.
  4. 애플리케이션에 필요한 이미지를 모두 지정할 때까지 이 단계를 반복합니다.

자세한 내용은 iTunes 아트워크 설명서를 참조하세요.

IPA 만들기

IPA 만들기는 이제 새 게시 워크플로에 내장됩니다. 이렇게 하려면 아래 지침에 따라 앱을 보관하고, 서명한 다음, IPA를 저장합니다.

플랫폼 간 솔루션용 IPA를 만들기 시작하기 전에 iOS 프로젝트를 시작 프로젝트로 선택했는지 확인합니다.

Selected the iOS project as the startup project

보관 빌드

IPA를 빌드하려면 애플리케이션의 릴리스 빌드에 대한 보관을 만들어야 합니다. 이 보관에는 앱 및 이를 식별하는 정보가 포함됩니다.

  1. Mac용 Visual Studio에서 릴리스 | 디바이스 구성을 선택합니다.

    Select the Release | Device configuration

  2. 빌드 메뉴에서 게시를 위해 보관을 선택합니다.

    Select Archive for Publishing

  3. 보관이 만들어지면 보관 보기가 표시됩니다.

    The Archives view will be displayed

앱 서명 및 배포

보관용 애플리케이션을 빌드할 때마다 보관 보기가 자동으로 열리고, 보관된 모든 프로젝트가 솔루션별로 그룹화되어 표시됩니다. 이 보기에는 기본적으로 현재 열려 있는 솔루션만 표시됩니다. 보관이 있는 솔루션을 모두 보려면 모든 보관 표시 옵션을 클릭합니다.

나중에 생성된 모든 디버그 정보를 기호로 나타낼 수 있도록 고객에게 배포된 보관 파일(임시 또는 사내 배포)을 유지하는 것이 좋습니다.

앱 스토어가 아닌 경우 iTunesMetadata.plist 파일을 빌드하고, iTunes 아트워크 집합이 보관에 있는 경우 IPA에 자동으로 포함됩니다.

앱에 서명하고 배포할 준비를 하려면 다음을 수행합니다.

  1. 아래 그림과 같이 서명 및 배포... 단추를 선택합니다.

    Select Sign and Distribute...

  2. 그러면 게시 마법사가 열립니다. 임시 또는 엔터프라이즈(사내) 배포 채널을 선택하여 패키지를 만듭니다.

    Select the Ad-Hoc or Enterprise In-House distribution

  3. [프로비전 프로필] 화면에서 서명 ID 및 해당 프로비전 프로필을 선택하거나 다른 ID로 다시 서명합니다.

    Select the signing identity and corresponding provisioning profile

  4. 패키지의 세부 정보를 확인하고 게시를 클릭합니다.

    Verify the package details

  5. 마지막으로 IPA를 컴퓨터에 저장합니다.

    Save the IPA to the computer

명령줄을 통한 빌드(Mac에서)

CI 환경과 같은 경우에는 명령줄을 통해 IPA를 빌드해야 할 수도 있습니다. 이렇게 하려면 아래 단계를 수행합니다.

  1. 프로젝트 옵션 > iOS IPA 옵션 > 포함 iTunesArtwork 이미지가 검사 및 IPA(빌드 임시/엔터프라이즈 패키지)가 검사 있는지 확인합니다.

    Include iTunesArtwork images and Build ad-hoc/enterprise package IPA is checked

    대신, 원하는 경우 텍스트 편집기에서 .csproj 파일을 편집하고, 앱을 빌드하는 데 사용될 구성에 대한 두 개의 해당 속성을 PropertyGroup에 수동으로 추가할 수 있습니다.

    <BuildIpa>true</BuildIpa>
    <IpaIncludeArtwork>false</IpaIncludeArtwork>
    
  2. 선택적 iTunesMetadata.plist 파일을 포함하는 경우 ... 단추를 클릭하고, 목록에서 이 파일을 선택하고, 확인 단추를 클릭합니다.

    Select iTunesMetadata.plist from the list

  3. msbuild를 직접 호출하고 명령줄에서 이 속성을 전달합니다.

    /Library/Frameworks/Mono.framework/Commands/msbuild YourSolution.sln /p:Configuration=Ad-Hoc /p:Platform=iPhone /p:BuildIpa=true
    

IPA 위치 사용자 지정

.ipa 파일 출력 위치를 쉽게 사용자 지정할 수 있도록 새로운 IpaPackageDirMSBuild 속성이 추가되었습니다. IpaPackageDir을 사용자 지정 위치로 설정하면 .ipa 파일이 기본 타임스탬프가 적용된 하위 디렉터리 대신 해당 위치에 배치됩니다. 이는 CI(지속적인 통합) 빌드에 사용되는 것과 같이 특정 디렉터리 경로를 올바르게 사용하도록 자동화된 빌드를 만들 때 유용할 수 있습니다.

새 속성을 사용하는 방법에는 여러 가지가 있습니다.

예를 들어 .ipa 파일을 이전의 기본 디렉터리(Xamarin.iOS 9.6 이하)로 출력하려면 다음 방법 중 하나를 사용하여 IpaPackageDir 속성을 $(OutputPath)로 설정할 수 있습니다. 두 방법은 모두 IDE 빌드 및 msbuild, xbuild 또는 mdtool을 사용하는 명령줄 빌드를 포함하여 모든 Unified API Xamarin.iOS 빌드와 호환됩니다.

  • 첫 번째 옵션은 MSBuild 파일의 <PropertyGroup> 요소 내에 IpaPackageDir 속성을 설정하는 것입니다. 예를 들어 다음 <PropertyGroup>.csproj iOS 앱 프로젝트 파일의 아래쪽(닫은 </Project> 태그 바로 앞)에 추가할 수 있습니다.

    <PropertyGroup>
        <IpaPackageDir>$(OutputPath)</IpaPackageDir>
    </PropertyGroup>
    
  • .ipa 파일을 빌드하는 데 사용되는 구성에 해당하는 기존 <PropertyGroup>의 아래쪽에 <IpaPackageDir> 요소를 추가하는 것이 더 좋습니다. 이는 iOS IPA 옵션 프로젝트 속성 페이지에서 계획된 설정과의 향후 호환성을 위해 프로젝트를 준비하기 때문입니다. 현재 Release|iPhone 구성을 사용하여 .ipa 파일을 빌드하는 경우 업데이트된 속성 그룹 전체는 다음과 비슷할 수 있습니다.

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
        <Optimize>true</Optimize>
        <OutputPath>bin\iPhone\Release</OutputPath>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
        <ConsolePause>false</ConsolePause>
        <CodesignKey>iPhone Developer</CodesignKey>
        <MtouchUseSGen>true</MtouchUseSGen>
        <MtouchUseRefCounting>true</MtouchUseRefCounting>
        <MtouchFloat32>true</MtouchFloat32>
        <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
        <MtouchLink>SdkOnly</MtouchLink>
        <MtouchArch>;ARMv7, ARM64</MtouchArch>
        <MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
        <MtouchTlsProvider>Default</MtouchTlsProvider>
        <PlatformTarget>x86&</PlatformTarget>
        <BuildIpa>true</BuildIpa>
        <IpaPackageDir>$(OutputPath)</IpaPackageDir>
    </PropertyGroup>
    

msbuild 또는 xbuild 명령줄 빌드에 대한 또 다른 방법은 /p: 인수를 추가하여 IpaPackageDir 속성을 설정하는 것입니다. 이 경우 msbuild는 명령줄에서 전달된 $() 식을 확장하지 않으므로 $(OutputPath) 구문을 사용할 수 없습니다. 대신 전체 경로 이름을 제공해야 합니다. Mono의 xbuild 명령은 $() 식을 확장하지만 플랫폼 간 버전의 msbuild를 선호하여 xbuild는 사용 중단되었므로 전체 경로 이름을 사용하는 것이 좋습니다.

이 방법을 사용하는 전체 예제는 Windows에서 다음과 비슷하게 보일 수 있습니다.

msbuild /p:Configuration="Release" /p:Platform="iPhone" /p:ServerAddress="192.168.1.3" /p:ServerUser="macuser" /p:IpaPackageDir="%USERPROFILE%\Builds" /t:Build SingleViewIphone1.sln

또는 Mac에서 다음과 같습니다.

msbuild /p:Configuration="Release" /p:Platform="iPhone" /p:IpaPackageDir="$HOME/Builds" /t:Build SingleViewIphone1.sln

iTunes를 사용하여 IPA 설치

결과 IPA 패키지는 테스트 사용자에게 전달되어 iOS 디바이스에 설치하거나 엔터프라이즈 배포용으로 제공될 수 있습니다. 선택된 방법에 관계없이 최종 사용자는 IPA 파일을 두 번 클릭하거나 열려 있는 iTunes 창으로 끌어서 Mac 또는 Windows PC의 iTunes 애플리케이션에 패키지를 설치합니다.

새 iOS 애플리케이션은 My Apps 섹션에 표시되며, 여기서 마우스 오른쪽 단추를 클릭하고 애플리케이션에 대한 정보를 얻을 수 있습니다.

이제 사용자는 iTunes를 자신의 디바이스와 동기화하여 새 iOS 애플리케이션을 설치할 수 있습니다.

요약

이 문서에서는 앱 스토어 이외의 빌드를 위한 Xamarin.iOS 애플리케이션을 준비하는 데 필요한 설정에 대해 설명했습니다. IPA 패키지를 만드는 방법 및 테스트 또는 사내 배포를 위해 최종 사용자의 iOS 디바이스에 결과 iOS 애플리케이션을 설치하는 방법을 보여 주었습니다.