macOS 27 업그레이드 안내
핵심 내용
이전 버전이나 테스트 버전의 AppPorts에서 재서명에 동의한 뒤 macOS 27에서 WeChat 등이 Finder / Dock으로 열리지 않는다면 아래 복구 절차를 따르세요. 기존 컨테이너 링크를 먼저 복원하고 원본 앱을 복구하거나 공식 버전을 다시 설치합니다. 데이터 폴더를 삭제하거나 다시 재서명하지 마세요. 서명 오류만으로 데이터 손상을 판단할 수는 없습니다.
복구
앱 목록 행의 ‘복구’ 버튼을 누르거나 우클릭 메뉴에서 ‘복구 단계 보기’를 선택하세요. 터미널 명령은 필요하지 않습니다. 이 안내는 현재 개발 버전을 기준으로 합니다. 이전 버전에 복구 패널이 없어도 아래 수동 절차를 사용할 수 있습니다. 원래 외장 드라이브를 연결하고 앱을 완전히 종료한 뒤 데이터와 백업을 보관하세요.
로그인 시 자동 재서명
현재 개발 버전은 macOS 27 이상에서 로그인 시 자동 재서명을 비활성화하고 기존 로그인 작업을 중지한 뒤 제거합니다. 처리가 완료되지 않으면 설정에서 다시 시도할 수 있습니다.
macOS를 업그레이드하기 전에 AppPorts를 업데이트하고 한 번 실행하세요. 설치된 백그라운드 작업에 버전 확인 기능이 적용됩니다. 새 버전을 다운로드만 하고 실행하지 않으면 기존 작업은 업데이트되지 않습니다.
1. 기존 링크로 옮긴 컨테이너 데이터 복원
외장 드라이브를 가리키는 컨테이너 링크가 있으면 ‘모두 복원’을 누르세요. 없으면 건너뜁니다. 수동 경로는 ‘데이터 디렉터리’ → ‘앱 데이터’ → 앱 선택 → 연결된 컨테이너 복원입니다. 이미 APFS 마운트 마이그레이션을 사용 중인 디렉터리는 서명 복구만을 위해 되돌릴 필요가 없습니다.
2. 원본 앱 복구 또는 공식 버전 재설치
- 전체 원본 앱 백업이 있는 경우: ‘원본 서명 복원’을 사용합니다. 외장 드라이브의 실제 앱도 직접 복구할 수 있어 먼저 Mac으로 옮길 필요가 없습니다. AppPorts는 현재 앱과 백업이 일치하는지 확인합니다. 앱이 업데이트되었거나 내용이 달라졌다면 일치하는 공식 원본이 필요합니다.
- 이전 서명 기록만 있는 경우: 동일 버전의 공식
.app을 선택하거나 App Store / 개발자 웹사이트에서 다시 설치하세요. 인증서 이름만으로 개발자 서명을 복원할 수는 없습니다. - 외장 앱에 덮어쓰기로 설치하는 경우: 먼저 ‘로컬로 이동’을 실행해 로컬 실행기만 덮어쓰지 않도록 합니다.
컨테이너 데이터 폴더를 삭제하지 마세요. 중요한 데이터는 별도로 백업하세요. 채팅 기록과 로그인 유지 여부는 앱 버전, 권한, 데이터 상태에도 영향을 받습니다. 서명 백업과 복원을 참고하세요.
3. 다시 확인하고 Finder / Dock에서 실행
‘다시 확인’으로 서명을 확인한 뒤 Finder / Dock에서 열어 기존 데이터에 접근할 수 있는지 확인합니다. ‘서명을 확인할 수 없음’은 교체나 복구 완료를 뜻하지 않습니다. 드라이브를 연결한 뒤 재시도하세요. 검사 중 복구 백업은 삭제되지 않습니다. 지금 열리는 앱은 나중에 처리할 수 있지만, 실행 성공이 원본 서명 복원을 의미하지는 않습니다.
4. 선택 사항: 데이터 마이그레이션 계속하기
복구 후 ‘앱 데이터’에서 디렉터리를 선택하고 ‘마이그레이션’을 누르세요. AppPorts는 저장 위치를 확인하고 컨테이너에 APFS 마운트 마이그레이션을 사용해 서명을 유지합니다. 현재 암호화되지 않은 APFS 외장 드라이브가 필요합니다. 다른 드라이브를 선택하거나 데이터를 Mac에 둘 수도 있습니다. macOS가 이동식 볼륨 접근을 요청하면 허용하고, 이후 앱 사용 전에 드라이브를 연결하세요. APFS 준비를 참고하세요.
영향을 받는 경우
| 항목 | 설명 |
|---|---|
| 발생 조건 | macOS 27로 업그레이드 |
| 대상 앱 | ~/Library/Containers/ 또는 ~/Library/Group Containers/ 데이터를 옮기고 Ad-hoc 재서명한 앱, 또는 우클릭 메뉴로 수동 재서명한 샌드박스 앱 |
| 대표 증상 | Finder / Dock에서 이중 클릭해도 반응이 없고 아이콘만 잠깐 나타났다 사라짐. 오류 창은 없음. 모든 재서명 앱이 그런 것은 아니며 같은 27에서 QQ Music은 정상 실행 |
| 데이터 | 서명 오류만으로 데이터 손상을 판단할 수 없습니다. 원본 데이터와 백업을 보관하세요 |
| 확인된 사례 | WeChat 4.1.15, macOS 27.0 (26A428) |
간단히 말해 재서명이 앱의 샌드박스 신원을 제거했기 때문입니다. macOS 27이 앱의 컨테이너 접근 자격을 확인할 때 이전 서명의 권한 기록이 이미 저장돼 있으면 새 서명이 일치하지 않아 거부됩니다. WeChat 로그에는 Failed to match existing code requirement가 나옵니다. QQ Music처럼 이전 기록이 없는 앱은 현재 허용되지만 키체인 로그인 상태 등 이미 잃은 권한이 복구되는 것은 아닙니다. 원리는 컨테이너 데이터, 샌드박스와 서명 신원을 참고하세요.
원래 개발자 서명의 백업 기록이 있고 실제 앱의 현재 서명이 Ad-hoc으로 확인될 때만 교체로 표시합니다. 시간 초과나 외장 앱 읽기 실패는 재검사가 필요합니다. 원래 Ad-hoc인 앱, 마이그레이션 여부 또는 로컬 실행기만으로 재서명이 필요하다고 판단하지 않습니다.
도움이 되지 않는 방법
| 방법 | 효과가 없는 이유 |
|---|---|
| 데이터만 복원하고 해결됐다고 생각하기 | 복원은 외장 데이터 접근 문제만 해결하며 서명을 고치지 않음. 재서명한 앱은 계속 즉시 종료됨 |
| 다시 재서명하기 | 재서명 자체가 원인이므로 권한만 다시 지움 |
| 앱에 전체 디스크 접근 권한 부여 | 컨테이너 검사를 우회할 수 있지만 키체인 권한이 사라져 로그인 상태는 여전히 문제. 임시 수단일 뿐 |
| 터미널에서 열린다고 해결됐다고 판단 | 터미널 권한을 빌려 실행된 것. Finder / Dock 이중 클릭을 기준으로 판단 |
업그레이드 전 확인
먼저 AppPorts의 ‘서명 교체됨’ 표시를 확인하고 복구 절차를 따르세요. 표시가 없다고 macOS 27 호환성이 보장되지는 않습니다. 보조 스크립트는 이전 백업의 접근 가능한 경로만 확인하므로 이동된 앱, 연결되지 않은 드라이브, 실행기 경로는 누락될 수 있습니다.
고급: 선택적인 기술 검사
BACKUP_DIR="$HOME/Library/Application Support/AppPorts/signature-backups"
for plist in "$BACKUP_DIR"/*.plist; do
[ -f "$plist" ] || continue
original=$(/usr/libexec/PlistBuddy -c "Print :signingIdentity" "$plist" 2>/dev/null)
app=$(/usr/libexec/PlistBuddy -c "Print :originalPath" "$plist" 2>/dev/null)
case "$original" in ""|ad-hoc) continue ;; esac
[ -d "$app" ] || continue
if codesign -dv "$app" 2>&1 | grep -q "Signature=adhoc"; then
printf "%s\n %s\n" "$app" "$original"
fi
done업그레이드 후 증상 확인
먼저 Finder / Dock에서 실행하세요. 실행에 실패하고 서명 교체도 확인되었다면 복구를 따르세요. 그 밖에는 앱 호환성, 권한, 외장 드라이브도 확인하세요.
고급: 선택적인 기술 검사
예시를 로컬 실행기가 아닌 실제 앱 경로로 바꾸세요. 아래 명령은 정보만 읽습니다. Ad-hoc은 원본 서명 기록과 비교해야 하며 접근 거부 로그만으로 원인을 확정할 수는 없습니다.
codesign -dv --verbose=4 "/Applications/WeChat.app" 2>&1 | grep -E "Authority|TeamIdentifier|Signature"
log show --last 1m --style compact 2>/dev/null | grep -i "rejected approval request"AppPorts 1.9.0의 변경 사항
다음은 현재 개발 버전의 동작입니다.
- 기본 모드에서 컨테이너 데이터는 APFS 마운트 방식으로 옮기며 샌드박스 앱 재서명은 거부합니다.
- 전체 백업은 원본 앱을 복원합니다. 이전 기록에는 일치하는 공식 앱이 필요합니다.
- 확인된 서명 교체와 확인 불가 상태를 구분하며 복구 자료를 보관합니다.
- 클래식 데이터 마이그레이션 모드는 기본적으로 꺼져 있습니다. AppPorts 업데이트만으로 교체된 서명이 복원되지는 않습니다.
자주 묻는 질문
채팅 기록을 잃게 되나요?
서명 오류 자체가 채팅 기록 손상을 뜻하지는 않습니다. 컨테이너, 외장 데이터, 백업을 보관하고 데이터를 지우는 제거 도구는 사용하지 마세요. 복구 후 확인이 필요하며 일부 로그인 권한은 다시 설정해야 할 수 있습니다.
데이터를 복원했는데도 열리지 않아요
경로를 복원해도 개발자 서명은 복원되지 않습니다. 전체 백업으로 복구하거나 공식 버전을 다시 설치한 뒤 확인하세요. 서명이 정상인데도 실행되지 않으면 버전과 권한을 점검하세요.
WeChat만 이런가요?
아닙니다. 기존 테스트에서도 앱마다 결과가 달랐습니다. 알림은 확인할 위험을 뜻하며 모든 앱이 실패한다는 의미는 아닙니다.
AppPorts가 데이터를 손상시켰나요?
관찰된 실행 오류는 이전 재서명 방식과 관련되며 데이터 손상의 증거는 아닙니다. 다른 문제를 조사할 때도 원본을 보관하세요. 기본 APFS 컨테이너 마이그레이션은 앱 서명을 유지합니다.
