# \[iOS\] saveBase64Data 호출 시 앱 크래시

**URL:** <https://techchat-apps-in-toss.toss.im/t/ios-savebase64data/2122>\
**Category:** 개발\
**Tags:** webview, sdk\
**Created:** [1월 20, 2026, 8:40오전 UTC](https://techchat-apps-in-toss.toss.im/t/ios-savebase64data/2122 "2026-01-20T08:40:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![bcgo99](https://avatars.discourse-cdn.com/v4/letter/b/6bbea6/32.png) [@bcgo99](https://techchat-apps-in-toss.toss.im/u/bcgo99)\
**Post date:** [1월 20, 2026, 8:40오전 UTC](https://techchat-apps-in-toss.toss.im/t/ios-savebase64data/2122/1 "2026-01-20T08:40:50Z")

</div>

### 이 글의 성격은 무엇인가요?

질문 / 문제 해결

### 내용을 설명해주세요

환경

- 플랫폼: iOS Sandbox 앱
- SDK 버전: @apps-in-toss/web-framework@1.6.0
- 앱 유형: WebView 기반 미니앱
- Android: 정상 동작

* * *

증상

saveBase64Data 호출 시 iOS에서 앱이 즉시 크래시됩니다.  
JavaScript 에러 없이 앱 자체가 종료됩니다.

* * *

조사 과정 및 인사이트

1. 데이터 크기 문제 가능성 배제

처음에는 PDF 파일(수 MB) 저장 시 크래시가 발생하여 데이터 크기  
문제를 의심했습니다. 이를 검증하기 위해 1x1 픽셀 PNG (96 bytes)  
로 테스트한 결과 동일하게 크래시가 발생했습니다.

→ 데이터 크기와 무관한 문제

1. JavaScript 레벨 오류 가능성 배제

SDK 내부 동작을 추적하기 위해 두 패키지에 디버그 로그를  
삽입했습니다.

@apps-in-toss/web-bridge (bridge.js)

- saveBase64Data 함수 진입점에 로그 추가
- 목적: 함수 호출 여부 및 파라미터 확인

@apps-in-toss/bridge-core (index.js)

- createAsyncBridge 내부 각 단계에 로그 추가
- 목적: 네이티브 통신 흐름의 어느 시점에서 크래시가 발생하는지  
특정

1. 로그 결과

✅ saveBase64Data 함수 진입  
✅ createAsyncBridge로 bridge 함수 생성  
✅ eventId 생성: “w9q9v0qvtlr”  
✅ resolve/reject 이벤트 리스너 등록  
✅ postMessage 호출 (메시지 구성 완료)  
✅ ReactNativeWebView.postMessage() 호출  
✅ ReactNativeWebView.postMessage() 반환 (메시지가 네이티브로  
전달됨)  
✅ “waiting for native response…” 로그 출력  
❌ 이후 앱 크래시 (resolve/reject 콜백 도달 전)

1. 결론

ReactNativeWebView.postMessage()가 정상적으로 반환된 후  
크래시가 발생합니다. 이는 JavaScript → Native 메시지 전달은  
성공했으나, iOS 네이티브의 saveBase64Data 핸들러가 메시지를  
처리하는 과정에서 크래시가 발생함을 의미합니다.

* * *

재현 방법

1. WebView 기반 미니앱에서 아래 코드 실행

```js
 import { saveBase64Data } from ‘@apps-in-toss/web-framework’;

// 1x1 pixel PNG (96 bytes)
const TINY_PNG = ‘iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJA
AAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==’;

await saveBase64Data({
data: TINY_PNG,
fileName: ‘test.png’,
mimeType: ‘image/png’,
});

```

1. iOS Sandbox 앱에서 실행 → 즉시 크래시
2. Android에서 동일 코드 실행 → 정상 동작

* * *

질문

iOS 네이티브 saveBase64Data 핸들러 쪽 크래시 로그 확인이  
가능할까요? WebView에서 전달한 메시지는 정상이며, 네이티브  
핸들러 내부에서 문제가 발생하는 것으로 보입니다.

### appName (선택)

qanda-scanner

---

<div class="post-metadata">

**Author:** ![Dylan](https://yyz1.discourse-cdn.com/flex007/user_avatar/techchat-apps-in-toss.toss.im/dylan/32/597_2.png) [@Dylan](https://techchat-apps-in-toss.toss.im/u/Dylan)\
**Post date:** [1월 21, 2026, 2:08오전 UTC](https://techchat-apps-in-toss.toss.im/t/ios-savebase64data/2122/2 "2026-01-21T02:08:42Z")

</div>

안녕하세요 🙂  
확인해보겠습니다!

---

<div class="post-metadata">

**Author:** ![miracle380301](https://avatars.discourse-cdn.com/v4/letter/m/dc4da7/32.png) [@miracle380301](https://techchat-apps-in-toss.toss.im/u/miracle380301)\
**Post date:** [2월 10, 2026, 4:42오전 UTC](https://techchat-apps-in-toss.toss.im/t/ios-savebase64data/2122/3 "2026-02-10T04:42:57Z")

</div>

저도 동일한 현상이 발생합니다!

---

<div class="post-metadata">

**Author:** ![Dylan](https://yyz1.discourse-cdn.com/flex007/user_avatar/techchat-apps-in-toss.toss.im/dylan/32/597_2.png) [@Dylan](https://techchat-apps-in-toss.toss.im/u/Dylan)\
**Post date:** [2월 10, 2026, 5:06오전 UTC](https://techchat-apps-in-toss.toss.im/t/ios-savebase64data/2122/4 "2026-02-10T05:06:25Z")

</div>

안녕하세요 🙂  
현재 개발자센터에 업로드 되어있는 최신버전의 ios 샌드박스 앱으로 테스트 해봐주실 수 있을까요 ?

> **[앱인토스 개발자센터](https://developers-apps-in-toss.toss.im/development/test/sandbox.html)**
>
> 앱인토스 샌드박스 앱을 이용한 개발 및 테스트 가이드입니다. 샌드박스 앱 설치, 로그인, 앱 선택, 로컬 서버 연결 방법을 확인하세요.
