메뉴 건너뛰기

XE 푸시 앱

조회 수 322 추천 수 0 댓글 13
Atachment
첨부 '2'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

이번에도 매우 중요한 업데이트이니 꼭 속히 업데이트 해주시기 바랍니다.

 

(글을 다시 수정하였습니다.)

 

1. 무한로딩 및 로그인 오류, 쿠키세션 오류 원천적으로 해결

 

제일 중요한 문제는 그동안 일부 사이트에서 무한로딩 및 로그인 오류, 쿠키세션 오류 발생원인을 파악했다는 것입니다.

 

기존 앱은 앱 실행후 인트로화면이 나오고, 앱 background에서 웹페이지를 처음으로 로딩합니다. 그리고 페이지 로딩이 완료되면 onPageFinished 함수를 호출하게 되는데, 저는 이 함수 안에 다음 동작이 있게끔 해놓았습니다.

 

그런데 이번에 처음 알게 된 사실이 앱을 처음 설치하고 실행할 때, 그리고 가끔씩 스마트폰 상황에 따라, 또는 서버의 상황에 따라 onPageFinished 함수가 호출되지 않는다는 것을 알게 되었습니다. 예를 들어서 웹페이지 자체가 슬라이드 이미지가 있거나 광고 이미지가 있어서 그것이 계속 바뀌면서 로딩이 되면, onPageFinished가 호출되지 않는 것이죠. 그것은 서버나 기기 상황에 따라 다양하게 나타날 수 있습니다. 이 함수가 호출되지 않으니 무한로딩 이후에 쿠키세션이니... 에러코드니 하는 알림이 나오는 것입니다. 전혀 쿠키나 세션 문제가 아니었습니다. ㅠ,.ㅜ

 

그래서 onPageFinished에서 다음 동작에 대한 지시를 내리지 않고, 메인 쓰레드에서 곧바로 다음동작이 되도록 하여서, 이제 이런 오류가 원천적으로 발생하지 않도록 하였습니다.

 

이 문제가 있었던 분들은 꼭 새버전으로 제작하셔서 이 문제가 개선되었는지 여부를 알려주시면 감사하겠습니다.

 

2. 구글의 ssl보안공격 알림

 

두번째로 중요한 문제는 구글 보안 심사가 까다로워졌다는 것입니다. 지금 구글플레이 개발자 콘솔에 가보시면 보안오류 알림이 떠있을 것입니다(@조민현님 제보). ssl호스팅 접속이 가능하도록 하기 위해 "인증되지 않은 사이트 오류"를 무시하고 가도록 소스가 만들어져 있는데, 그것이 보안공격의 우려가 있다고 구글이 알려줍니다.

 

그래서 정석 그대로 가기로 하였습니다. ssl인증서에 문제가 있거나 ssl규칙을 따르지 않은 채 ssl을 사용하는 사이트의 경우에는 앱이 제대로 동작하지 않습니다.

 

3. 롤리팝이나 마시멜로에서 앱 데이터 삭제 안되는 문제 해결

 

그동안 롤리팝이나 마시멜로에서 앱 데이터 삭제가 안 되는 문제가 있었습니다.

이번에 원천적으로 해결하였습니다.

 

앱 실행시 모든 웹뷰 캐시를 자동 삭제하도록 하여, 앱데이터가 쌓이지 않도록 하였습니다. 매번 알림설정창에 들어가서 버튼을 누를 필요가 없어요. 다만 사용하는동안 조금 속도가 느릴 수는 있습니다.

 

4. 인트로 화면 표시 시간 모듈에서 정할 수 있도록 함.

 

1.png

 

이것을 정하는 이유는 두 가지입니다. 웹서버 속도나, 스마트폰이 고성능일 때, 인트로화면어 너무 빨리 훅 지나가서 좀 모양새가 좋지 못하죠. 그래서 일부러 보여주는 목적이 있구요.

 

두번째는 사실상 더 중요한 문제인데, 웹서버 속도가 느릴 경우를 위해서 이 부분 설정을 만들었습니다. 서버 속도가 느릴 경우 인트로 화면 표시 시간을 늘려주셔야 안정적으로 접속이 됩니다. 그래서 본인 서버가 느린편에 속한다면 4-5초 정도로 해주시면 됩니다. 그 이상은 사용자가 답답해하니 안 됩니다.

 

이것은 서버와 최초통신 이후 안정적인 사이트 접속을 위한 딜레이 시간을 의미하며, 따라서 실제로 입력한 시간보다 약간 더 길게 나옵니다.

 

5. 알림설정 창 내용 심플하게 나오도록 하였습니다.

 

5.png

 

 

그 외에도 푸시 알림이 왔을 때, 그 푸시 알림을 누를 때도 인트로 화면이 나오도록 바꾸었구요. 메인화면 로딩바 색깔도 조금 튀는 것 같아 어둡게 바꾸었습니다.

 

개인적으로 이제 오류가 거의 해결된 것 같아 만족스럽습니다.

중요한 업데이트이니 꼭 업그레이드 해주시고 또 오류가 있으면 알려주세요...

늘 감사합니다.

 

참고로 현재 xe푸시앱은 수정테스트 과정에서 앱 제작을 잘못하여 앱접속시 오류가 발생합니다. 다시 실행하면 정상적으로 작동되니 그냥 계속 사용해주시면 되구요. 이번 업데이트 버전(12.7버전)에는 이 문제가 없으니 염려 안하셔도 됩니다.

 

 

  • ?
    웹지기 2016.02.15 18:51
    인증되지않은 사이트 알럿은 ssl 사용하는 사이트라도 http요청이 없이 잘 구성해 놓으면 경고 자체가 안뜨는게 맞지 않나요??
  • ?
    관리자 2016.02.15 19:06
    제가 ssl을 잘 몰라서 아직 이쪽 관련해서 어떻게 대응해야 할지 잘 모르는 상황입니다.

    무료든 유료든 정식인증된 사이트의 경우와 그렇지 않은 경우 어떻게 대응해야 하는지 잘 몰라요.

    제가 알고 있기로는 인증되지 않은 사이트일 경우 웹뷰에서 onReceivedSslError 함수를 호출해서 에러를 표시하도록 되어 있는 것 같아요.

    혹시 웹지기님 사이트는 인증된 사이트인지요? 그러면 위에서 언급한대로 onReceivedSslError 함수 부분을 아예 삭제해보시고 앱 제작 확인 부탁드립니다. 하지만 그렇게 해서 안 된다면, 인증에 오류가 있는 것이든지, 앱소스가 ssl을 전혀 대응하지 못하기 때문에 오류가 있는 것이든지 둘중의 하나이겠지요...

    그래서 이제까지는 오류를 무시하고 진행하도록 했기 때문에 정상접속이 되었던 것이구요. 즉 기존 소스는 웹뷰에서 보여지는 모든 사이트를 신뢰할 수 있게 해놓고서 접속해서 잘 되었는데, 구글에서 문제삼으니깐, 일단 ssl사이트 진입시 보안경고 alert창을 띄우니깐 통과가 되는 것 같아요...

    아예 앨럿 자체가 안 뜨도록 하려면 12.6버전의 MainActivity.java파일의 370,846번째줄 prefs.edit().putString("ssl_ok", "false").apply();의 'false'를 true로 바꿔주면 알림이 아예 뜨지 않습니다. 그런데 이렇게하면 구글에서 통과과 될지는 아직 확인해보지 않았습니다.
  • ?
    웹지기 2016.02.15 19:09
    저희는 기존에 구글플레이에서 보안경고는 한번도 뜬적은 없습니다. 브라우저에서 이 경고는 ssl을 사용하는 사이트 임에도 (보안연결을 하겠다고 선언하여 https로접속되게 해 놓고..) 컨텐츠 안에 http로 로드되는게 감지되면 구글크롬등의 브라우저에서 뜨웁니다. 앱도 마찬가지 동작으로 이어져야 할겁니다. 엄격하게 ssl사용규칙에 맞게 https로 콘텐츠로 구성한 사이트는 절대 경고창이 뜨지 않아요. 앱에서 어떻게 동작하는건지 궁금합니다.

    구글이 감지해서 경고창을 뛰우는건 현재 페이지내에 보안연결이 아닌 http로 로드(이미지 등) 되는것을 의미 합니다.

    정상적인 사이트에서 유저에게 경고를 띄우는건 잘못된 겁니다.

    저 코드가 ssl규칙 위반을 감지했을때 띄우겠다는 코드라면 당연히 들어가야할 코드이고 문제 없습니다.

    저희 사이트를 크롬브라우저로 접속해보세요. 어떠한 페이지에서도 ssl사용에 문제없이 만들어 놓은 사이트입니다.
  • ?
    점보롤 2016.02.15 19:57
    동감합니다. 정상적인 사이트에까지 경고창을 띄우는건 좀 아닌것 같습니다. 관리자님께서는 다시 한번 생각해주시면 좋겠습니다.
  • ?
    웹지기 2016.02.15 19:58
    저 코드가 어떻게 동작하는건지 아직 확실하지 않습니다. @관리자 님께서 어떤 방식으로 경고메시지를 띄워 주는지 꼭 확인해 주셔야할 사항 같습니다. 무조건 띄우는 거라면 문제가 있죠. 경고 안띄울라고 사이트 전체에 http로드 되지 않게 스크립트 하나하나 다 신경써서 고쳐 놓았는데요.
  • ?
    관리자 2016.02.15 21:31
    무슨 말씀인지 알겠습니다.

    우선 웹지기님께서 최신버전 앱소스를 다운받으신 후 공지사항에서 언급된 것처럼 onReceivedSslError 함수부분을 완전히 지워주셔서 테스트해주셨으면 좋겠습니다. 만일 정상작동되면, 알림이 안 되도록 다시 업그레이드 하겠습니다. 그러나 에러를 뿜으면서 앱이 종료되거나 빈화면이 나온다면, onReceivedSslError 이 항목이 필요합니다.

    웹지기님께서 이 부분 확인해주신다면, 이 부분 개선하는데 큰 도움이 될 것 같습니다. 부탁드립니다.
  • ?
    웹지기 2016.02.15 21:35
    무슨말인지 잘 모르겠습니다.
    http://jabstorage.tistory.com/4

    여기에 보시면 에러가 안뜨게 하면 구글에서 경고를 하게 되었습니다.
    혹시 그동안 인증서오류를 무시하게한 소스가 있었던건가요? 그럼 그건 빼는게 맞습니다.
    인증서오류 안뜨게 사이트를 유지하는건 사이트 운영자 책입입니다.

    공지에 언급된 코드가 어떤코드인지 알려주시면 제가 이해하기 쉬울듯 합니다.
  • ?
    관리자 2016.02.15 21:38
    그러면 빼고 지금 다시 업로드 하도록 하겠습니다. 12.7버전으로 테스트 부탁드립니다.
  • ?
    웹지기 2016.02.15 21:40
    코드가 어떤 의미인지 알려주세요. 인증서오류가 발견되면 알림을 띄우는 거면 있어어 하구요. 인증서 오류를 무시해버리는 소스라면 구글에서 경고가오니 빼는게 맞구요.
  • ?
    관리자 2016.02.15 21:42
    MainActivity.java 파일 1509번째 줄에 아래의 내용을 다 지워주시면 됩니다. 아래의 내용이 인증서 오류를 무시하고 가도록하는 소스입니다. 빼는게 정답인 것 같습니다.

    @Override
    public void onReceivedSslError(final WebView view, final SslErrorHandler handler, SslError error) {

    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
    ssl_ok = Boolean.parseBoolean(prefs.getString("ssl_ok", ""));

    if(!ssl_ok) {

    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    AlertDialog alertDialog = builder.create();
    alertDialog.setTitle(R.string.notice);
    alertDialog.setMessage(URL_home + getString(R.string.ssl));
    alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, getString(R.string.go), new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    prefs.edit().putString("ssl_ok", "true").apply();
    // Ignore SSL certificate errors
    handler.proceed();
    }
    });

    alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    Log.d("CHECK", "Button cancel pressed");
    handler.cancel();
    }
    });
    alertDialog.show();
    }else{
    handler.proceed();
    }

    }
  • ?
    웹지기 2016.02.15 21:48
    소스분석은 저는 안되구요. 말씀하신 인증성오류 무시 코드를 빼버리면 구글보안에도 위반이 되지 않아 구글플레이에 문제없고 또 강제로 우리앱 ssl에 문제가 있을수 있다는 동의도 받을 필요없죠.

    무시하는 코드를 제거하먼 아마도 인증서 문제있는 사이트는 크롬브라우저처럼 경고가 뜰테니까요.
    도저희 해결하지 못하는 사이트들이 앱을 만뜰때 인증서에러 무시코드를 사용하는듯 합니다.
  • profile
    조민현 2016.02.18 17:12

    위 ssl 관련 오류를 제보한 사람입니다.

    제가xepushapp 제작한 어플은 5개입니다.

    2개는 2개월전에 만들었고
    2개는 1개월전
    다른 1개는 제보한 당시에 만들었습니다.
    모두 버전이 다르죠. 하지만 초기에는 같은날 제작했는데, 보안경고는 뜨지 않았습니다.
    코드가 중간에 바뀌면서 생긴 일이지 않을까 하는 생각에 제보했습니다.

    다른1개 - 제보한 시점에 만든 어플은(보안경고) xepushapp에서 제공하는 프리미엄버전을
    계속 업데이트 하면서 발생된 일인것 같다는 짐작을 하게된거죠

    5개 어플 모두 같은 xe버전에 애드온부터 ssl설정까지 모두 같습니다
    클라우드플레어 Flexible 연결만 사용중입니다.

  • ?
    웹지기 2016.02.18 17:15
    보안경고 문제는 제작자분께서 이미 언급하셨듯이 원할한 ssl 사이트이용을 위해 경고문구를 무시하는 코드를 넣으신 적이 있습니다. 이 코드때문에 구글에서 문제를 삼아 경고를 띄우는 것입니다. 12.7부터 해당 코드 삭제했으니 최신버전으로 앱을 만드시면 구글로부터 경고는 안받으실거에요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 [필독] 앱제작 관련 공지글입니다 관리자 2019.10.14 26
공지 (중요) 앱소스 비공개 정책 적용 예정(2018년 7월부터) 1 관리자 2018.06.13 1054
64 모듈 9.2 / 앱 버전 12.9 / 서버 모듈 2.3 버전 프리미엄 버전 업그레이드 안내 12 관리자 2016.03.05 165
63 xe푸시앱 공식앱 업그레이드 해주세요!!! 1 관리자 2016.02.26 116
62 프리미엄 버전 라이센스 정책 안내 29 관리자 2016.02.23 348
» (매우 중요) 모듈 9.1 / 앱 소스 12.7버전 업그레이드 13 file 관리자 2016.02.15 322
60 일부 기기에서 처음 앱 설치하고 실행할 때, 또는 간혹 오류가 발생하는 문제 해결중에 있습니다. 6 관리자 2016.02.13 92
59 모듈 8.7 / 앱소스 12.3 업그레이드 안내!!! 9 file 관리자 2016.02.11 94
58 모듈 8.5 / 서버모듈 2.1 / 위젯 3.5 / 앱소스 12.1 업그레이드 20 file 관리자 2016.02.07 120
57 모듈 8.4 / 앱 소스 12.0 버전 업그레이드 3 관리자 2016.02.05 83
56 모듈 8.3 / 앱소스 11.8버전 업그레이드 안내 10 file 관리자 2016.02.01 138
55 모듈 8.2 / 앱소스 11.7 버전 업그레이드 3 file 관리자 2016.01.28 93
54 (구조변경) 모듈 8.1 / 앱소스 11.6 버전 업그레이드 27 관리자 2016.01.25 172
53 모듈 8.0 / 서버모듈 2.0 / 앱소스 11.4 버전 업그레이드 13 관리자 2016.01.23 130
52 웹뷰 11.3 / 모듈 7.9 / 서버모듈 1.9 업그레이드 공지 16 관리자 2016.01.21 127
51 롤리팝 5.0버전에서 여전히 몇가지 문제가 발견되었습니다. 4 관리자 2016.01.19 86
50 애드몹을 사용하지 않을 경우 앱소스를 수정해주셔서 피해가 없도록 해주세요. 1 관리자 2016.01.19 109
49 웹뷰 11.2 버전으로 다시 업데이트 하였습니다. 6 관리자 2016.01.18 88
48 리뉴얼 베타 버전 출시하였습니다!!!!!! 35 관리자 2016.01.18 121
47 현재 앱이 좀 불안합니다. 그래서 전체적인 리뉴얼 작업을 진행중입니다. 8 관리자 2016.01.13 134
46 모듈 7.7 / 앱소스 10.9 / 위젯 3.4 / 서버모듈 1.7버전 업그레이드 6 file 관리자 2016.01.12 151
45 현재 앱종료되는 문제 해결중에 있습니다 1 관리자 2016.01.09 109
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9