iOS 환경에서 토스페이먼츠 결제 위젯 결제 화면에서 네이버페이 선택하고 결제버튼 누르면, 시뮬레이터에서는 잘 되는데, 실제 폰에서는 다음과 같이 iOS 앱 main thread가
crash 나면서 앱이 종료됩니다. 메인스레드는 제가 작성한 쓰레드가 아니라서 조금 당황스러운데요, 혹시 이 문제를 해결할 수 있는 방법이 있을까요?
스택 트레이스는 첨부한 a.txt에 있습니다.
45 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
메인스레드 크래쉬 나는 것이라 저희가 가이드 드리기는 어렵습니다.
배고픈 'Hungly'
[Swift] EXC_BAD_ACCESS 에러 해결
최근 IOS 개발을 Swift로 배우며 여러가지 학습을 하던 중 독특한 크래쉬를 발견했습니다. 에러 로그가 안떠서 뭐지 ? 했는데 일단 해당 에러는 EXC_BAD_ACCESS (code : 1 , address : ~~~) 라고만 쓰여있고 다른건 안 써있더라구요. Thread 1이라니 메인스레드인건 알겠는데 과연 어디가 정확히 문제일까요? Thread 1: EXC_BAD_ACCESS 열심히 구글링한결과 일단 이 에러를 찾기 위해서는 1. XCode 상단 Product 메뉴 -> [Scheme] -> [Edit Scheme] 탭을 클릭합니다. 2. Run ->[Diagnostics] 탭에서 -> [Enable Zom...
이런내용 참고해서 디버깅해보셔야 할것 같습니다.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
우선 사용하고 계신 것들을 명확히 나열해주시겠어요? 원문의에는 ios라고만해주셔서요?
- flutter 쓰시나요?
웹뷰위에 웹서버 띄우신건가요? 아니면 flutter widget sdk 사용해서 연동 중이신가요?
영상으로도 남겨주세요, 네이버페이만 문제인가요?
이 부분 앱이 죽는게, 결제하기 버튼 눌렀을 때 화면 아래에서 위로 서서히 앱 결제 화몀이 슬라이드로 올라오는 중간에 죽는 상황이라서요,
Toss payments 플러터 플러그인의 이슈로 추정되는데요.. 해결의 실마리를 찾을 수 있는 방법이 없을까요?
플러터 맞습니다. 토스페이먼츠 플러터 플러그인 사용 중입니다.
네이버 페이 뿐 아니라 하나카드, 현대카드도 마찬가지로 재현됩니다.
이따 오후에 영상 올리겠습니다
저희 sdk내 example앱도 있을텐데, 그냥 실행했을 때는 문제 없나요?
플러터 위젯 sdk코드이고 샘플 코드와 동일한 방식으로 위젯 초기화 했습니다
이건 해보겠습니다
sdk 버전은 몇버전쓰시나요?
저희 sdk요
거의 복붙 수준입니다
플러터 위젯 최신 버전입니다
ios에서만 문제발생하나요?
예 맞습니다
실 기기에서만 발생하며 시뮬레이터에서는 잘 됩니다
package.json에서 몇버전인지 정확히 한번 공유주시고, 영상 및 example에는 이상없는지 확인바랍니다.
Dart packages
tosspayments_widget_sdk_flutter | Flutter package
This SDK helps you easily link the 'toss payments' payment module on the flutter.
이거 2.0.7 최시버전 사용했습니다
Example실행하니 클라이언트 키가 기본으로 뜨는게 잘못된 키라고 나오는데요 클라이언트 키가 제가 쓰는 테스트용 키랑 동일합니다
input form 화면 올려주시겠어요?
아, 제가 git pull 해서 example최신버전으로 다시 해보겠습니다
최신버전으로 해도 마찬가지인데요 혹시 토스팀에서는 잘 되시는지요?
Staging 환경 및 live환경도 모두 실패합니다
사용하신 시크릿 키도 알수 있을까요?
제가 만든 앱에서 사용하는 키는 아래와 같습니다.
test_gck_docs_Ovk5rk1EwkEbP0W43n07xlzm
test_gsk_docs_OaPz8L5KdmQXkzRz3y47BMw6
(이 페이지에서 복사했습니다. https://docs.tosspayments.com/guides/v2/payment-widget/integration)
example 앱의 시크릿 키는 제가 별도로 설정하거나 하지 않았고 git pull해서 바로 실행했습니다.
시크릿 키를 test_gsk_6BYq7GWPVvgnXqN20l45rNE5vbo1 로 해보시기 바랍니다.
example 앱 말씀이시지요? 어디에서 변경하면 될까요? dev, staging, live 중에 어느 환경을 해보면 될까요>
클라이언트 키 test_gck_docs_Ovk5rk1EwkEbP0W43n07xlzm
시크릿 키 test_gsk_6BYq7GWPVvgnXqN20l45rNE5vbo1
로 해보면 될까요?>
아 죄송합니다.잠시만요.
예~
이렇게 카드 고르고 결제하기 누르면 죽습니다 ㅠㅜ
결제하기는 제가 만든 버튼이 아니라서 어떻게 문제를 해결해야할지 모르겠습니다 ㅠㅠ
저희 로그상으로는 해당 키로 인증되지 않은 키라는 에러가 발생된 케이스가 안보입니다.
아, 그럼 flutter 예제 flutter run 으로 실행했을때 잘 되실까요? 저는 시뮬레이터, 실기기 둘다 저렇게 에러가 납니다
플러터 샘플 어디서 가져와서 빌드하신건지 알려주세요.
git clone https://github.com/tosspayments/tosspayments-sample-v1
cd tosspayments-sample-v1/payment-widget/flutter
flutter clean && flutter pub get && flutter run
GitHub
GitHub - tosspayments/tosspayments-sample-v1: 토스페이먼츠 SDK v1 샘플 프로젝트...
토스페이먼츠 SDK v1 샘플 프로젝트입니다. . Contribute to tosspayments/tosspayments-sample-v1 development by creating an account on GitHub.
이렇게 했습니다
일단 저희가 했을땐 이상이 없어요. 현재 사용 중인 여러고객사들도 있고요.
ios폰은 1개에서만 확인해보셔싼요?
성공하는 카드사도 있나요? '
좀 정리를 하고 싶은데요.
https://github.com/tosspayments/tosspayments-sample-v1
여기 소스로 테스트 하셨을때 에러나는 영상을 처음부터 찍어 주세요.
위에 올려드린 스샷 그대로 입니다. dev, staging, live 각각 화면 넘어가기 전에 캡쳐 헀습니다
아까 debug모드에서 계속 실패하다가 한번 성공 했습니다 현대카드로요. ios폰은 1개에서만 확인해보았습니다.
Toss payments 플러터 플러그인의 이슈로 추정되는데요.. 해결의 실마리를 찾을 수 있는 방법이 없을까요?이거는 왜 저희 플러그인 이슈로 생각하셨을까요?
아, 이유가 위젯에서 카드 선택, 할부기간 선택, "결제하기"를 눌렀을 때 화면 아래에서 페이지가 위로 쭈욱 말려 올라오면서 예를들어 현대카드를 선택했다면 현대카드 결제 화면이 올라오는데요, 이 화면 절반까지 올라온 상태에서 애플 메인쓰레드가 죽습니다 ㅠㅠ 이 부분 제가 위젯 안의 결제하기 코드를 작성한 것이 아니어서 플러터 플러그인 이슈로 추정했습니다
일단 동일 플러그인으로 정상적으로 잘 사용하는 가맹점들이 많기 때문에 플러그인 자체 이슈라기 보다는 만드신 앱의 구현 내용과 충돌이 되어있을 가능성이 높아 보입니다.
그리고 저희 샘플로 테스트 하셨을때 현대화면 결제화면은 잘 올라오시는거죠?
쭉 올라오는건 새로운 웹뷰가 올라오는거에요
아, 새로 올라오는건 웹뷰군요! 그럼 웹뷰에서 뭐가 충돌나는게 있는지 한번 봐야겠어요.
그리고 저희 샘플로 테스트 하셨을때 현대화면 결제화면은 잘 올라오시는거죠? -> 아닙니다. 제 앱에서 딱 한번 성공했습니다
쭉 올라오는건 새로운 웹뷰가 올라오는거에요 -> 제가 알고 싶었던건 이런 정보입니다 ㅠㅠ 이게 뭔지 모르니 어떻게 문제를 해결할지 도무지 감이 안잡히더라구요. 웹뷰쪽에 문제가 있는것 같네요. 뭔가 충돌난다든가요.
네 새로운 웹뷰를 띄우다가 뭔가 충돌나는 것 같네요 ㅠㅠ
플러터 최신 버전, 웹뷰 최신버전으로 올려서 문제 해결했습니다 ㅠㅠ
바쁘신 일정 중에 제가 너무 시간들이시게 한거 같아 죄송합니다.
해결되어 다행입니다
수고하세요!