Categories
Android

[Android] 디바이스의 고유 정보값 얻어오기

안드로이드는 아이폰과 달리 기기마다 특성이 다르고 덕분에 어떤 디바이스에서는 잘 되는데 어떤 디바이스에서는 잘안되고 이런 문제가 허다하더군요. 이 문제를 어떻게 해결하지 못하면 앞으로 디바이스 종류는 더 다양해 질텐데 개발자들의 한숨만 늘어날수도 있겠습니다.

아무튼 다양한 디바이스에서 잘 돌아가게 만드는것이 중요한데 개발을 하다보면 한계에 봉착합니다. 무엇이냐면 어떤 디바이스에서는 죽어도 안되는 경우입니다. 아니면 아예 다른 방법으로 접근해야 간신히 문제가 해결되는 독특한 디바이스들이 있습니다. 이경우 어떻게 해야 할까요.

물론 디바이스의 이름을 알아내서 이때만 예외처리를 하는 방법도 있겠습니다. 비참하지만 능력 부족의 한계ㅠㅠ 아무튼 이런 경우에 디바이스에서 어떤 정보를 가져올 수 있는지 확인해 보았습니다. Build라는 클래스의 정보들을 읽어보시면 원하는 정보를 얻어올 수 있습니다.

[code]package kr.pe.theeye;


import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;


public class ModelNameTest extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Log.d(“ModelNameTest”, “BOARD: ” + Build.BOARD);
        Log.d(“ModelNameTest”, “BRAND: ” + Build.BRAND);
        Log.d(“ModelNameTest”, “CPU_ABI: ” + Build.CPU_ABI);
        Log.d(“ModelNameTest”, “DEVICE: ” + Build.DEVICE);
        Log.d(“ModelNameTest”, “DISPLAY: ” + Build.DISPLAY);
        Log.d(“ModelNameTest”, “FINGERPRINT: ” + Build.FINGERPRINT);
        Log.d(“ModelNameTest”, “HOST: ” + Build.HOST);
        Log.d(“ModelNameTest”, “ID: ” + Build.ID);
        Log.d(“ModelNameTest”, “MANUFACTURER: ” + Build.MANUFACTURER);
        Log.d(“ModelNameTest”, “MODEL: ” + Build.MODEL);
        Log.d(“ModelNameTest”, “PRODUCT: ” + Build.PRODUCT);
        Log.d(“ModelNameTest”, “TAGS: ” + Build.TAGS);
        Log.d(“ModelNameTest”, “TIME: ” + Build.TIME);
        Log.d(“ModelNameTest”, “TYPE: ” + Build.TYPE);
        Log.d(“ModelNameTest”, “USER: ” + Build.USER);
    }
}[/code]

위는 시뮬레이터에서 실행한 결과입니다. 시뮬레이터의 정보들을 확인해 보실 수 있습니다.

위는 디자이어에서 실행해본 결과입니다. 곳곳에서 보이는 bravo를 보니 아무래도 디자이어의 코드명은 브라보가 아니었을까 하는 생각이 드는군요.

Categories
iOS/Swift

[iPhone] Build and Archive를 이용하여 편하게 앱스토어에 등록하기

아이폰 개발을 너무 오래 손을 놓았던 것일까요. 저도 모르는 좋은 기능들이 많이 생겨났더군요. 더군다가 Xcode는 많은 발전을 이룬것 같습니다. 제가 생각하는 그중에 가장 많은 발전이라 생각되는 기능중에 한가지가 바로 “Build and Archive”입니다.

예전에는 Adhoc 또는 AppStore를 통한 배포를 하기 위해서는 빌드된 바이너리 파일(폴더)와 Provisioning 파일이 함께 필요로 하였습니다. 그 절차도 까다로웠고 분명히 되어야 하는것임에도 잘 될때도 있고 안될때도 있고(제가 잘 몰라서 그런것일지도..) 아무튼 문제가 많았었는데요.

위의 기능을 이용하니 매우 편리하게 잘 되는군요. 하나하나 조금은 불친절하겠지만 기억용으로 기록해 봅니다. 이부분에 대해 잘 모르시는 분이라면 우선 [이글]을 먼져 읽어보시길 바랍니다.


Xcode의 Build – Build and Archive로 들어갑니다. 보시다시피  단축키도 없군요.

이제 위와같은 창이 뜨게됩니다. 많이 보던 Organizer 창이군요. Archived Applications탭에 보시면 지금까지 Build된 내역이 시간별로 표시가 되게 됩니다. 그나저나 모자이크 처리가 좀 허접하네요;ㅎㅎ


이제 Share Application을 눌러봅니다. 뜬금없이 아이디와 비밀번호를 물어 보는군요, 배포를 위한것이기 때문에 당연히 개발자센터의 Agent 계정을 입력하여 줍니다.

참고로 Share Application 메뉴는 Adhoc/In House 배포를 위해 사용됩니다. 이 메뉴에서 곧바로 앱스토어에 파일을 등록할수도 있는데요 맨 밑에 있는 Submit Application to iTunes Connect를 선택하시면 됩니다. 진행은 다들 비슷하므로 일단 Adhoc 기준으로 설명을 진행하겠습니다.


이제 위와 같은 화면이 뜨는데요, 패키징될때에 포함시킬 적절한 Provisioning 프로필을 선택하시면 됩니다. 그리고 Save to Disk를 누르면 ipa파일로 디스크에 저장됩니다. 해당 파일을 등록된 디바이스의 사용자에게 전달해주시면 됩니다. 이 메뉴에서 곧바로 메일까지 보낼수 있군요.

이제 다시 앱스토어에 등록하는 과정에 대해 이야기 해보도록 하겠습니다. 몇가지만 첨언을 해보겠습니다.

새로운 어플리케이션을 등록할때 iTunes Connect에서 기본적인 정보를 입력하게 되면 위와 같은 화면이 뜹니다. 실제는 이 화면은 파일 업로드가 성공한 시점의 화면을 캡춰해놨군요; 실제로는 파일업로드 대기 상태로 들어가고 위에서 언급한 Submit Application to iTunes Connect를 눌러 바로 업로드를 하게 되면 바로 위의 화면처럼 Status가 변경됩니다.

그리고 몇분 있으면 자동으로 위와같이 리뷰 대기 상태로 들어가게 됩니다. 예전에 힘들게 어플리케이션을 올릴때가 생각나는군요. 가면 갈수록 어플리케이션 등록과정이 쉬워지는것 같습니다.
Exit mobile version