728x90
반응형

Github Pages 블로그 테마로 minima를 사용하고 있는데 메인 페이지에 페이지네이션 기능이 없었다.

 

이를 위해 jekyll-paginate_config.ymlGemfile에 추가하면 된다.

 

_config.yml 파일에 다음을 추가한다.

...
paginate: 5
paginate_path: "/page/:num/"

plugins:
  ...
  - jekyll-paginate

Gemfile 파일에 다음을 추가한다.

group :jekyll_plugins do
  ...
  gem "jekyll-paginate"
end

그리고 페이지를 넣기 위해 예제 중에 하나를 home.html에 추가했고,

 

site.postspaginator.posts로 변경했다.

{% raw %}{% if paginator.total_pages > 1 %}
  <div class="pagination">
    {% if paginator.previous_page %}
    <a href="{{ paginator.previous_page_path | prepend: site.baseurl | replace: '//', '/' }}">&laquo; Prev</a>
    {% else %}
    <span>&laquo; Prev</span>
    {% endif %}

    {% for page in (1..paginator.total_pages) %}
    {% if page == paginator.page %}
    <em>{{ page }}</em>
    {% elsif page == 1 %}
    <a href="{{ paginator.previous_page_path | prepend: site.baseurl | replace: '//', '/' }}">{{ page }}</a>
    {% else %}
    <a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: ':num', page }}">{{ page }}</a>
    {% endif %}
    {% endfor %}

    {% if paginator.next_page %}
    <a href="{{ paginator.next_page_path | prepend: site.baseurl | replace: '//', '/' }}">Next &raquo;</a>
    {% else %}
    <span>Next &raquo;</span>
    {% endif %}
  </div>
  {% endif %}
{% endif %}{% endraw %}

하지만 다음과 같은 에러가 나면서 동작하지 않았다.

Pagination: Pagination is enabled, but I couldn't find an index.html page to use as the pagination template. Skipping pagination.

여러 시행착오 끝에 index.md 파일을 index.html 파일로 변경하여 위 문제를 해결할 수 있었다.

 

참고 문헌

  1. https://jekyllrb-ko.github.io/docs/pagination/

  2. https://github.com/jekyll/jekyll-paginate

반응형
728x90
반응형

앱을 올리고 한참이 지난 후 "정책 위반으로 Google Play에서 앱이 삭제되었습니다."라는 내용의 메일을 받았다.

내용을 읽어보니 대강 무엇이 문제인지는 바로 알 수 있었다.

 

앱에서 애드몹(AdMob)과 애널리틱스(Firebase Analytics)를 사용하고 있었는데

 

이에 대한 개인정보처리방침을 올리지 않았기 때문이라는 생각이 들었다.

 

하지만 어떻게 대처해야 할지 몰라 난감했는데

 

검색해보니 많을 분들이 이미 겪어 어떻게 해야하는지 금방 알 수 있었다.

 

여기에서 개인정보처리방침을 만들 수 있다.

 

그리고 해당 페이지를 Github이나 블로그 등에 올리고

 

앱정보 > 스토어 등록정보 > 개인정보처리방침 에 주소를 넣고 업데이트하면 된다.

 

참고 문헌

  1. https://mnworld.co.kr/1901

반응형
728x90
반응형

앱을 배포한 이후에 비정상 종료에 다음과 같은 내용들이 올라왔다.

Caused by: java.lang.ClassNotFoundException:
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:93)

이를 해결하기 위해 검색한 결과 multidex를 추가하면 해결이 된다는 내용을 보고 추가하기로 했다.

 

기본적인 내용들은 여기에서 보면 된다.

 

AndroidX를 사용하고 있어서 이를 기준으로 내용을 추가했다.

dependencies {
    ...
    implementation "androidx.multidex:multidex:2.0.1"
    ...
}

attachBaseContext 함수를 추가할 때 라이브러리를 임포트해줘야하는데 다음과 같다.

...
import android.content.Context;
import androidx.multidex.MultiDex;
...

public class MainApplication extends Application implements ReactApplication {
  ...
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }
  ...
}

 

참고 문헌

  1. https://developer.android.com/studio/build/multidex?hl=ko

반응형
728x90
반응형

앱을 릴리즈로 빌드한 다음 실제 기기나 에뮬레이터에서 실행했을 때 충돌(Crash)이 나는 경우가 있다.

 

이럴 땐 어디서 에러가 났는지 확인해야하는데 다음의 명령어로 로그를 확인할 수 있다.

$ adb logcat *:E

이번에 react-native-svg를 적용하면서 앱이 실행과 동시에 죽는 경우가 발생했다.

 

이를 해결하기 위해 위의 명령어로 로그를 살펴보니 다음과 같이 나왔다.

07-01 02:49:52.865 26792 26792 E AndroidRuntime: java.lang.IllegalStateException: java.lang.NoSuchFieldException: fill
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.t.a(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.ad.a(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.t.d(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.j.b(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.j.a(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.t.d(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.j.b(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.j.a(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.t.d(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.j.b(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.j.a(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.t.d(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.x.a(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.x.j(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at com.horcrux.svg.x.onDraw(Unknown Source)
07-01 02:49:52.865 26792 26792 E AndroidRuntime:     at android.view.View.draw(View.java:17185)

progaurd로 난독화를 한 후 찾지 못해서 난 오류로 해당 라이브러리를 난독화에서 제외하면 된다.

 

해결 방법은 android/app/progauard-rules.pro에 다음을 추가하고 빌드하면 된다.

-keep public class com.horcrux.svg.** {*;}

 

참고 문헌

  1. https://github.com/react-native-community/react-native-svg/issues/481

반응형

'React Native' 카테고리의 다른 글

[React Native] Async Storage 사용하기  (0) 2020.01.25
[React Native] MultiDex 추가  (0) 2020.01.25
[React Native] Firebase Analytics 사용  (0) 2020.01.25
[React Native] Webview 사용  (0) 2020.01.25
[React Native] Admob 사용  (0) 2020.01.25

+ Recent posts