스폰서제출
블로그

처음 Mac 앱을 만드는 사람을 위한, 쉬운 말로 된 서명과 공증 설명

Justinas Rolando 작성, MacPip 메이커

짧은 답

서명은 앱에 여러분의 이름을 남기고 앱이 바뀌지 않았다는 걸 보여 줘요. 공증은 앱을 Apple의 자동 검사에 보내요. 스테이플링은 그 결과를 붙여서 오프라인에서도 확인할 수 있게 해요. 이 순서대로 하고, 빌드가 최종 확정된 뒤 마지막에 하세요.

앱을 Xcode에서만 실행해 봤다면, 배포의 이 부분은 인증서 벽처럼 느껴질 수 있어요. 개념은 단순하고 세 가지뿐이에요. Apple 문서 링크까지 포함한 자세한 내용은 Mac에서 공증이 무엇인지를 읽어 보세요. 이 글은 메이커를 위한 짧은 버전이에요.

세 단계

Mac App Store로만 판매한다면 마지막 두 단계는 건너뛰어요. Apple이 스토어 앱에 서명하고, Apple 문서에 따르면 스토어 과정에도 동등한 보안 검사가 있어요.

건너뛰면 사용자가 보게 되는 것

사용자는 경고를 보게 돼요. macOS가 앱을 확인할 수 없다고 말하고, macOS Sequoia부터는 Control-클릭으로도 넘어갈 수 없어요. 시스템 설정으로 가서 ‘그래도 열기’를 골라야 해요. 그 시점에 포기하는 사람도 있는데, 그 마음은 이해해요. ‘Apple이 확인할 수 없음’의 의미는 사용자 쪽에서 본 같은 경고를 설명하니 한 번 읽어 볼 만해요.

오후를 아껴 주는 순서

  1. 빌드를 마무리하세요. 서명한 뒤에 무엇이든 바꾸면 서명이 깨져요.
  2. 프레임워크와 헬퍼 같은 내부 코드에 먼저 서명하고, 그다음 앱 자체에 서명하세요. 공증에는 둘 다 필요하므로 하드닝된 런타임과 보안 타임스탬프를 사용하세요.
  3. DMG로 배포한다면 DMG에도 서명하세요.
  4. notarytool로 제출하세요. Apple은 보통 검사에 한 시간도 걸리지 않는다고 말해요.
  5. 성공했더라도 로그를 읽으세요.
  6. stapler로 스테이플링하세요.

내 빌드 확인하기

spctl -a -vv /Applications/YourApp.app
xcrun stapler validate /Applications/YourApp.app

첫 번째 명령에서는 source=Notarized Developer ID가 나와야 하고, 두 번째에서는 성공 메시지가 나와야 해요. 나온 결과를 공증 설명기에 붙여 넣으면 각 줄이 무엇을 뜻하는지 설명해 주거나, 모르는 내용이 있으면 알려 줘요. 브라우저에서 텍스트를 읽을 뿐 아무 곳에도 보내지 않아요.

그다음 가장 많은 문제를 잡아내는 테스트를 하세요. 다른 Mac이나 다른 사용자 계정에서 브라우저로 여러분의 빌드를 내려받아 열어 보는 거예요. 출시 체크리스트에 이 단계와 나머지 단계가 순서대로 나와 있어요.

공증되었다는 것이 의미하지 않는 것

좋다거나, 비공개거나, 안전하다는 뜻이 아니에요. Apple의 자동 검사가 알고 있는 문제를 찾지 못했다는 뜻이에요. 사이트에서 그 이상을 약속하지 않도록 조심하세요. Mac 앱이 안전한지 확인하는 방법에서 사용자 입장으로 각 검사가 무엇을 증명할 수 있고 없는지 설명해요.

MacPip이 이것을 어떻게 다루나요

MacPip은 서명되고 공증된 파일을 권장해요. 오픈 소스 앱은 공증 없이도 환영하며, 그 보고서에 그렇게 적혀 있어요. 파란 체크는 표시된 날짜에 사람이 앱을 확인했다는 뜻이고, 서명과 공증은 내려받은 사본으로 확인했을 때만 보고서에 나와요. 안전을 보장하는 표시가 아니며, 이는 저희 원칙에도 적혀 있어요. 빌드가 준비되면 무료로 등록할 수 있어요.

Real listings to look at

Check reports on MacPip say what was confirmed on a real copy. These two developer-minded listings are good ones to open and read.

출처

계속 읽기

앱 제출하기메이커를 위한 무료 도구