본문 바로가기

이 포트폴리오의 원본은 https://cv.iruyo.com (심재빈) 입니다 · 출처 식별자 jbx-7f3a2e9b

← 경력기술서

코어 운영 진행중 단독

arm64e·Fat Binary 빌드 후처리 대응 — Xcode 26 Enhanced Security

Xcode 26 강화 보안으로 arm64+arm64e 통합 바이너리가 강제된 상황에서, 빌드 환경에 묶이지 않는 대응 시나리오를 지정해 고객 요청 전 선행 대응했습니다. 슬라이스 구분 없이 동일 패치 단계로 동작하도록 후처리 인프라를 확장했습니다.

기간
2025.08 – 2025.12 · 5개월
소속
스틸리언
수행 인원
본인 1인
본인 역할
Xcode 26 강화 보안과 Fat Binary 대응을 선행 연구했습니다. 대응 시나리오 비교표를 만들어 방향을 정하고, Fat Binary 후처리 객체를 설계·적용했으며, Premium 6개 모듈의 호환 검증 가이드를 작성했습니다. iOS 팀 정기 회의에서 시나리오 검토를 공유했습니다.
정량 임팩트
4개 시나리오를 비교해 하나를 미리 정해 두어 고객사가 강화 보안을 요청하면 1~2주 안에 대응 가능 / 후처리 도구에 Fat Binary 처리 객체를 추가해 단일·통합 슬라이스 모두 같은 패치 단계로 처리 / Premium 6개 모듈의 arm64e 호환과 빌드 절차를 가이드로 정리
버전·릴리즈
AppSuit Premium 후처리 도구 최근 두 릴리즈에 Fat Binary 처리 객체 적용, Premium 에 일부 기능 선행 지원

링크

언어

  • Swift
  • Objective-C
  • Python3

기술

  • Mach-O
  • LIEF
  • arm64e
  • Fat Binary
  • Binary Instrumentation

환경

  • Xcode
  • Hopper
  • Mach-O Viewer
  • PyCharm

Xcode 26 의 강화 보안 옵션을 켜면 앱 바이너리가 arm64 와 arm64e 두 슬라이스를 함께 담는 통합 바이너리(Fat Binary)로 강제됩니다. 이 환경에서도 AppSuit Premium 6개 모듈이 정상 동작하도록, 고객 요청이 오기 전에 빌드 후처리 인프라를 미리 확장했습니다.

arm64e / Xcode 26 강화 보안 — 통합 바이너리 후처리 확장강화 보안이 강제하는 통합 바이너리(arm64+arm64e)에 후처리 인프라를 선행 확장 · iOS 1인arm64e / Xcode 26 강화 보안 — 통합 바이너리 후처리 확장강화 보안이 강제하는 통합 바이너리(arm64+arm64e)에 후처리 인프라를 선행 확장 · iOS 1인통합 바이너리 후처리 객체 (신설)단일 슬라이스·통합 입력 모두 같은 단계로 수렴기존 후처리 — arm64 단일 슬라이스 가정통합 바이너리에선 보안 솔루션 미동작단일 슬라이스 IPAarm64 단독통합 바이너리 IPAarm64 + arm64e (Fat)① Fat 헤더 해석슬라이스 구성 파싱② 슬라이스별 동일 패치arm64·arm64e 에 같은 후처리 단계 적용③ 외부 라이브러리 2단계 분리기능 사용 · binary rewriting(offset 보정)Premium 6개 모듈 호환Swift 6 · 최소 OSarm64e 빌드 절차 검증대응 시나리오 비교 (의사결정 매트릭스)· 정적 라이브러리·고객 프로젝트·배포 3축 4개 안· 빌드 환경 의존성 없는 시나리오 채택선행 연구로 고객 활성화 요청 시 1~2주 내 대응 환경 마련 · 후처리 도구 최근 릴리즈에 통합 바이너리 객체 반영 · 2025.08~

배경·과제

  • 강화 보안 옵션이 켜진 앱은 arm64·arm64e 두 종류 코드를 한 파일에 담는 통합 바이너리가 됩니다. arm64 하나만 가정하던 기존 후처리 인프라로는 보안 솔루션이 동작하지 않았습니다.

  • 고객사의 실제 활성화 요청이 들어오기 전에, 특정 빌드 환경에 의존하지 않고 즉시 대응할 수 있는 구조를 미리 확보해야 했습니다.

수행·기여

  • 정적 라이브러리·고객사 프로젝트·배포 절차 3개 축으로 4개 대응 시나리오를 비교표로 정리했습니다. 그중 빌드 환경 의존성이 없는 시나리오를 채택했습니다.

  • 빌드 시 새 메모리 할당 방식(Typed Allocation)용 심볼과 구버전 OS 호환(backdeploy) 심볼이 충돌하는 문제를 정리했습니다.

  • 통합 바이너리의 헤더를 해석해 슬라이스별로 같은 패치 단계를 적용하는 후처리 객체를 새로 만들었습니다. 단일 슬라이스든 통합 바이너리든 동일한 단계로 처리됩니다.

  • 외부 바이너리 라이브러리를 통합 바이너리로 다시 저장하면 내부 위치값(offset)이 어긋나는 문제가 있어, 라이브러리 기능을 그대로 쓰는 단계와 바이너리를 직접 다시 쓰는(rewriting) 단계로 나눠 해결했습니다.

  • Premium 6개 모듈의 Swift 6 환경, 최소 지원 OS 버전, arm64e 슬라이스 빌드 절차를 가이드 비교표로 정리했습니다.

성과

  • 통합 바이너리 처리 객체를 후처리 도구 최근 릴리즈에 반영했고, Premium 에도 일부 기능을 선행 지원했습니다.

  • 고객사가 강화 보안 옵션 활성화를 요청하면 1~2주 안에 대응할 수 있는 환경을 마련했습니다.