구글 플레이 스토어 오류? 업데이트 버튼이 안 뜰 경우.
체감상 해결됐던 플레이 스토어에서 앱 업데이트 버튼이 안 뜨는 오류 고치는 방법에 대해 설명드리겠습니다.
(생략하실 분들은 맨 밑을 봐주세요!)
* 주의 : 이 모든 것은 개인적인 추측과 체감상 해결방법에 대한 내용이므로, 100% 확신이 있는 것은 아니며, 다만 비슷한 오류가 있는 분들에게 도움이 되고자 합니다.
* 누구 때문에 생길 수 있을까?
개발사(퍼블리셔), 구글(스토어) 등
* 어떤 경우에 이러한 문제가 생길 것인가?(오직 작성자의 개인적인 추측으로만 이루어져 있습니다.)
스토어에서 업데이트 버튼이 안 뜰 경우 왜 그럴까 생각해보았습니다.
많은 분들이 플레이 스토어에 등록하는 개발사에 모든 책임을 씌우지만, 아닐 경우도 존재한다는 것이죠.
앱에서 업데이트하고, 서버에 업데이트 버전 올려놨는데, 플레이 스토어에서 업로드가 안 됐을 때(검수 시간 등으로 인한 지연) 버전이 일치하지 않을 수 있겠죠.
-> 이런 경우 업데이트 이후 접속하면 됩니다. (지금까지 한두번 빼고는 본 적이 없는 문제죠)
혹은 기존에 스토어를 켜놓아서 제대로 인식을 못 했을 수 있죠.
-> 이런 경우 스토어를 완전히 종료한 후 실행하면 됩니다.
최근 자주 생기는 문제는, 해당 기기의 스토어에서 앱이 업데이트 됐는지 인식을 못 하더라구요~
-> 구글 플레이 서비스 or Google Play 서비스에서 모든 데이터 삭제 후 구글 플레이를 실행해보세요!
이렇게 하면, 서버 정보를 다시 읽어오는 것인지, 바로 업데이트 버튼이 보이더라구요!
이밖에 해보진 않았지만, 구글 플레이 서비스가 아닌 구글 플레이 스토어의 데이터를 삭제 후 하면 된다고도 합니다.
* 요약 : 글 작성자의 추천 방법 순서
1. 한번 완전히 종료 후 실행. 백그라운드에서도 완전히 꺼준다.
(대부분 여기서 해결 됨)
2. 해당 앱과 구글 플레이 스토어를 종료한 후 "Google Play 서비스"(기기별로 한글 혹은 영어일 수 있습니다.) 앱의 모든 데이터 삭제를 누른 후 다시 실행.
(여기까지 온 경우 해결 안 된 경우는 못 봤습니다.)
이 글이 많은 분들께 도움이 됐으면 좋겠네요.
'프로그래밍 > 공통' 카테고리의 다른 글
[C++/C#] 생성자 호출 및 형변환 제어(explicit) 그리고 [RequireComponent(typeof(A))] (0) | 2016.01.27 |
---|---|
[공통] virtual과 abstract의 차이 (0) | 2015.12.21 |
오버라이딩 / 오버로딩 (0) | 2015.02.02 |
[C++/C#] 생성자 호출 및 형변환 제어(explicit) 그리고 [RequireComponent(typeof(A))]
class A를 선언한 스크립트,
class B 선언한 스크립트가 있을때
[RequireComponent(typeof(A))]
class B
{
}
이렇게 class B를 선언하기 전에 RequireComponent시키면 class A가 어태치된다
--------------------------------------------------
class Test
{
public int number;
public Test(int n)
{
number = n;
}
}
위와 같은 클래스가 있을 때,
void main()
{
Test t;
Test t1(5);
cout « t.number;
cout « t1.number
t = 10;
coun « t.number;
}
문제1. cout으로 number를 출력하고 있는데 C#과 C++에서는 값이 어떻게 나오는지 써보시오.
C++일 경우 0 5 10 나온다.
C#일 경우 C#일 경우 t = 10에서 에러 호출낸다.
문제2. 그러면 C++에서 t = 10; 구문을 t = 10.0; 으로 바꿀 경우 어떻게 될까?
위와 같이 출력됨.
문제 1과 2의 이유
C#은 암시적형변환을 안해줘서 무조건 형이 다르면 에러를 띄우고, C++ 특성 상 암시적 형변환이 발동돼서 값을 받는게 실수형의 생성자가 없어서 컴파일러가 암시적으로 int형으로 형변환 시켜버려서 호출되는것이다.
----------------------------------------------------------------------------
그럼 내가 생성자에서 int형을 받는데 무조건 int형만 받을려고 할려면 생성자를 어떻게 해야될까??
생성자를 만들때
public explicit Test(int n)
이렇게 explicit 이 키워드를 사용하면 매개변수 타입이 현재 int형인데 float형이 들어오면 오류를 띄우게 하는거
무조건 int형만 받겠다는 의미로 이 키워드를 사용한 메소드는 암시적 형변환을 시도 안하겠다는 의미로 사용하는것이다.
하지만 강제적 형변환으로 해서 접근할 수 있다.
explicit Print(int n) { n을 받아서 출력 }
Print(10) 이렇게 하면 10을 호출하겠지만, 만약에 Print(10.5) 라고 써야될 경우
Print((int)10.5)
강제적 형변환을 해서 넘겨주면 된다.
'프로그래밍 > 공통' 카테고리의 다른 글
구글 플레이 스토어 오류? 업데이트 버튼이 안 뜰 경우. (0) | 2021.11.11 |
---|---|
[공통] virtual과 abstract의 차이 (0) | 2015.12.21 |
오버라이딩 / 오버로딩 (0) | 2015.02.02 |
[공통] virtual과 abstract의 차이
virtual과 abstract의 차이는 추상클래스 혹은 메소드를 만듬에 사용처가 다르다.
virtual같은 경우 상위 부모클래스에서 만든 메소드 중에서 하위 클래스로 갈 공용적인 메소드에 주로 사용한다.
RPG게임에서 PC와 몬스터, PC와 NPC 등 이 있을 경우, 공통적으로 있는 손, 발, 몸 등 에 해당하는 부분이다.
abstract는 공용이되 선언만 해놓고 필요할 때 사용하려고 만들어놓는것이다.
동물이라는 클래스를 만들 때 동물마다 울음소리, 울음주기 등이 다른데, 그에 해당하는 부분에 넣는것이다.
'프로그래밍 > 공통' 카테고리의 다른 글
구글 플레이 스토어 오류? 업데이트 버튼이 안 뜰 경우. (0) | 2021.11.11 |
---|---|
[C++/C#] 생성자 호출 및 형변환 제어(explicit) 그리고 [RequireComponent(typeof(A))] (0) | 2016.01.27 |
오버라이딩 / 오버로딩 (0) | 2015.02.02 |
오버라이딩 / 오버로딩
오버라이딩( = 함수 재정의)
- 함수를 입맛에 맞게 재정의 해서 사용함.
주로 추상클래스로 만들어서 사용함.
오버로딩( = 함수 중복)
- 함수를 중복(이름 동일)하게 정의함(매게변수만 다르게)
매게변수가 다를 경우 다른 메소드로 인식함.
ex)
public void text(int a){
}
public void text(int a, int b){
}
*추상클래스 = 함수명으로 메소드를 만들 되 함수를 정의하지 않음으로 사용할 수 없는 메소드를 정의하지만, 나중에 정의가 가능하도록 만듬. 주로 상속 등에 사용됨.
'프로그래밍 > 공통' 카테고리의 다른 글
구글 플레이 스토어 오류? 업데이트 버튼이 안 뜰 경우. (0) | 2021.11.11 |
---|---|
[C++/C#] 생성자 호출 및 형변환 제어(explicit) 그리고 [RequireComponent(typeof(A))] (0) | 2016.01.27 |
[공통] virtual과 abstract의 차이 (0) | 2015.12.21 |