2016년 8월 29일 월요일

eclips unity 연동 (plugin 만들기)


1 단계

2 단계

3 단계

일단 유니티 프로젝트가 기본이다. 만들거나 열자

그리고 이클립스 파일(안드로이드파일)로 export

이클립스에서 임포트로 연다음

위 링크 내용대로 진행한다.

생 프로젝트로 시작하게되면 2단계가 진행되지 않는다. 반드시 유니티 프로젝트를
만들어서 엑스포트 한 후 그걸로 작업을 시작하자

jar 파일 말고 res와 androidmenifest.xml은 merge 과정이 필요한데 별거 없다.
3단계 링크를 보고 참고한다. 결국 merge 라는 것은 중복된건 놔두고 없는걸 껴넣어주는
것이다.

내가 만든 프로젝트의 jar 파일이 다른 프로젝트를 라이브러리로 참고하고 있다면 그 대상이 되는 프로젝트의 jar파일도 unity로 복사해줘야 한다.

2016년 8월 18일 목요일

Eclips 설치 세팅

1.<설치>

2.안드로이드 플러그인 설치

install new software 선택 후


Add 버튼 누르면 새로운 저장소를 등록할수 있다.
우리가 데이터를 받아올 저장소 이름과 url를 입력한다.
ADT(Android Development Tool)
http://dl-ssl.google.com/android/eclipse/


OK 누르면 아래와 같은 화면이 나오고 select all 하고 다음으로 넘어감


설치를 계속해서 쭉쭉쭉 이어나가서 eclips가 재시작 되도록 까지 한다.

이제 재 시작 되면 android sdk 를 찾으려고 할것이다.
eclips한테 끌려다니지 말고 직접 해보자

위 그림처럼 타고 들어가
 
sdk location 에 미리 설치해둔 adk의 경로를 지정해주고 Apply 버튼을 누르면
위 그림 처럼 사용가능한 버전들이 나온다. OK

아래 그림의 버튼을 이용해서 adk 매니저 화면을 연다.
(이 버튼이 없으면 window>perspective>customize perspective -> action set availability 탭의 Android SDK and AVD Manager 를 체크 해줘야 함)


필요한 부분이 자동으로 체크되니깐 install 버튼 클릭


설치되는데 시간이 많이 걸림 30분 이상

이제 안드로이드 가상 디바이스 AVD(이 부분은 제대로 작동하지 않아서 그냥 실물 디바이스 이용)


아래와 같이 가상 장치를 만들어준다


만들어진 것을 확인 했다면 나간다.


아패 버튼을 클릭해서 안드로이드 프로젝트를 만들어 보도록하자





다음 다음 next next 한동안 프로젝트를 생성하게 된다.

프로젝트가 생성 되면 이 버튼으로 실행을 시킨다.
 




이렇게 실행 시킨다.(실행 시킬떄 좌측 Package Explorer에서 프로젝트(예의 경우 test)를 잡고 실행


























2016년 8월 17일 수요일

kakao 세미나




sdk에 대한 검수 매주 월/금 진행

카카오게임센터 신청(os별)
출시 신청시 어드민 페이지에 스크린샷 게임플레이 이미지 연령 등급 등


매주 화요일 출시
그 전주 금요일에는 출시신청해야 함

서비스 종료하기
게임센터 문의하기 카테고리


광고앱은 허용된 5개만 사용가능 게임센터 가이드 참고

2016년 8월 10일 수요일

kakao sdk 연동 (eclips)

kakao 개발자 등록이 선행되어야한다.

====================================================
OpenSSL 다운로드 및 설치 ( https://code.google.com/archive/p/openssl-for-windows/downloads )

적당히 C:\OpenSSL 이런 간단한 경로에 압축해제(=설치)
조금 이따가 hash key를 얻기 위한 첫 단계임

====================================================
jdk 설치(이 단계는 설명 생략 검색해서 알아서 하자)

환경변수 세팅
unity는 자기가 알아서 찾는다. 하지만 android studio는 그렇지 않다.
정확한 세팅이 필요하다.

첫 번째.
제어판 > 시스템 > (좌측상측)고급 시스템 설정 > (아래쪽)환경변수(N)..
새로만들기 버튼이 두개 있는데 아래쪽 클릭
변수이름 : JAVA_HOME
변수값    : C:\Program Files\Java\jdk1.8.0_101 (버전 별로 실제 이름이 다름)
생성 돼었는지 확인후
같은 항목에 있는 path 변수 편집 버튼 클릭( 절대 위쪽 path를 말하는 것이 아님)
아래처럼 %JAVA_HOME%\bin 을 새로만들어 줌
참고로 java home 변수에 bin 까지 포함 시키면 안드로이드 스튜디오에서 에러남


======================================================

kakao gamecenter 사이트에서 앱 등록 ( 무료일때만 developers 사이트 )

앱 만들어져 있었다... 앱 이름을 클릭하면 관리할 수 있는 탭들이 좌측에 생성

네이티브 키 가 앱키가 되는것이고
레스트 api 키는 레스트 api를 사용하는 데 필요한 키
어드민 키는 기술레벨에서는 쓸일이 없다.


안드로이드 해쉬키를 구해와서 이곳에 등록해 줘야 한다.

자 이제 안드로이드 해쉬키를 구하는 방법을 기록한다.
안드로이드 스튜디오를 설치했기 때문에 있을것이다. 설치 안했으면 없겠지(설치하자)

C:\Users\bki(사용자계정명)\.android 에 debug.keystore 라는 파일이 존재
C:\OpenSSL\bin\openssl 에 오픈ssl 존재

윈도우키+r을 누르고 cmd 실행

keytool -exportcert -alias androiddebugkey -keystore C:\Users\bki\.android\debug.keystore | C:\OpenSSL\bin\openssl sha1 -binary | C:\OpenSSL\bin\openssl base64

을 자기 상황에 맞게 입력후 실행하면 해시 키값이 구해진다.
이것이 원형이라면 원형
keytool -exportcert -alias androiddebugkey -keystore <debug.keystore위치> | <openssl 위치> sha1 -binary | <openssl 위치> base64



1qVRV0cIZ7PiMadowqcSjQ+h2TE=
그러나 이것은 debug 용

우리는 release용 또한 필요하다.
참고 사이트 : https://developer.android.com/studio/publish/app-signing.html

릴리즈용 key는 미리 마련되어 있지 않기 때문에 생성해줘야 한다.
안드로이드 스튜디어로 간다. 위쪽에 배치된 메뉴에서 build를 선택
generate signed apk를 선택한다.





미리 만들어 둔 것이 있다면 choose existing 이겠지만 그렇지 않기에 create new



이정도로 입력후 확인 다음다음 빌드까지 해보자
일단 이 단계에서 빌드를 안해도 키는 생성 되는것으로 판단된다.

릴리즈 키 해시 구해보자

C:\Users\bki\.android 에 TestReleaseKey 파일 존재
C:\OpenSSL\bin\openssl 에 오픈ssl 존재

윈도우키+r을 누르고 cmd 실행

keytool -exportcert -alias TestReleaseKey -keystore C:\Users\bki\.android\TestReleaseKey | C:\OpenSSL\bin\openssl sha1 -binary | C:\OpenSSL\bin\openssl base64

역시 자신의 상황에 맞춰서 파일 경로는 바꿔줘야 한다.
r0lIUCzrORgTiRiRgvuhyO/k4S4=


이 키는 다음에 릴리즈 할때 사용하자

======================================================

EclipsProject에 kakao sdk import

우선 프로젝트 설정을 바꿔줌


General > Workspace > Text file encoding 값을 UTF-8로 변경합니다

project를 import 해봅시다

위에서 보이는 것 처럼 현재 kakao sdk 와 unity project 둘다 import 된 상태이다.
kakao sdk는 library로 설정 해줘야 한다.(되어 있음)




이렇게 체크가 되어있다. 되어있어도 어디서 설정하는지 알고 넘어가자

반대로 주체가 되어 타 library를 이용하고 싶다면





import 된 것들 중에서 is library 체크된 것들이 뜨는 듯 하고 선택하여 추가 되면
이후에는 안뜨는걸 보니 똑띠네!

이렇게 추가된 모습을 볼 수 있음

이제 프로젝트에 앱키를 등록해보자
여기서의 앱키는 네이티브 앱키를 말 하는 것이며 카카오 사이트에서 앱 생성시 발급된다

프로젝트의 res/ values 에 kakao_string.xml 을 만들어보자
아래와 같이 기록한다.

<resources>
 <string name="kakao_app_key">a3212fd7d16a9f7edd239a69441f3446</string>
 <string name="kakao_scheme">kakaoa3212fd7d16a9f7edd239a69441f3446</string>
 
 <string name="kakaolink_host">kakaolink</string>
         <string name="kakaostory_host">kakaostory</string>
</resources>

AndroidManifest.xml 파일을 찾아 아래와 같은 위치에 같은 내용을  추가해 넣는다.

<!-- 1. 서버와의 통신을 위해 network 권한을 설정합니다. -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 이미지 캐싱을 위해 SD카드에의 접근 권한이 주어져야 합니다. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application>
    <!-- 2. 로그인 버튼이 포함된 SampleLoginActivity를 등록합니다. -->
    <!-- 상속하여 사용하여도 되고 SampleLoginActivity에 있는 코드를 copy해 사용하셔도 됩니다. -->
    <activity
        ...
        android:name=".SampleLoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    ...
    <!-- 3. com.kakao.sdk.AppKey 이름으로 앱키를 등록합니다. -->
    <meta-data
        android:name="com.kakao.sdk.AppKey"
        android:value="@string/kakao_app_key" />
</application>

넣는 과정에서
필요한 activity 가 생긴다.

샘플을 보고 src와 gen 의 필요한 activity를 카피하고 오류 안나게 수정해준다.
( 카피작업들
   - 카톡 샘플의 src / com.kakao.game.sample.common 아래 activity들을 복붙.
   - 카톡 샘플의 gen / com.kakao.game.sample 아래 R.java를 복붙.
   - android:debuggable="false" 이부분이 문제가 되면 그냥 지운다.
   - import com.android.volley 같은 안드로이드 sdk 오류의 경우, 샘플의 lib 폴더에 있는
     volley.jar 파일을 복사해 온다.












<<<<<여기부터 수정>>>>>

로그인 기능 등과 같이 카톡 sdk 기능을 이용하기 위해서는

<사용자 관리 설정>을 해주어야 한다.

이걸 안하면 아무리 구현해봐야 로그인 시도시 사용자 관리 설정을 해야 한다고 오류창만 나온다.



상단 중간쯤, 카카오 계정 로그인 하고 작은 글씨로 <사용자관리> 가 있다. 클릭!!!


중간에, 사용 OFF 로 된것을 On으로 바꾼다.
그리고 개인정보 관리 항목 정도만 수집목적을 입력하고 다른건 일단 사용 안함
하고 수정을 완료한다.



======================================================

unity 프로젝트에 카톡 sdk 연동과 로그인

이제부터는 새로운 프로젝트를 만들고 카톡 로그인을 적용시켜 보겠다.

unity project를 만든다( 카톡 개발자 사이트에 등록한 패키지 명으로)
이름은 카톡 개발자 사이트에 등록한 앱과 이름이 같도록 한다. 패키지명까지 같도록 한다. com.회사명.프로젝트명 (사실 꼭 같아야 하는지는 모르겠다, 안드로이드에서 프로젝트 생성시 회사명 앞에 사용자 명도 들어가는데 말이다.)

build settings : 안드로이드, 번들 com.회사명.프로젝트명 --> export
이름은 카톡 개발자 사이트에 등록한 앱과 이름이 같도록 한다. 패키지명까지 같도록 한다. com.회사명.프로젝트명 (사실 꼭 같아야 하는지는 모르겠다, 안드로이드에서 프로젝트 생성시 회사명 앞에 사용자 명도 들어가는데 말이다.)


export 된 폴더를 안드로이드 스튜디오를 이용해서 import project 한다.

Gradle 설정
 아래 이미지에서 선택된 것이 그래이들이다.


allprojects 안에

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
    }
}
이렇게 수정해 준다.







keytool -exportcert -alias androiddebugkey -keystore <debug_keystore_path> -storepass android -keypass android | openssl sha1 -binary | openssl base64



다른 gradle에서 가져다 쓰기 위해 다음을 /gradle.properties 에 정의한다.
원문의 경우 버전이 1.0.40이었지만 현재 최신 버전은 50이다. 각자 현재의 최신 버전을 적어주도록 하자.
KAKAO_SDK_GROUP=com.kakao.sdk
KAKAO_SDK_VERSION=1.1.20


=====================================================
// 코드레벨 android 버전 문제 4.4.2가 안되는 문제
java.lang.NoSuchMethodError: android.content.res.Resources.getDrawable

package com.kakao.auth.authorization.authcode;
이 패키지의 KakaoWebViewDialog 스크립트의
private void createCrossImage() 메소드 내용을

Drawable crossDrawable = getContext().getResources().getDrawable(id, null);//"bk" 수정

에서
Drawable crossDrawable;
if(android.os.Build.VERSION.SDK_INT >= 21) {
      crossDrawable = getContext().getResources().getDrawable(id, null);
}
else {
      crossDrawable = getContext().getResources().getDrawable(id);
}
로 변경한다.
=====================================================
// 코드레벨 android 버전 문제 4.4.2가 안되는 문제
java.lang.UnsatisfiedLinkError: Native method not found: com.unity3d.player.UnityPlayer.UnitySendMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V


2016년 8월 4일 목요일

D3D trouble shooting

vs 2015 에서 string.h 를 못찾을때는 vs 2015 에서 인클루드 경로가 바뀌어서 그런것이다
Go to Project->Properties->. In Configuraton Properties->VC++ Diretories->Library Directories add a path to C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\(Choose your architecture)
And in C/C++->General->Additional include directories add a path to:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt
Note: The 10.0.10150.0 may vary depending on your version.






================================================================