google-services.json의 실제 역할은 무엇입니까?
현재 앱에 Google Analytics와 GCM 서비스를 추가하는 작업을 하고 있습니다.두 서비스 구현 가이드에서 구글은 개발자에게 json 파일 google-services.json을 생성하여 앱의 루트 디렉토리에 저장하도록 요청합니다.
앱에서 이 json 파일을 삭제해도 서비스는 정상적으로 동작합니다.
이 파일의 용도를 확실히 알고 싶습니다.사용방법 및 작동방법
구글 서비스 플러그인과 json에 대해 조금 조사했더니 이 플러그인의 소스를 찾았습니다.
먼저 해야 할 일
classpath에서 참조되며 apply가 있는 gradle-plugin google-services는 빌드 타임 플러그인뿐입니다!따라서 앱의 빌드 프로세스에 영향을 줄 뿐 런타임 프로세스에 영향을 미치지 않습니다.
이 플러그인은 Google 서비스를 앱에 빠르게 통합하기 위한 빠른 시작 지원일 뿐입니다.분명히 이 과정은 다소 복잡하며 문서화되어 있지 않기 때문에 구글은 이 과정이 무엇을 하는지 분명히 했어야 했다.
실제로 플러그인 버전 com.google.gms:google-services:1.4.0-beta3의 소스 코드를 찾았는데 App Invites에 대한 특정 참조도 찾을 수 없었고 App Invites에 대한 Google API도 찾을 수 없었습니다(프로젝트 ID를 가진 일반 API 프로젝트를 사용했을 뿐인지도 모릅니다).
기능
google-services gradle-plugin은 앱 모듈에서 언급된 google-services.json 파일을 찾습니다.그런 다음 Google API 개발자 콘솔에서 생성된 project-id 및 tracking-id 등의 구성된 설정을 Google-services.json 파일로 검색합니다.발견된 설정에서 Android 리소스 값이 다음 경로로 생성됩니다.
$project.buildDir/generated/res/google-services/$variant.dirName/values/values.xml
예를 들어 앱의 디버깅 빌드의 경우:
app/build/generated/res/google-services/debug/values/values.xml
예를 들어, GCM 튜토리얼을 따를 경우 JSON 파일에는 API 프로젝트의 ID가 다음과 같은 Android 리소스로 포함됩니다.
<string name="gcm_defaultSenderId">project-id</string>
따라서 이 플러그인과 JSON 파일은 앱을 실행하거나 게시하는 데 필수적이지 않습니다. 특정 Google API 기능을 쉽게 통합할 수 있도록 몇 가지 기본 Android 리소스 파일을 생성하는 빠른 시작 도우미일 뿐입니다.
아래 참조된 소스 코드에서 Google 서비스 플러그인은 항상 app/build.gradle에 정의된 모든 app 변수에 대해 이러한 Android 리소스를 생성합니다.
원하지 않으면 생성된 리소스를 원하는 앱 변수에 사용하고 다른 리소스를 삭제해야 합니다.app/build.gradle에서 Google 서비스 플러그인 적용을 삭제하십시오. 그렇지 않으면 모든 앱 변수에 대해 다시 생성됩니다.
기능하지 않는 것
이 플러그인과 JSON 파일은 해당 앱의 Google 기능에 직접적인 영향을 미치지 않습니다!GCM이나 Google Analytics와 같은 통합 방법에 대한 developer.android.com의 이전 튜토리얼을 이미 따라왔다면 gradle-backed google-services나 google-services.json 파일을 통합할 필요도 없습니다.
어디서 소스를 찾았는지 주목해 주세요.
Google-services gradle-plugin을 통합하고 프로젝트를 동기화하면 Gradle은 다음과 같은 경로로 Google-services 종속성을 자동으로 다운로드합니다(Windows에서는 홈/.gradle for Linux).
C:\Users\user\.gradle\caches\modules-2\files-2.1\com.google.gms\google-services\1.4.0-beta3\f1580f62e3be313eba041ce19b64fd3f44cf8951\google-services-1.4.0-beta3-sources.jar
이 jar 파일을 추출하면 다음 두 개의 파일이 있습니다.
GoogleServicesPlugin.groovy
GoogleServicesTask.java
그래들 소스코드가 포함되어 있습니다.
GoogleServicesPlugin.groovy
에는 App-Resolutions 처리 및 경로의 기본 정의 등이 포함되어 있습니다.
GoogleServicesTask.java
에는 실제 작업 정의가 포함되어 있습니다.실제 동작에 대해서는, 다음의 방법을 참조해 주세요.
@TaskAction
public void action() throws IOException {
이 파일의 실제 용도는 무엇입니까?
google-services.json에는 GoogleApiClient와 연결하는 동안 확인하는 데 필요한 개발자 자격 증명 및 구성 설정이 포함되어 있습니다.서비스는 개발자 계정을 감지하고 있지만 앱을 공개하면 json 파일이 없으면 작동하지 않습니다.삭제하지 마세요.
공식 문서에는 다음과 같이 기술되어 있습니다.
응용 프로그램이 액세스할 범위 및 API를 지정하는 GoogleApiClient를 구축합니다.GoogleApiClient가 연결되면 사용자가 로그인합니다.
구조 섹션을 참조하십시오.
모듈에 google-services.json을 추가하고 클린 및 리빌드를 수행합니다.프로젝트 속성과 함께 app/build/generated/res/google-services/debug/values/values.xml에 xml 파일이 생성되어 일반 xml 문자열처럼 쉽게 액세스할 수 있습니다.예:
String serverClientId = getString(R.string.default_web_client_id);
google-service.json doc에는 모든 문자열과 추가 정보가 포함된 목록이 있습니다.
언급URL : https://stackoverflow.com/questions/31597953/what-does-google-services-json-really-do
'programing' 카테고리의 다른 글
수집되지 않은 유형 오류: 데이터.푸시는 기능이 아닙니다. (0) | 2023.04.05 |
---|---|
저장 후 Mongoose 입력 (0) | 2023.04.05 |
MS SQL에 wordpress를 설치하는 방법 (0) | 2023.03.31 |
component Did Mount는 정확히 언제 실행됩니까? (0) | 2023.03.31 |
bcc와 cc로 wp_mail로 이메일 보내기 (0) | 2023.03.31 |