카테고리 없음2018. 6. 21. 12:43

우선 원격서버에 원격저장소를

git init --bare 로추가한다.


요런식--

mkdir aaa

cd aaa

git init --bare

----


이후 원격저장소를 추가하던지 git clone을 하던지 해서 push 하면 바로 푸쉬가 된다. 

git init --bare 가 중요.


Posted by 작업하는 을지랑

댓글을 달아 주세요

카테고리 없음2017. 10. 25. 23:46
만약 AWS SDK가 잘 작동하지 않는다면 다음과 같이 적용해보자



우선 Awake함수에서 아래와같이 HttpClient를 바꾸어준다

private void Awake()
{
UnityInitializer.AttachToGameObject(this.gameObject);
Amazon.AWSConfigs.HttpClient = Amazon.AWSConfigs.HttpClientOption.UnityWebRequest;
}

그리고 Resources 폴더에 awsconfig.xml추가.


[awsconfig.xml] 파일


1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
 <aws correctForClockSkew="true"
      <logging
          logTo="UnityLogger"
          logResponses="Always"
          logMetrics="true"
        
          logMetricsFormat="JSON" />  
 </aws>
cs

Assets 폴더에 link.xml 추가
[link.xml] 파일

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
<linker>
<assembly fullname="UnityEngine">
<type fullname="UnityEngine.Networking.UnityWebRequest" preserve="all" />
<type fullname="UnityEngine.Networking.UploadHandlerRaw" preserve="all" />
<type fullname="UnityEngine.Networking.UploadHandler" preserve="all" />
<type fullname="UnityEngine.Networking.DownloadHandler" preserve="all" />
<type fullname="UnityEngine.Networking.DownloadHandlerBuffer" preserve="all" />
</assembly>
<assembly fullname="AWSSDK.Core" preserve="all"/>
<assembly fullname="AWSSDK.CognitoIdentity" preserve="all"/>
<assembly fullname="AWSSDK.CognitoSync" preserve="all"/>
<assembly fullname="AWSSDK.DynamoDBv2" preserve="all"/>
<assembly fullname="AWSSDK.Kinesis" preserve="all"/>
<assembly fullname="AWSSDK.KinesisFirehose" preserve="all"/>
<assembly fullname="AWSSDK.Lambda" preserve="all"/>
<assembly fullname="AWSSDK.MobileAnalytics" preserve="all"/>
<assembly fullname="AWSSDK.S3" preserve="all"/>
<assembly fullname="AWSSDK.SecurityToken" preserve="all"/>
<assembly fullname="AWSSDK.SimpleEmail" preserve="all"/>
<assembly fullname="AWSSDK.SimpleNotificationService" preserve="all"/>
<assembly fullname="AWSSDK.SQS" preserve="all"/>
<assembly fullname="AWSSDK.IdentityManagement" preserve="all"/>
</linker>
cs


Posted by 작업하는 을지랑

댓글을 달아 주세요

작업/Unity2017. 10. 25. 23:41

아마 이글을 찾아오기까지 수 많은 삽질이 있었을 것으로 예상한다.

삽질을 하기전에는 반드시 빈프로젝트를 만들어 그곳에서 빌드를 하며 테스트를 하기 바란다.


Unity3D 2017.2 버젼

AWS 플러그인 aws-sdk-unity_3.3.179.0

google play service 플러그인  Google Play Game Plugin  0.938a 


우선 구글 플레이 서비스를 이용할 수 있도록

구글 데브 콘솔에서 알파 버젼을 등록해둔다.

그리고 플레이서비스에 연결해두고 출시는 하지않는다.





앞으로 구글 API 콘솔로 가야할경우 저기에 API Project 있는 링크를 타고가는것이 좋다

물론 API Project는 자동생성된이름으로 연결된 구글 API Project의 이름이다.


작업 순서

http://docs.aws.amazon.com/cognito/latest/developerguide/google.html 를 본다


이부분 이다.


Set Up Google

To enable Google+ Sign-in for your web application, you will need to create a Google Developers console project for your application.


Google+ 사용 설정이 되어있야한다. 보통 자동으로 생성되면 자동으로 사용됨으로 

  1. Go to the Google Developers console and create a new project.  (패스 자동으로 설정됨)

  2. Under APIs and auth > APIs > Social APIs, enable the Google+ API.   (패스)

  3. Under APIs and auth > Credentials > OAuth consent screen, create the dialog that will be shown to users when your app requests access to their private data.

  4. For Unity, you need to create a total of three IDs: two for Android and one for iOS. Under Credentials > Add Credentials:

    • Android: Create an OAuth 2.0 client ID for Android and an OAuth 2.0 client ID for a web application.

    • iOS: Create an OAuth 2.0 client ID for iOS.

  5. Under Credentials > Add Credentials, create a Service Account. The console will alert you that a new public/private key has been created.



4번이 중요하다


안드로이드의 경우 2개의 ID가 필요한데 하나는 안드로이드 용 키이고  (keytool 로 사인키를  SHA-1 해쉬값을 뽑아 연결한것) 

하나는 웹어플리케이션 키이다.


웹어플리케이션키는 AWS Cognito 와 연결할떄 GetIdToken을 받아와야하므로 사용되는것 같다.

이것은 구글 플러그인에서 사용되는데 


Unity 에서  Window  >Google play games > Setup > android 셋팅 쪽에가면



이화면이 보이는데 여기서 하단에보이는 Web Client ID 를 넣는부분에 위에 생성한 웹아이를 넣어준다.

구글 플레이 서비스는 이미 등록해보았을테니 패스하겠지만, 안넣었다면  구글 데브콘솔에서  업적을 하나 만들어 넣고 리소스를 받아와서 넣으면된다. 다른 사이트에 잘되있는곳 많으니 패스


그리고 이제 IAM 설정이다




Create an OpenID Provider in the IAM Console

  1. Next, you will need to create an OpenID Provider in the IAM Console. For instructions on how to set up an OpenID Provider, see Using OpenID Connect Identity Providers.

  2. When prompted for your Provider URL, enter "https://accounts.google.com".

  3. When prompted to enter a value in the Audience field, enter any one of the three client IDs your created in the previous steps.

  4. After creating the provider, click on the provider name and add two more audiences, providing the two remaining client IDs.


https://console.aws.amazon.com/iam/home?region=ap-northeast-2#/providers

요기가서 위에거 그대로 따라하면된다



글보고 따라하면 아래 그림처럼 등록된다 거기서 수정해서 Audience에 구글 API콘솔에서 만들었던 ID(웹 이랑 안드로이드) 등록한다. 위에는 IOS 까지 포함해서 3개라고 적힌것이다.








이제 나머지는 Cognito에서 등록하는것이다. 


Configure the External Provider in the Amazon Cognito Console

From the Amazon Cognito Console home page:

  1. Click the name of the identity pool for which you want to enable Amazon as an external provider. The Dashboard page for your identity pool appears.

  2. In the top-right corner of the Dashboard page, click Edit identity pool. The Edit identity pool page appears.

  3. Scroll down and click Authentication providers to expand it.

  4. Click the Google tab.

  5. Click Unlock.

  6. Enter the Google Client ID you obtained from Google, and then click Save Changes.


여기서 나느 추가적으로 아래와 같은 작업을했다.


https://ap-northeast-2.console.aws.amazon.com/cognito/federated/?region=ap-northeast-2 




구글+ 도 설정하고, OpenID 쪽에 등록하자

저 OpenID는 방금 위에서 IAM 에서 설정한 것이 여기 나오는것이다.

Audience가 여러개이므로 OpenID를 이용하는것 같다.

이러면 AWS와 Unity 쪽 설정이 끝났으므로 

Unity에서 코드로 Cognito만  설정하게하면된다.


우선 구글 플레이 Activate 부터 로그인까지


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
     var config = new PlayGamesClientConfiguration.Builder()
                .RequestIdToken()
                .Build();
        PlayGamesPlatform.InitializeInstance(config);
        PlayGamesPlatform.DebugLogEnabled = true;
        PlayGamesPlatform.Activate();
        UnityEngine.Debug.Log("Social.localUser.Authenticate");
        Social.localUser.Authenticate((bool success) => {
            UnityEngine.Debug.Log(" Social.localUser.Authenticate "+success);
            UnityEngine.Debug.Log(" Result "+success);
            if (success)
            { //이까지 오면 로그인이 되었다.

            }
            else
            {
                UnityEngine.Debug.Log("fail Authenticate");
            }
        });
cs


저 success 된 이후에 

PlayGamesPlatform.Instance.GetIdToken(); 

을 받아와야하는데 문제는 이 함수가 string을 바로 밷어내지 않을때가 있다는것이다.

나도 처음에는 빈 값을 계속 리턴해서 난감했다.

구글에서 GetIdToken을 쓰지 않기를 권장하지만, AWS SDK는 그것을 따라가지 못하고 계속 쓰고있으므로 그냥 이것을 사용하는 방식으로 구현하겠다



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
    public IEnumerator LoginByGoogle()
    {
        Debug.Log("Google Login ");
        string token = PlayGamesPlatform.Instance.GetIdToken();
 
        Debug.Log("first token  " + token);
        while (string.IsNullOrEmpty(token))
        {
            token = PlayGamesPlatform.Instance.GetIdToken();
            yield return new WaitForSeconds(0.5f);
        }
        Debug.Log("token " + token);
 
        awsManager.GooglePlayLogin(token);
    }
 
cs

 

코루틴으로 토큰을 받아서

1
2
3
4
5
6
  public void GooglePlayLogin(string token)
    {
        Debug.Log("GooglePlayLogin "+token);
        Credentials.AddLogin("accounts.google.com", token);
        LoginProcess();
    }
cs


이후 나는 Login Process에서 

   Credentials.GetCredentialsAsync

와  Credentials.GetIdentityIdAsync 가 차례로 호출해서 인증받게했다


이렇게 하면 Cognito와 연동이 끝난다.


참고로 AWS SDK 에서 Unity 와 연동하면 해줘야하는 사항들이 있는데 그것을 따로 글을 남기겠다.

'작업 > Unity' 카테고리의 다른 글

Unity 에서 AWS Congito, 구글 플레이서비스와 과 연동하기  (0) 2017.10.25
Posted by 작업하는 을지랑

댓글을 달아 주세요

실험실2010. 8. 19. 13:43
부모의 부분

@Persistent
private Set<UsersProblemInfo>  userProblemInfo = new HashSet<UsersProblemInfo>();


자식 부분
@Persistent
    @Extension(vendorName="datanucleus", key="gae.parent-pk", value="true")
    private Key userKey;


로직

upi = new UsersProblemInfo();
...
upi.setUserKey(user.getKey());

이후 받아올때


System.out.println("user ProblemInfo Size = "+ user.getUserProblemInfo().size()); 
에서 적용이 된것을 알 수 있었다.


결론 
추가 된다.






Posted by 작업하는 을지랑
TAG GAE

댓글을 달아 주세요

카테고리 없음2010. 8. 4. 17:19

public class test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

System.out.println(""+getA());

System.out.println(""+getA());

System.out.println(""+getA());
}
public static int getA(){
final int a= get();
return a;
}
static int a;
public static int get()
{
return ++a;
}

}


결과는 1, 2,,3 으로나온다.
단지 초기화된 후 고정되는것일 뿐인듯하다.
클래스안의 변수를 많이 줄일 수 있을듯.

Posted by 작업하는 을지랑

댓글을 달아 주세요

카테고리 없음2010. 7. 31. 00:53
일주일째 글을 쓰지 않았다니
세삼 놀랍다.

아아... 잠은 오지않고...
별로 자고 싶지도 않다
눈은 무거운듯한데
잠은 오지 않는다.

하품이 나긴한데 잠은 오지 않는다.

으음...

Posted by 작업하는 을지랑

댓글을 달아 주세요

카테고리 없음2010. 7. 24. 22:12
어느덧 10시 9분이다.

이것저것 하다가 보니 시간이 벌써흘렀고 자야할 시간이 다가오고 있다.

이것저것 뉴스도 보면서 MS 가 윈폰7을 전직원들에게 나누어 주었다고한다.

개인적인 생각으로는 MS의 아주 중요한 핵심전략중 하나가 아닐까 생각한다.

하지만 경쟁이 치열한 그곳에서 살아 남을지는 난 확신하지 못한다.

아무튼, 현재 내가 신경쓸 상황은 아닌것 같다.

재밌긴 하다.

즐기는 입장에서 만드는 입장으로 바꿀려니 조금씩 변화가 오나보다.



Posted by 작업하는 을지랑

댓글을 달아 주세요

카테고리 없음2010. 7. 22. 22:29
블로그를 시작한지 3일째 인것같다.

뭔가를 3일간 하고 나면, 왠지 더 잘 할 것 같지만
그 다음 흐지부지 해지는 것이 나에게는 일상적인것 같다.

그래도 계속 계속 하다보면 내성이 생길 것이다.
Posted by 작업하는 을지랑

댓글을 달아 주세요

카테고리 없음2010. 7. 21. 13:02
방학인지라, 남는 시간이 많다.
그동안 ACM대회 준비를 위해서 문제를 많이 풀고있다.

실력이 없는지라, 한문제 푸는데 시간이 굉장히 많이 걸린다.
풀다보면 다른거하고 싶을때도 많은데,
막상 그 다른거라는것이 웹툰을본다거나, 했던 게임을 한다거나 하는 등등의 일이다.

막상 그것을 하면서 잠시 도피는 할 수 있겠지만, 그 문제는 다시 또 풀어야한다.

나는 그런일이 많았던것 같다.

어떤 일에서도 뭔가 변명할 거리를 찾아서 둘러덴다든가 하는 일,
자신을 속이는 일인지, 아니면 그래도 괜찮으니까 그랬던건지,

하지만 별로 괜찮지 않았는데,

계속 계속 도전하고, 다시 도전하고 다시 또 해야한다 생각한다.

Posted by 작업하는 을지랑

댓글을 달아 주세요

카테고리 없음2010. 7. 20. 13:17

거창하게 블로그의 이름을 도 와 덕 으로 했다.

옛 사람들이 중시 해온 도덕은

생활하는 그 자체라 생각한다.

도 라는 것은 '길' 이 므로,
생활에서는 살아왔던, 가야하는 방법에 빚대어 진다.

사는것에 어떻게 살아야한다는 뚜렷한 길은 모르겠다.
그런것이 있다면 , 맞추어 살면 걱정도 없이 살 수 있겠지만,
늘 선택과 갈림길에 설 수 밖에 없다.

그러므로 '도' 라는 이름을 쓴것은 ,
나의 소소하지만 일상을 적어 가겠다고 할 수 있다.

'덕' 이라는 것은 보통 미덕의 의미로 쓰인다.
악덕 과 미덕  으로 나눌 수 있는것을 보면
덕 이라는것은 나의 행위의 결과가 아닐까 싶다.

하지만 도와 덕 이 같이 있는'도덕' 의 의미는
선하다는 의미와 상통한다 생각된다.

나 또한 그렇게 살고 싶고,
이에 삶을 기록하여 , 사람들과 소통하고자
블로그의 이름을 이렇게 지었다.




Posted by 작업하는 을지랑

댓글을 달아 주세요