iOS의 MediaPipe 프레임워크

MediaPipe 프레임워크를 사용하여 iOS 예시 앱을 빌드하려면 아래 안내를 따르세요. 이 예시 앱에 관해 자세히 알아보려면 iOS의 Hello World!부터 시작하세요.

iOS 예시 앱 빌드

기본 요건

  1. instructions에 따라 Mediapipe 프레임워크를 설치합니다.

  2. Xcode를 설치한 후 다음을 사용하여 명령줄 도구를 설치합니다.

    xcode-select --install
    
  3. Bazelisk를 설치합니다.

    최신 버전을 다운로드하려면 Homebrew를 사용하는 것이 좋습니다.

    brew install bazelisk
    
  4. Python 3.7을 기본 Python 버전으로 설정하고 Python 'six' 라이브러리를 설치합니다. 이는 TensorFlow에 필요합니다.

    pip3 install --user six
    
  5. MediaPipe 저장소를 클론합니다.

    git clone https://github.com/google/mediapipe.git
    

번들 ID 프리픽스 설정

모든 iOS 앱에는 번들 ID가 있어야 하며, 이 ID로 휴대전화에 앱을 설치할 수 있는 프로비저닝 프로필이 있어야 합니다. 여러 MediaPipe 사용자 간의 충돌을 방지하려면 iOS 데모 앱의 번들 ID에 고유한 접두사를 구성해야 합니다.

커스텀 프로비저닝 프로필이 있는 경우 아래의 커스텀 프로비저닝을 참조하세요.

그렇지 않으면 다음 명령어를 실행하여 고유한 프리픽스를 생성합니다.

python3 mediapipe/examples/ios/link_local_profiles.py

Xcode 프로젝트 만들기

이렇게 하면 Xcode에서 예시 앱 중 하나를 수정하고 디버그할 수 있습니다. 또한 자동 프로비저닝을 활용할 수 있습니다 (아래 섹션 참조).

  1. Bazel 빌드 구성에서 Xcode 프로젝트를 생성하기 위해 Tulsi라는 도구를 사용합니다.

    # cd out of the mediapipe directory, then:
    git clone https://github.com/bazelbuild/tulsi.git
    cd tulsi
    # remove Xcode version from Tulsi's .bazelrc (see http://github.com/bazelbuild/tulsi#building-and-installing):
    sed -i .orig '/xcode_version/d' .bazelrc
    # build and run Tulsi:
    sh build_and_run.sh
    

    이렇게 하면 홈 디렉터리의 Applications 디렉터리에 Tulsi.app가 설치됩니다.

  2. Tulsi 앱을 사용하여 mediapipe/Mediapipe.tulsiproj 앱을 엽니다.

  3. Configs(구성) 탭에서 MediaPipe 구성을 선택한 다음 아래의 Generate(생성) 버튼을 누릅니다. Xcode 프로젝트를 저장할 위치를 묻는 메시지가 표시됩니다. 프로젝트가 생성되면 Xcode에서 열립니다.

    번들 ID에 관한 오류가 발생하면 이전 섹션을 참고하세요.

프로비저닝 설정

iOS 기기에 애플리케이션을 설치하려면 프로비저닝 프로필이 필요합니다. 다음과 같은 두 가지 옵션이 있습니다.

  1. 자동 프로비저닝 이렇게 하면 개인 기기에 앱을 빌드하고 설치할 수 있습니다. 프로비저닝 프로필은 Xcode에서 관리하며 자주 업데이트해야 합니다 (약 일주일 동안 유효).

  2. 커스텀 프로비저닝 이는 Apple 개발자 계정과 연결된 프로비저닝 프로필을 사용합니다. 이러한 프로필은 유효 기간이 더 길고 여러 기기를 타겟팅할 수 있지만, 하나를 얻으려면 Apple의 유료 개발자 계정이 필요합니다.

자동 프로비저닝

  1. 앞에서 설명한 대로 MediaPipe용 Xcode 프로젝트를 만듭니다.

  2. 왼쪽 사이드바의 프로젝트 탐색기에서 'Mediapipe' 프로젝트를 선택합니다.

  3. 애플리케이션 대상 중 하나를 선택합니다(예: HandTrackingGpuApp).

  4. 'Signing & Capabilities(서명 및 기능)' 탭을 선택합니다.

  5. '자동으로 서명 관리'를 선택하고 대화상자를 확인합니다.

  6. Team(팀) 대화상자 메뉴에서 'Your Name(Your Name)(개인 팀)'을 선택합니다.

  7. 이 설정은 설치하려는 각 애플리케이션에 대해 한 번씩 수행해야 합니다. 필요에 따라 3~6단계를 반복합니다.

이렇게 하면 선택한 각 앱의 프로비저닝 프로필이 생성됩니다. 이제 Bazel에게 그것을 사용하도록 말해야 합니다. 이 작업을 더 쉽게 할 수 있도록 스크립트를 제공했습니다.

  1. 터미널에서 저장소를 클론한 mediapipe 디렉터리로 이동합니다.

  2. 다음 명령어를 실행합니다.

    python3 mediapipe/examples/ios/link_local_profiles.py
    

그러면 Xcode에서 자동 프로비저닝을 사용 설정한 모든 애플리케이션의 프로비저닝 프로필을 찾아 연결합니다.

커스텀 프로비저닝

  1. Apple에서 프로비저닝 프로필을 가져옵니다.
  1. 프로비저닝 프로필을 mediapipe/mediapipe/provisioning_profile.mobileprovision에 심볼릭 링크하거나 복사합니다.

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. mediapipe/examples/ios/bundle_id.bzl를 열고 BUNDLE_ID_PREFIX을 프로비저닝 프로필과 연결된 프리픽스로 변경합니다.

Xcode를 사용하여 앱 빌드 및 실행

  1. Xcode 프로젝트를 만들고 자동 또는 커스텀 프로비저닝을 설정했는지 확인합니다.

  2. 이제 타겟 메뉴에서 Mediapipe Framework 데모를 선택하고 평소대로 빌드하고 실행할 수 있습니다.

명령줄을 사용하여 앱 빌드

  1. 자동 또는 커스텀 프로비저닝을 설정했는지 확인합니다.

  2. 예를 들어 MediaPipe Hands를 사용하여 다음을 실행합니다.

    bazel build -c opt --config=ios_arm64 mediapipe/examples/ios/handtrackinggpu:HandTrackingGpuApp
    

    앱에 서명하기 위한 codesign의 권한 요청이 표시될 수 있습니다.

  3. Xcode에서 Devices and Simulators 창 (command-shift-2)을 엽니다.

  4. 기기가 연결되어 있는지 확인합니다. 설치된 앱 목록이 표시됩니다. 목록 아래의 '+' 버튼을 누르고 Bazel에서 빌드한 .ipa 파일을 선택합니다.

  5. 이제 기기에서 앱을 실행할 수 있습니다.