Intune 앱 래핑 도구를 사용하여 앱 보호 정책을 위한 iOS 앱 준비

iOS용 Microsoft Intune App Wrapping Tool 사용하여 앱 자체의 코드를 변경하지 않고 사내 iOS 앱에 대한 Intune 앱 보호 정책을 사용하도록 설정합니다.

이 도구는 앱 주위에 래퍼를 만드는 macOS 명령줄 애플리케이션입니다. 앱이 처리되면 앱 보호 정책을 배포하여 앱의 기능을 변경할 수 있습니다.

도구를 다운로드하려면 GitHub의 iOS용 Microsoft Intune App Wrapping Tool 참조하세요.

참고

앱에서 Intune App Wrapping Tool 사용하는 데 문제가 있는 경우 GitHub에서 지원 요청을 제출합니다.

App Wrapping Tool 대한 일반적인 필수 구성 요소

App Wrapping Tool 실행하기 전에 몇 가지 일반적인 필수 조건을 충족해야 합니다.

  • GitHub에서 iOS용 Microsoft Intune App Wrapping Tool 다운로드합니다.

  • Xcode 도구 집합 버전 14.0 이상이 설치된 macOS 컴퓨터입니다.

  • 입력 iOS 앱은 회사 또는 ISV(독립 소프트웨어 공급업체)에서 개발 및 서명해야 합니다.

    • 입력 앱 파일에 확장명이 .ipa 또는 .app이어야 합니다.

    • iOS 14.0 이상용으로 입력 앱을 컴파일해야 합니다.

    • 입력 앱을 암호화할 수 없습니다.

    • 입력 앱에는 확장된 파일 특성이 있을 수 없습니다.

    • 입력 앱에는 Intune App Wrapping Tool 의해 처리되기 전에 자격이 설정되어 있어야 합니다. 권한은 앱에 일반적으로 부여된 권한과 기능 외에 더 많은 권한과 기능을 제공합니다. 지침 은 앱 권한 설정을 참조하세요.

  • 시스템 키체인 유효한 서명 인증서가 있는지 확인합니다. 앱 코드 서명 문제가 있는 경우 다음 단계를 사용하여 resolve.
    • 모든 관련 인증서에 대한 신뢰 설정 다시 설정
    • 시스템 키체인 중간 인증서 설치 및 로그인 키체인
    • 관련된 모든 인증서 제거 및 다시 설치

Microsoft Entra ID로 앱 등록

  1. Microsoft Entra ID로 앱을 등록합니다. 자세한 내용은 Microsoft ID 플랫폼 애플리케이션 등록을 참조하세요.
  2. 앱 설정에 사용자 지정 리디렉션 URL을 추가합니다. 자세한 내용은 MSAL 구성을 참조하세요.
  3. 앱에 Intune MAM 서비스에 대한 액세스 권한을 부여합니다. 자세한 내용은 앱에 Intune 모바일 앱 관리 서비스에 대한 액세스 권한 부여를 참조하세요.
  4. 위의 변경 내용이 완료되면 최신 버전의 Intune 앱 래핑 도구를 실행합니다. MSAL(Microsoft 인증 라이브러리)용 앱 구성: Intune App Wrapping Tool 사용하여 명령줄 매개 변수에 Microsoft Entra 애플리케이션 클라이언트 ID를 추가합니다. 자세한 내용은 명령줄 매개 변수를 참조하세요.

참고

및 매개 변수 -ac-ar 는 필수 매개 변수입니다. 각 앱에는 이러한 매개 변수의 고유한 집합이 필요합니다. -aa 는 단일 테넌트 애플리케이션에만 필요합니다.

  1. 앱을 배포합니다.

App Wrapping Tool 대한 Apple 개발자 필수 구성 요소

래핑된 앱을 organization 사용자에게만 배포하려면 Apple 개발자 엔터프라이즈 프로그램 계정과 Apple 개발자 계정에 연결된 앱 서명을 위한 여러 엔터티가 필요합니다.

organization 사용자에게 iOS 앱을 내부적으로 배포하는 방법에 대한 자세한 내용은 Apple 개발자 엔터프라이즈 프로그램 앱 배포에 대한 공식 가이드를 참조하세요.

Intune으로 래핑된 앱을 배포하려면 다음이 필요합니다.

  • Apple Developer Enterprise Program을 사용하는 개발자 계정입니다.

  • 유효한 팀 식별자를 사용하는 사내 및 임시 배포 서명 인증서입니다.

    • Intune App Wrapping Tool 대한 매개 변수로 서명 인증서의 SHA1 해시가 필요합니다.
  • 사내 배포 프로비저닝 프로필.

Apple Developer Enterprise 계정을 만드는 단계

  1. Apple 개발자 엔터프라이즈 프로그램 사이트로 이동합니다.

  2. 페이지 오른쪽 위에서 등록을 클릭합니다.

  3. 등록해야 하는 항목의 검사 목록을 읽어보세요. 페이지 아래쪽에서 등록 시작을 클릭합니다.

  4. organization Apple ID로 로그인합니다. 없는 경우 Apple ID 만들기를 클릭합니다.

  5. 엔터티 유형을 선택하고 계속을 클릭합니다.

  6. organization 정보를 사용하여 양식을 작성합니다. 계속을 클릭합니다. 이 시점에서 Apple은 사용자에게 연락하여 organization 등록할 권한이 있는지 확인합니다.

  7. 확인 후 라이선스 동의를 클릭합니다.

  8. 라이선스에 동의한 후 프로그램을 구매하고 활성화하여 완료합니다.

  9. 팀 에이전트(organization 대신하여 Apple 개발자 엔터프라이즈 프로그램에 참여하는 사람)인 경우 먼저 팀 구성원을 초대하고 역할을 할당하여 팀을 빌드합니다. 팀을 관리하는 방법을 알아보려면 개발자 계정 팀 관리에 대한 Apple 설명서를 참조하세요.

Apple 서명 인증서를 만드는 단계

  1. Apple 개발자 포털로 이동합니다.

  2. 페이지 오른쪽 위에서 계정을 클릭합니다.

  3. 조직 Apple ID로 로그인합니다.

  4. 인증서, ID & 프로필을 클릭합니다.

    Apple 개발자 포털 - 인증서, ID & 프로필

  5. Apple 개발자 포털을 클릭하고 오른쪽 위 모서리에 로그인하여 iOS 인증서를 추가합니다.

  6. 프로덕션에서 사내 및 임시 인증서를 만들도록 선택합니다.

    In-House 및 임시 인증서 선택

    참고

    앱을 배포하지 않고 내부적으로만 테스트하려는 경우 프로덕션용 인증서 대신 iOS 앱 개발 인증서를 사용할 수 있습니다. 개발 인증서를 사용하는 경우 모바일 프로비저닝 프로필이 앱을 설치할 디바이스를 참조하는지 확인합니다.

  7. 페이지 아래쪽에서 다음 을 클릭합니다.

  8. macOS 컴퓨터에서 키 집합 액세스 애플리케이션을 사용하여 CSR(인증서 서명 요청) 을 만드는 방법에 대한 지침을 읽어보세요.

    CSR을 만드는 지침을 읽습니다.

  9. 위의 지침에 따라 인증서 서명 요청을 만듭니다. macOS 컴퓨터에서 키 집합 액세스 애플리케이션을 시작합니다.

  10. 화면 위쪽의 macOS 메뉴에서 키 집합 액세스 > 인증서 도우미 > 인증 기관에서 인증서 요청으로 이동합니다.

    키 집합 액세스의 인증 기관에서 인증서 요청

  11. CSR 파일을 만드는 방법에 대한 위의 Apple 개발자 사이트의 지침을 따릅니다. cSR 파일을 macOS 컴퓨터에 저장합니다.

    요청하는 인증서에 대한 정보를 입력합니다.

  12. Apple 개발자 사이트로 돌아갑니다. 계속을 클릭합니다. 그런 다음, CSR 파일을 업로드합니다.

  13. Apple은 서명 인증서를 생성합니다. macOS 컴퓨터의 기억에 남는 위치에 다운로드하여 저장합니다.

    서명 인증서 다운로드

  14. 방금 다운로드한 인증서 파일을 두 번 클릭하여 인증서를 키체인 추가합니다.

  15. 키 집합 액세스를 다시 엽니다. 오른쪽 위 검색 창에서 해당 이름을 검색하여 인증서를 찾습니다. 항목을 마우스 오른쪽 단추로 클릭하여 메뉴를 표시하고 정보 가져오기를 클릭합니다. 예제 화면에서는 프로덕션 인증서 대신 개발 인증서를 사용합니다.

    키체인 인증서 추가

  16. 정보 창이 나타납니다. 아래쪽으로 스크롤하여 지문 레이블 아래 를 확인합니다 . SHA1 문자열(흐리게 표시됨)을 복사하여 App Wrapping Tool "-c"의 인수로 사용합니다.

    iPhone 정보 - 지문 SHA1 문자열

In-House 배포 프로비저닝 프로필을 만드는 단계

  1. Apple 개발자 계정 포털에 돌아가기 조직 Apple ID로 로그인합니다.

  2. 인증서, ID & 프로필을 클릭합니다.

  3. Apple 개발자 포털을 클릭하고 오른쪽 위 모서리에 로그인하여 iOS 프로비저닝 프로필을 추가합니다.

  4. 배포에서 In House 프로비저닝 프로필을 만들도록 선택합니다.

    In House 프로비저닝 프로필을 선택합니다.

  5. 계속을 클릭합니다. 이전에 생성된 서명 인증서를 프로비전 프로필에 연결해야 합니다.

  6. 단계에 따라 프로필(확장 .mobileprovision 포함)을 macOS 컴퓨터에 다운로드합니다.

  7. 파일을 기억에 남는 위치에 저장합니다. 이 파일은 App Wrapping Tool 사용하는 동안 -p 매개 변수에 사용됩니다.

App Wrapping Tool 다운로드

  1. GitHub에서 macOS 컴퓨터로 App Wrapping Tool 파일을 다운로드합니다.

  2. iOS.dmg용 애플리케이션 제한 패키지 Microsoft Intune 두 번 클릭합니다. EULA(최종 사용자 사용권 계약)가 있는 창이 나타납니다. 문서를 주의 깊게 읽습니다.

  3. 동의를 선택하여 패키지를 컴퓨터에 탑재하는 EULA를 수락합니다.

App Wrapping Tool 실행

중요

Intune은 Intune App Wrapping Tool 업데이트를 정기적으로 릴리스합니다. 업데이트를 위해 iOS용 Intune App Wrapping Tool 정기적으로 검사 소프트웨어 개발 릴리스 주기에 통합하여 앱이 최신 앱 보호 정책 설정을 지원하도록 합니다.

터미널 사용

macOS 터미널을 열고 다음 명령을 실행합니다.

/Volumes/IntuneMAMAppPackager/IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> -p /<path to provisioning profile> -c <SHA1 hash of the certificate> [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>]

참고

일부 매개 변수는 다음 표와 같이 선택 사항입니다.

예제: 다음 예제 명령은 MyApp.ipa라는 앱에서 App Wrapping Tool 실행합니다. 서명 인증서의 프로비저닝 프로필 및 SHA-1 해시가 지정되고 래핑된 앱에 서명하는 데 사용됩니다. 출력 앱(MyApp_Wrapped.ipa)이 만들어지고 Desktop 폴더에 저장됩니다.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB"  -v true

명령줄 매개 변수

App Wrapping Tool 다음 명령줄 매개 변수를 사용할 수 있습니다.

예제: 다음 예제 명령은 단일 테넌트 내에서 사용할 애플리케이션을 래핑할 때 필요한 명령을 통합하여 App Wrapping Tool 실행합니다.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB" -aa https://login.microsoftonline.com/<tenantID> -ac "Client ID of the input app if the app uses the Microsoft Authentication Library" -ar "Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library"  -v true
속성 사용 방법
-나 <Path of the input native iOS application file>. 파일 이름은 .app 또는 .ipa로 끝나야 합니다.
-O <Path of the wrapped output application>
-P <Path of your provisioning profile for iOS apps>
-C <SHA1 hash of the signing certificate>
-H App Wrapping Tool 사용 가능한 명령줄 속성에 대한 자세한 사용 정보를 보여 줍니다.
-Ac <Client ID of the input app if the app uses the Microsoft Authentication Library> 앱 등록 블레이드의 앱 목록에서 클라이언트 ID 필드의 GUID입니다.
-아칸소 <Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library> 앱 등록에 구성된 리디렉션 URI입니다. 일반적으로 조정된 인증 후에 Microsoft Authenticator 앱이 반환하는 애플리케이션의 URL 프로토콜입니다.
-Aa (단일 테넌트 앱에 필요) <Authority URI of the input app>https://login.microsoftonline.com/<tenantID>/
-V (선택 사항) 자세한 메시지를 콘솔에 출력합니다. 이 플래그를 사용하여 오류를 디버그하는 것이 좋습니다.
-전자 (선택 사항) 이 플래그를 사용하여 App Wrapping Tool 앱을 처리할 때 누락된 자격을 제거하도록 합니다. 자세한 내용은 앱 권한 설정을 참조하세요.
-Xe (선택 사항) 앱의 iOS 확장에 대한 정보와 이를 사용하는 데 필요한 자격을 출력합니다. 자세한 내용은 앱 권한 설정을 참조하세요.
-X (선택 사항) <An array of paths to extension provisioning profiles>. 앱에 확장 프로비저닝 프로필이 필요한 경우 이를 사용합니다.
-B (선택 사항) 래핑된 출력 앱이 입력 앱과 동일한 번들 버전을 갖도록 하려면 인수 없이 -b를 사용합니다(권장되지 않음).

래핑된 앱에 사용자 지정 CFBundleVersion을 포함하려면 를 사용합니다 -b <custom bundle version> . 사용자 지정 CFBundleVersion을 지정하도록 선택하는 경우 네이티브 앱의 CFBundleVersion을 1.0.0 -> 1.0.1과 같은 가장 중요한 구성 요소로 증가하는 것이 좋습니다.
-F (선택 사항) <Path to a plist file specifying arguments.> plist 템플릿을 사용하여 -i, -o 및 -p와 같은 IntuneMAMPackager 속성의 나머지 부분을 지정하려면 plist 파일 앞에서 이 플래그를 사용합니다. plist를 사용하여 인수 입력을 참조하세요.
-Dt (선택 사항) Microsoft Intune 클라이언트 원격 분석의 컬렉션을 사용하지 않도록 설정합니다.
-Dl (선택 사항) MSAL과 통합된 애플리케이션에 대해 INtune 로그에서 MSAL 로그를 사용하지 않도록 설정하고 고유한 MSAL 로깅 콜백을 구현합니다.

plist를 사용하여 인수 입력

App Wrapping Tool 실행하는 쉬운 방법은 모든 명령 인수를 plist 파일에 넣는 것입니다. Plist는 양식 인터페이스를 사용하여 명령줄 인수를 입력하는 데 사용할 수 있는 XML과 유사한 파일 형식입니다.

IntuneMAMPackager/Contents/MacOS 폴더에서 텍스트 편집기 또는 Xcode를 사용하여 (빈 plist 템플릿)을 엽니다 Parameters.plist . 다음 키에 대한 인수를 입력합니다.

Plist 키 유형 기본값 참고
입력 애플리케이션 패키지 경로 String -i와 동일
출력 애플리케이션 패키지 경로 String -o와 동일
프로비저닝 프로필 경로 String -p와 동일
SHA-1 인증서 해시 String -c와 동일
MSAL 기관 String -aa와 동일
MSAL 클라이언트 ID String -ac와 동일
MSAL 회신 URI String -ar과 동일
자세한 정보 표시 사용 부울 false -v와 동일
누락된 자격 제거 부울 false -e와 동일
기본 빌드 업데이트 방지 부울 false 인수 없이 -b를 사용하는 것과 같습니다.
빌드 문자열 재정의 String 래핑된 출력 앱의 사용자 지정 CFBundleVersion
확장 프로비저닝 프로필 경로 문자열 배열 앱에 대한 확장 프로비저닝 프로필의 배열입니다.
원격 분석 사용 안 함 부울 false -dt와 동일
MSAL 로그 재정의 사용 안 함 부울 false -dl과 동일

plist를 유일한 인수로 사용하여 IntuneMAMPackager를 실행합니다.

./IntuneMAMPackager –f Parameters.plist

포스트 래핑

래핑 프로세스가 완료되면 "애플리케이션이 성공적으로 래핑되었습니다"라는 메시지가 표시됩니다. 오류가 발생하는 경우 도움말은 오류 메시지를 참조하세요.

래핑된 앱은 이전에 지정한 출력 폴더에 저장됩니다. Intune 관리 센터에 앱을 업로드하고 모바일 애플리케이션 관리 정책과 연결할 수 있습니다.

중요

래핑된 앱을 업로드할 때 이전(래핑 또는 네이티브) 버전이 Intune에 이미 배포된 경우 이전 버전의 앱을 업데이트할 수 있습니다. 오류가 발생하면 앱을 새 앱으로 업로드하고 이전 버전을 삭제합니다.

이제 사용자 그룹에 앱을 배포하고 앱 보호 정책을 앱에 대상으로 지정할 수 있습니다. 앱은 지정한 앱 보호 정책을 사용하여 디바이스에서 실행됩니다.

Intune App Wrapping Tool 사용하여 iOS 애플리케이션을 얼마나 자주 다시 래프해야 하나요?

애플리케이션을 다시 래프해야 하는 기본 시나리오는 다음과 같습니다.

  • 애플리케이션 자체가 새 버전을 릴리스했습니다. 이전 버전의 앱이 래핑되어 Intune 관리 센터에 업로드되었습니다.
  • iOS용 Intune App Wrapping Tool 주요 버그 수정 또는 새로운 특정 Intune 애플리케이션 보호 정책 기능을 사용하도록 설정하는 새 버전을 릴리스했습니다. 이는 iOS용 Microsoft Intune App Wrapping Tool 대한 GitHub 리포지토리를 통해 6~8주 후에 발생합니다.

iOS/iPadOS의 경우 앱에 서명하는 데 사용된 원본과 다른 인증서/프로비저닝 프로필로 래핑할 수 있지만 앱에 지정된 자격이 새 프로비저닝 프로필에 포함되지 않으면 래핑이 실패합니다. 앱에서 누락된 자격을 제거하는 "-e" 명령줄 옵션을 사용하여 이 시나리오에서 래핑이 실패하지 않도록 강제 적용하면 앱의 기능이 손상될 수 있습니다.

다시 래핑에 대한 몇 가지 모범 사례는 다음과 같습니다.

  • 다른 프로비저닝 프로필에 모든 필수 자격이 이전 프로비전 프로필로 있는지 확인합니다.

오류 메시지 및 로그 파일

다음 정보를 사용하여 앱 래핑 도구와 관련된 문제를 해결합니다.

오류 메시지

앱 래핑 도구가 성공적으로 완료되지 않으면 다음 오류 메시지 중 하나가 콘솔에 표시됩니다.

오류 메시지 추가 정보
유효한 iOS 프로비저닝 프로필을 지정해야 합니다. 프로비저닝 프로필이 잘못되었을 수 있습니다. 디바이스에 대한 올바른 권한이 있고 프로필이 개발 또는 배포를 올바르게 대상으로 하고 있는지 확인합니다. 프로비저닝 프로필도 만료될 수 있습니다.
유효한 입력 애플리케이션 이름을 지정합니다. 지정한 입력 애플리케이션 이름이 올바른지 확인합니다.
출력 애플리케이션에 대한 유효한 경로를 지정합니다. 지정한 출력 애플리케이션의 경로가 있고 올바른지 확인합니다.
유효한 입력 프로비저닝 프로필을 지정합니다. 유효한 프로비저닝 프로필 이름 및 확장을 제공했는지 확인합니다. 프로비저닝 프로필에 자격이 없거나 –p 명령줄 옵션이 포함되지 않았을 수 있습니다.
지정한 입력 애플리케이션을 찾을 수 없습니다. 유효한 입력 애플리케이션 이름 및 경로를 지정합니다. 입력 앱 경로가 유효하고 존재하는지 확인합니다. 입력 앱이 해당 위치에 있는지 확인합니다.
지정한 입력 프로비저닝 프로필 파일을 찾을 수 없습니다. 유효한 입력 프로비저닝 프로필 파일을 지정합니다. 입력 프로비저닝 파일의 경로가 유효하고 지정한 파일이 있는지 확인합니다.
지정한 출력 애플리케이션 폴더를 찾을 수 없습니다. 출력 애플리케이션에 대한 유효한 경로를 지정합니다. 지정한 출력 경로가 유효하고 존재하는지 확인합니다.
출력 앱에는 .ipa 확장이 없습니다. .app.ipa 확장이 있는 앱만 App Wrapping Tool 허용됩니다. 출력 파일에 유효한 확장 프로그램이 있는지 확인합니다.
잘못된 서명 인증서가 지정되었습니다. 유효한 Apple 서명 인증서를 지정합니다. Apple 개발자 포털에서 올바른 서명 인증서를 다운로드했는지 확인합니다. 인증서가 만료되었거나 퍼블릭 또는 프라이빗 키가 누락되었을 수 있습니다. Apple 인증서 및 프로비저닝 프로필을 사용하여 Xcode 내에서 앱을 올바르게 서명할 수 있는 경우 App Wrapping Tool 유효합니다. 또한 서명 인증서에 호스트 macOS 컴퓨터의 키체인 내에서 고유한 이름이 있는지 확인합니다. 키체인 내에 동일한 인증서의 여러 버전이 있는 경우 이 오류가 반환될 수 있습니다.
지정한 입력 애플리케이션이 잘못되었습니다. 유효한 애플리케이션을 지정합니다. .app 또는 .ipa 파일로 컴파일된 유효한 iOS 애플리케이션이 있는지 확인합니다.
지정한 입력 애플리케이션이 암호화됩니다. 암호화되지 않은 유효한 애플리케이션을 지정합니다. App Wrapping Tool 암호화된 앱을 지원하지 않습니다. 암호화되지 않은 앱을 제공합니다.
지정한 입력 애플리케이션이 PIE(Position Independent Executable) 형식이 아닙니다. 유효한 애플리케이션을 PIE 형식으로 지정합니다. 실행 시 PIE(Position Independent Executable) 앱을 임의 메모리 주소에 로드할 수 있습니다. 이 경우 보안상의 이점이 있을 수 있습니다. 보안 혜택에 대한 자세한 내용은 Apple 개발자 설명서를 참조하세요.
지정한 입력 앱이 이미 래핑되었습니다. 래핑되지 않은 유효한 애플리케이션을 지정합니다. 도구에서 이미 처리한 앱을 처리할 수 없습니다. 앱을 다시 처리하려면 앱의 원래 버전을 사용하여 도구를 실행합니다.
지정한 입력 애플리케이션이 서명되지 않았습니다. 유효한 서명된 애플리케이션을 지정합니다. 앱 래핑 도구를 사용하려면 앱에 서명해야 합니다. 래핑된 앱에 서명하는 방법을 알아보려면 개발자 설명서를 참조하세요.
지정한 입력 애플리케이션은 .ipa 또는 .app 형식이어야 합니다. 앱 래핑 도구에서는 .app 및 .ipa 확장만 허용됩니다. 입력 파일에 유효한 확장 프로그램이 있고 .app 또는 .ipa 파일로 컴파일되었는지 확인합니다.
지정한 입력 앱이 이미 래핑되었으며 최신 정책 템플릿 버전에 있습니다. App Wrapping Tool 최신 정책 템플릿 버전으로 기존 래핑된 앱을 다시 래핑하지 않습니다.
경고: SHA1 인증서 해시를 지정하지 않았습니다. 배포하기 전에 래핑된 애플리케이션이 서명되었는지 확인합니다. –c 명령줄 플래그 다음에 유효한 SHA1 해시를 지정해야 합니다.

디바이스에서 래핑된 애플리케이션에 대한 로그 수집

문제 해결 중에 래핑된 애플리케이션에 대한 로그를 얻으려면 다음 단계를 사용합니다.

  1. 디바이스의 iOS 설정 앱으로 이동하여 LOB 앱을 선택합니다.
  2. Microsoft Intune 선택합니다.
  3. 디스플레이 진단 콘솔 설정을 켜기로 전환합니다.
  4. LOB 애플리케이션을 시작합니다.
  5. "시작" 링크를 클릭합니다.
  6. 이제 Microsoft에 직접 로그를 보내거나 디바이스의 다른 애플리케이션을 통해 공유할 수 있습니다.

참고

로깅 기능은 Intune App Wrapping Tool 버전 7.1.13 이상으로 래핑된 앱에 대해 사용하도록 설정됩니다.

시스템에서 크래시 로그 수집

앱이 iOS 클라이언트 디바이스 콘솔에 유용한 정보를 로깅할 수 있습니다. 이 정보는 애플리케이션에 문제가 있고 문제가 App Wrapping Tool 또는 앱 자체와 관련이 있는지 확인해야 하는 경우에 유용합니다. 이 정보를 검색하려면 다음 단계를 사용합니다.

  1. 앱을 실행하여 문제를 재현합니다.

  2. 배포된 iOS 앱 디버깅에 대한 Apple의 지침에 따라 콘솔 출력을 수집합니다.

래핑된 앱은 앱이 충돌한 후 전자 메일을 통해 디바이스에서 직접 로그를 보내는 옵션도 사용자에게 제공합니다. 사용자는 필요한 경우 로그를 보내 Microsoft를 검사하고 전달할 수 있습니다.

인증서, 프로비저닝 프로필 및 인증 요구 사항

iOS용 App Wrapping Tool 전체 기능을 보장하기 위해 충족해야 하는 몇 가지 요구 사항이 있습니다.

요구 사항 세부 정보
iOS 프로비저닝 프로필 프로비저닝 프로필을 포함하기 전에 유효한지 확인합니다. App Wrapping Tool iOS 앱을 처리할 때 프로비저닝 프로필이 만료되었는지 여부를 검사 않습니다. 만료된 프로비저닝 프로필을 지정하면 앱 래핑 도구에 만료된 프로비저닝 프로필이 포함되며, iOS 디바이스에 앱이 설치되지 않을 때까지 문제가 있는지 알 수 없습니다.
iOS 서명 인증서 서명 인증서를 지정하기 전에 서명 인증서가 유효한지 확인합니다. 이 도구는 iOS 앱을 처리할 때 인증서가 만료되었는지 여부를 검사 않습니다. 만료된 인증서에 대한 해시가 제공되면 도구는 앱을 처리하고 서명하지만 디바이스에 설치하지 못합니다.

래핑된 앱에 서명하기 위해 제공된 인증서가 프로비저닝 프로필에서 일치하는지 확인합니다. 이 도구는 프로비전 프로필에 래핑된 애플리케이션 서명에 대해 제공된 인증서와 일치하는지 유효성을 검사하지 않습니다.
인증 디바이스에 암호화가 작동하려면 PIN이 있어야 합니다. 래핑된 앱을 배포한 디바이스에서 디바이스의 상태 표시줄을 터치하려면 사용자가 회사 또는 학교 계정으로 다시 로그인해야 합니다. 래핑된 앱의 기본 정책은 다시 시작에 대한 인증입니다. iOS는 앱을 종료한 다음 다시 시작하여 외부 알림(예: 전화 통화)을 처리합니다.

앱 권한 설정

앱을 래핑하기 전에 권한을 부여하여 앱이 일반적으로 수행할 수 있는 작업을 초과하는 추가 권한과 기능을 앱에 부여할 수 있습니다. 권한 파일은 코드 서명 중에 앱 내에서 특별한 권한(예: 공유 키체인 액세스)을 지정하는 데 사용됩니다. 기능이라는 특정 앱 서비스는 앱 개발 중에 Xcode 내에서 사용하도록 설정됩니다. 이 기능을 사용하도록 설정하면 권한 파일에 기능이 반영됩니다. 자격 및 기능에 대한 자세한 내용은 iOS 개발자 라이브러리에서 기능 추가 를 참조하세요. 지원되는 기능의 전체 목록은 지원되는 기능을 참조하세요.

iOS용 App Wrapping Tool 지원되는 기능

기능 설명 권장 지침
앱 그룹 앱 그룹을 사용하여 여러 앱이 공유 컨테이너에 액세스하도록 허용하고 앱 간의 추가 프로세스 간 통신을 허용합니다.

앱 그룹을 사용하도록 설정하려면 기능 창을 열고 앱 그룹에서기를 클릭합니다. 앱 그룹을 추가하거나 기존 그룹을 선택할 수 있습니다.
앱 그룹을 사용하는 경우 역방향 DNS 표기법을 사용합니다.

group.com.companyName.AppGroup
백그라운드 모드 백그라운드 모드를 사용하도록 설정하면 iOS 앱이 백그라운드에서 계속 실행되도록 할 수 있습니다.
데이터 보호 데이터 보호는 iOS 앱에서 디스크에 저장된 파일에 보안 수준을 추가합니다. 데이터 보호는 특정 디바이스에 있는 기본 제공 암호화 하드웨어를 사용하여 디스크에 암호화된 형식으로 파일을 저장합니다. 데이터 보호를 사용하도록 앱을 프로비전해야 합니다.
앱 내 구매 앱 내 구매는 스토어에 연결하고 사용자의 결제를 안전하게 처리할 수 있도록 하여 스토어를 앱에 직접 포함합니다. 앱 내 구매를 사용하여 향상된 기능 또는 앱에서 사용할 수 있는 추가 콘텐츠에 대한 결제를 수집할 수 있습니다.
키 집합 공유 키체인 공유를 사용하도록 설정하면 앱이 팀에서 개발한 다른 앱과 키체인 암호를 공유할 수 있습니다. 키체인 공유를 사용하는 경우 역방향 DNS 표기법을 사용합니다.

com.companyName.KeychainGroup
개인 VPN 앱이 네트워크 확장 프레임워크를 사용하여 사용자 지정 시스템 VPN 구성을 만들고 제어할 수 있도록 개인 VPN을 사용하도록 설정합니다.
푸시 알림 APN(Apple Push Notification Service)을 사용하면 포그라운드에서 실행되지 않는 앱이 사용자에게 사용자에 대한 정보가 있음을 알릴 수 있습니다. 푸시 알림이 작동하려면 앱별 프로비저닝 프로필을 사용해야 합니다.

Apple 개발자 설명서의 단계를 따릅니다.
무선 액세서리 구성 무선 액세서리 구성을 사용하도록 설정하면 외부 액세서리 프레임워크가 프로젝트에 추가되고 앱에서 MFi Wi-Fi 액세서리를 설정할 수 있습니다.

자격을 사용하도록 설정하는 단계

  1. 앱에서 기능 사용:

    a. Xcode에서 앱의 대상으로 이동하고 기능을 클릭합니다.

    b. 적절한 기능을 켭니다. 각 기능 및 올바른 값을 확인하는 방법에 대한 자세한 내용은 iOS 개발자 라이브러리에서 기능 추가 를 참조하세요.

    c. 프로세스 중에 만든 ID를 기록해 둡니다. 이러한 값을 값이라고 AppIdentifierPrefix 도 합니다.

    d. 래핑할 앱을 빌드하고 서명합니다.

  2. 프로비저닝 프로필에서 권한 사용:

    a. Apple 개발자 구성원 센터에 로그인합니다.

    b. 앱에 대한 프로비저닝 프로필을 만듭니다. 지침은 iOS용 Intune App Wrapping Tool 대한 필수 구성 요소를 가져오는 방법을 참조하세요.

    c. 프로비저닝 프로필에서 앱에 있는 것과 동일한 자격을 사용하도록 설정합니다. 앱 개발 중에 지정한 것과 동일한 ID( AppIdentifierPrefix 값)를 제공해야 합니다.

    d. 프로비저닝 프로필 마법사를 완료하고 파일을 다운로드합니다.

  3. 모든 필수 구성 요소를 충족하는지 확인하고 앱을 래핑합니다.

권한으로 일반적인 오류 문제 해결

iOS용 App Wrapping Tool 권한 오류가 표시되면 다음 문제 해결 단계를 시도합니다.

문제 원인 해결 방법
입력 애플리케이션에서 생성된 자격을 구문 분석하지 못했습니다. App Wrapping Tool 앱에서 추출된 권한 파일을 읽을 수 없습니다. 권한 파일의 형식이 잘못되었을 수 있습니다. 앱의 권한 파일을 검사합니다. 다음 지침에서는 이 작업을 수행하는 방법을 설명합니다. 권한 파일을 검사할 때 형식이 잘못된 구문을 검사. 파일은 XML 형식이어야 합니다.
프로비저닝 프로필에 자격이 없습니다(누락된 자격이 나열됨). 이러한 자격이 있는 프로비저닝 프로필을 사용하여 앱을 다시 패키징합니다. 프로비저닝 프로필에서 사용하도록 설정된 권한과 앱에서 사용하도록 설정된 기능 간에 불일치가 있습니다. 이러한 불일치는 특정 기능(예: 앱 그룹 및 키체인 액세스)과 연결된 ID에도 적용됩니다. 일반적으로 앱과 동일한 기능을 사용하도록 설정하는 새 프로비저닝 프로필을 만들 수 있습니다. 프로필과 앱 간의 ID가 일치하지 않으면 App Wrapping Tool ID가 대체됩니다( 가능하면). 새 프로비저닝 프로필을 만든 후에도 이 오류가 계속 발생하면 –e 매개 변수를 사용하여 앱에서 자격 제거를 시도할 수 있습니다(–e 매개 변수를 사용하여 앱 섹션에서 권한 제거 참조).

서명된 앱의 기존 자격 찾기

서명된 앱 및 프로비저닝 프로필의 기존 자격을 검토하려면 다음을 수행합니다.

  1. .ipa 파일을 찾아 확장자를 .zip 변경합니다.

  2. .zip 파일을 확장합니다. 그러면 .app 번들을 포함하는 페이로드 폴더가 생성됩니다.

  3. codesign 도구를 사용하여 .app 번들의 자격을 검사. 여기서 YourApp.app 은 .app 번들의 실제 이름입니다.

    codesign -d --entitlements :- "Payload/YourApp.app"
    
  4. 보안 도구를 사용하여 앱의 포함된 프로비저닝 프로필의 자격을 검사. 여기서 YourApp.app 은 .app 번들의 실제 이름입니다.

    security cms -D -i "Payload/YourApp.app/embedded.mobileprovision"
    

–e 매개 변수를 사용하여 앱에서 권한 제거

이 명령은 권한 파일에 없는 앱에서 사용하도록 설정된 모든 기능을 제거합니다. 앱에서 사용 중인 기능을 제거하면 앱이 중단될 수 있습니다. 누락된 기능을 제거할 수 있는 예는 기본적으로 모든 기능이 있는 공급업체에서 생성된 앱에 있습니다.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager –i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> –p /<path to provisioning profile> –c <SHA1 hash of the certificate> -e

App Wrapping Tool 대한 보안 및 개인 정보

App Wrapping Tool 사용하는 경우 다음 보안 및 개인 정보 보호 모범 사례를 사용합니다.

  • 지정한 서명 인증서, 프로비저닝 프로필 및 기간 업무 앱은 앱 래핑 도구를 실행하는 데 사용하는 것과 동일한 macOS 컴퓨터에 있어야 합니다. 파일이 UNC 경로에 있는 경우 macOS 컴퓨터에서 액세스할 수 있는지 확인합니다. 경로는 IPsec 또는 SMB 서명을 통해 보호되어야 합니다.

    관리 센터로 가져온 래핑된 애플리케이션은 도구를 실행하는 것과 동일한 컴퓨터에 있어야 합니다. 파일이 UNC 경로에 있는 경우 관리 센터를 실행하는 컴퓨터에서 파일에 액세스할 수 있는지 확인합니다. 경로는 IPsec 또는 SMB 서명을 통해 보호되어야 합니다.

  • GitHub 리포지토리에서 App Wrapping Tool 다운로드하는 환경은 IPsec 또는 SMB 서명을 통해 보호되어야 합니다.

  • 처리하는 앱은 공격에 대한 보호를 보장하기 위해 신뢰할 수 있는 원본에서 가져와야 합니다.

  • App Wrapping Tool 지정한 출력 폴더가 특히 원격 폴더인 경우 보안이 유지되는지 확인합니다.

  • 파일 업로드 대화 상자가 포함된 iOS 앱을 사용하면 사용자가 앱에 적용된 제한을 우회, 잘라내기, 복사 및 붙여넣을 수 있습니다. 예를 들어 사용자는 파일 업로드 대화 상자를 사용하여 앱 데이터의 스크린샷을 업로드할 수 있습니다.

  • 래핑된 앱 내에서 디바이스의 문서 폴더를 모니터링할 때 .msftintuneapplauncher라는 폴더가 표시될 수 있습니다. 이 파일을 변경하거나 삭제하면 제한된 앱의 올바른 작동에 영향을 줄 수 있습니다.

  • 사용자 지정 URL 체계를 등록하면 특정 URL이 앱으로 리디렉션할 수 있습니다. iOS 및 iPadOS를 사용하면 여러 앱이 동일한 사용자 지정 URL 체계를 등록할 수 있으며 OS는 호출되는 애플리케이션을 결정합니다. 잘못된 형식의 URL을 처리하기 위한 사용자 지정 URL 구성표 충돌 및 보안 지침을 방지하는 데 도움이 되는 권장 사항은 앱에 대한 사용자 지정 URL 구성표 정의 Apple 설명서를 참조하세요.

참고 항목