LG G5 개발용 폰에서는 테스트하면 정상적으로 잘 설치된다.

그런데 갤럭시노트 8 에서 테스트를 하니까 제대로 설치가 안된다.

"앱이 설치되지 않았습니다." 라면서 설치가 되지 않는다.

 

release 모드로 APK 파일을 생성할 때

Signature Versions : V1 ← OS가 7.0 미만일 때

V2 ← OS가 7.0 이상일 때 체크해서 생성하면 되는데 둘다 체크해서 만들면 된다.

APK 파일이 잘못 생성될 수도 있으므로 프로젝트를 clean 한 후 다시 build한 후 APK를 생성한다.

 

구글은 PHA(유해한 앱) 앱의 비율을 차례대로 줄여 나갔으며, 비공식 마켓 등에서 배포되는 PHA 앱은 여전히 남아 있다.
안드로이드 8.0인 오레오(oreo)부터는 플레이 스토어 를 제외한 비공식 마켓에서 배포되는  앱을 설치할때는 새로운 권한을 얻도록 하였다.

 

1. 이미 동일한 패키지명의 앱이 설치 되어 있는 경우.

   - 이 경우에는 기존 설치된 어플의 흔적을 제거해주고 다시 설치하면 설치가 된다.

 

2. 구글 플레이 프로텍트에서 막은 경우

   - 구글 플레이 스토어 실행

   - 상단 왼쪽에 메뉴 아이콘을 클릭 후 Play 프로텍트 선택

   - "기기에 보안 위협이 있는지 검색" 항목 체크 해제

   - "유해한 앱을 감지하는 기능 보완" 항목 체크 해제

 

안드로이드 8.0 오레오에서 부터 '출처를 알 수 없는 앱' 정책에 변경됐다. 
구글 정책 변경에 따라 기존 방식인 '설정-해제' 방식은 사라지고 각 '앱 별 관리' 방식으로 바뀌게 되었다.

728x90
블로그 이미지

Link2Me

,

유벤투스 소속의 크리스티아누 호날두(1985년생)가 1년만에 A매치 헤드트릭을 했다.

포르투갈 축구대표팀의 호날두는 6일 오전 3시 45분(한국시각) 포르투갈 포르투의 에스타디우 두 드라가오서 열린 ‘2018-19 UEFA 네이션스리그’ 준결승에 선발 출전, 3골을 터뜨리며 스위스전 3-1 승리를 주도했다.
 
30대 중반에 접어든 호날두는 과거에 비해 현란한 드리블이나 체력 소모가 큰 움직임 보다는 골을 넣을 수 있는 최소한의 세밀한 플레이를 바탕으로 놀라운 결정력을 뽐냈다.


전반 25분 자신이 얻어낸 프리킥의 키커로 나선 호날두는 무회전 슈팅으로 선제골을 터뜨렸다.


https://sports.news.naver.com/wfootball/vod/index.nhn?firstVid546665=&id=547834&autoPlay=true&category=wfootball&listType=total



후반 43분 EPL 맨체스터 시티 소속의 세계 최고의 미드필더 중 한명인 베르나르두 실바의 땅볼 크로스를 논스톱 슈팅으로 두번째 골을 득점했다.

1분 뒤에는 역습 상황에서 수비수를 제치고 강력한 오른발 슈팅으로 쐐기골을 터뜨려 헤드트릭을 달성했다.


결승에 진출한 포르투갈은 네덜란드-잉글랜드 승자와 우승컵을 두고 다툰다.


제 2의 호날두라 불리던 주앙 펠릭스의 데뷔전은 아쉬움이 남았다. 호날두와 함께 투톱으로 나섰지만 70분 동안 단 1개의 슈팅을 시도하는데 그쳤다. 그는 평점 5.9점으로 포르투갈 선수 중 가장 낮은 점수를 받았다.



베르나르두 실바

맨체스터 시티(맨시티)가 올(2019년) 시즌 팀 전력의 핵심으로 떠오른 베르나르두 실바(24)와 3월에 2025년까지 재계약을 맺었다.
티키 베기리스타인 맨시티 이사는 "베르나르두(실바)는 특출난 재능을 보유했다"며, "그에게 장기 계약을 제시하는 건 우리에게 매우 쉬운 결정이었다.
그와의 재계약은 맨시티가 젊으면서도 세계 최정상급 선수단을 구축하는 데 집중하는 팀이라는 사실을 증명한다.
우리는 지속된 성공을 위한 기반을 만들고 싶다. 베르나르두는 이 계획에 부합하는 선수"라고 설명했다.


스피드와 테크닉, 높은 축구 지능을 가지고 있는 선수로 평가 받는 베르나르두 실바는 1994년 8월 10일 리스본에서 태어나 2002년 SL 벤피카 유스에 입단하여 처음 축구화를 신었다.

그후 2013년 정식으로 프로 데뷔를 했지만 1군에서는 단 1경기 밖에 뛰지 못했고 거의 대부분을 2군에서 뛰기만 했다.

본격적으로 베르나르두 실바라는 이름을 세계에 알린 것은 2016/17시즌.
실바는 음바페, 바카요코, 르마 등 동료들과 함께 모나코에 17년 만의 리그 우승 트로피를 안겼고
모든 대회 58경기에 출전해 11골 12어시스트를 기록, 시즌 종료 후 이적시장의 가장 뜨거운 감자가 되었다.

2017년 7월 실바는 평소 우상으로 여겼던 펩 과르디올라가 지도하고 있는 맨체스터 시티로 이적했다.


728x90

'스포츠 > 유럽 축구' 카테고리의 다른 글

토트넘 홋스퍼와 크리스탈 팰리스전  (0) 2019.09.15
블로그 이미지

Link2Me

,

스마트폰 앱을 다운로드하는 코드이다.

파일 다운로드하는 코드에 스마트폰 장치를 인식하는 코드와 접목하여 어플을 다운로드 하도록 한다.

파일을 직접 접속하는 경우에는 동작하지 않도록 $_SERVER['HTTP_REFERER'] 기능을 사용하여 체크한다.

좀 더 정교하게 보완하는 것도 좋을 것이다.


<?php
require_once "deviceChk.php"; // 접속 Device 체크
if($mtype > 2) { // PC에서 접속하면 아래 코드 미 실행
    echo 'no access';
    exit;
}
require_once 'config/config.php';
if($mtype==2){
    $url='<a href="appDown.php">ABC <br/>어플 다운로드</a>';
}
?>

<!DOCTYPE html>
<html lang="ko">
<head>
  <title>ABC App 다운로드</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <div class="row align-items-center justify-content-center" style="height:60vh;">
        <div>
            <h4><?php echo $url;?></h4>
        </div>
    </div>
</div>
</body>
</html>

=== appDown.php ===

<?php
if(!isset($_SERVER['HTTP_REFERER'])) {
    echo 'direct access denied!';
    exit;
}

require_once "deviceChk.php"; // 접속 Device 체크
if($mtype==2){ // Android 폰 이면
    require_once 'config/config.php';
    $filepath = './files/'.$hostAbb.'.apk';
    $filesize = filesize($filepath);
    $path_parts = pathinfo($filepath);
    $filename = $path_parts['basename'];
    $extension = $path_parts['extension'];

    header("Pragma: public");
    header("Expires: 0");
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename='$filename'");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: $filesize");
    header("Cache-Control: cache, must-revalidate");
    header("Pragma: no-cache");

    ob_clean();
    flush();
    //readfile($filepath); //Read and stream the file
    ///*
    $fp = fopen($filepath, "rb"); //rb 읽기전용 바이러니 타입
    if(!fpassthru($fp)) {
        fclose($fp);
    }
    //*/
}
?>


위 다운로드 코드에 약간 문제가 있는지 다운로드가 제대로 되지 않는 폰이 있어서 코드를 다시 수정했다.

아래 코드는 정상적으로 잘 다운로드 된다. 여러 폰에서 테스트를 했다. (update 2019.6.18)

<?php
if(!isset($_SERVER['HTTP_REFERER'])) {
    echo 'direct access denied!';
    exit;
}

require_once "deviceChk.php"; // 접속 Device 체크
if($mtype==2){ // Android 폰 이면
    require_once 'config/config.php';
    $filepath = './files/'.$hostAbb.'.apk';
    $filesize = filesize($filepath);
    $path_parts = pathinfo($filepath);
    $filename = $path_parts['basename'];
    $extension = $path_parts['extension'];

   header('Content-Description: File Transfer');
   header('Content-Type: application/octet-stream');
   header('Content-Disposition: attachment; filename="' . $filename . '"');
   header("Content-Transfer-Encoding: Binary");
   header('Expires: 0');
   header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
   header('Pragma: public');
   header("Content-length: ".filesize($filepath));
   ob_clean();
   flush();
   readfile($filepath);
}
?>


728x90
블로그 이미지

Link2Me

,