터미널에서 pmset -g로 확인

 

출처 :


http://macnews.tistory.com/464

http://blog.daum.net/bionnal/17193558

 

출처 : http://cafe.naver.com/appforge/811

 

APNS(Apple Push Notification Service) 개발시 유의 사항을 정리해 봅니다.

알고보면 별 시덥잖은 내용인데... 첨 할땐 엄청 삽질합니다. (물론 제가 삽질을 즐거하는 편이기도 하지많서도...)

1. APNS는 두 가지 타입을 제공합니다. (개발용, 배포용)

2. 물론 디바이스에서만 확인 가능합니다.

3. 각 디바이스는 고유의 ID외에 토크값을 가지고 있습니다. 이 토크값을 가지고 애플 APNS 서버에 전달하면 해당 디바이스로
    메시지가 전달됩니다.
   (여기서 유의사항... 배포용으로 빌드 했을 때와 개발용으로 빌드 했을 때의 토큰 값이 다릅니다! 요건 꼭 유의하세요.)

4. APNS 기능을 사용할 때 일반적으로 자체 서버를 이용합니다. 앱을 실행하는 사용자의 토큰 값을 DB에 저장해 두고...
서버의 (웹)프로그램이 DB를 읽어서 보낼 토큰 값을 가져오고 루프를 돌면서 전달할 메시지를 보냅니다.
(메시지를 보내는 대상은 애플 서버랍니다. 요건 주소가 정해져 있어요... 정해진 서버로, 정해진 포맷의 데이터를 쏩니다.)

5. 개발용 APNS 서버 주소 : ssl://gateway.sandbox.push.apple.com:2195
    배포용 APNS 서버 주소 : ssl://gateway.push.apple.com:2195

6. APNS를 처리하기 위한 서버용 코드는 인터넷에 굴러다닙니다. 참고하시고...
   (PHP, Java, ASP.NET 용이 있구요... asp 용은 못 봤습니다.)

7. 처음 할 때 가장 어려운 부분이 인증서 만드는 부분입니다. 이 인증서 역시 개발용, 배포용 두 가지가 있습니다.
   만드는 방법은 추후 정리를 해볼까 합니다. 여기서 주의 사항은 인증서를 새로 만들었다거나 변경했으면...
   반드시 Provisioning Profile을 새로 갱신해야 합니다.
   (요것 때매 삽질 좀 했음...)

8. 그리고!!! 서버단에서는 애플 서버로 데이터를 보낼 때 커넥션을 맺은 후 많은량의 데이터를 한번에 보낼 수 없습니다.
   확실치는 않으나... 테스트를 해본바로는 140명에게 메시지를 보내니깐 연결이 끊겨버립니다.
  (커넥션 타임아웃 등 설정 값의 차이가 있을 수 있습니다...)
  결론은 일정 단위로 끊어서 데이터를 보내고... 다시 접속 해서 보내고... 요런 과정을 거쳐야 합니다.
 
9. 배포용 버전은 AdHoc 버전을 만들어서 확인하시면 됩니다. 개발 버전은 디바이스에 올려서 바로 확인 가능합니다.

10. 마지막으로 웹 프로그램을 직접하지 않는다면... 똑똑한 개발자를 구하십시요!!!

다양한 방법이 나와있네요.

 

http://blog.naver.com/rs1017?Redirect=Log&logNo=90150373326

출처 : http://itzone.tistory.com/434

 

 

홈페이지 = http://www.easyapns.com/

 

푸시 서비스의 경우 개발 테스팅에서 시뮬레이터로는 테스팅이 불가하므로
꼭! 실 기기가 필요하다.

어제 iOS 푸시 해보느라 오후부터 밤10시까지 시간을 보냈다.
(메뉴얼 대로 잘 따라하면 몇시간 내로 되는데 한가지 빼먹어서 개고생)

몇가지의 라이브러리가 있었는데
이름부터 쉽다고 써 있는 Easy APNs를 쓰기로 생각하고 작업에 돌입하였다.

 

1. 인증서 작업

http://artyst.egloos.com/2652130 글을 보고 인증서 작업을 해야 한다.
여기서 주의 할 점이 있는데 App IDs 서브메뉴 페이지에서 기존 앱을
[ ] Enable for Apple Push Notification service
의 설정(체크) 없이 만들었었다면
Edit 링크를 눌러 Modify 하고 다시 다운받아 실행하여 인증서를 갱신해야 된다.
이 작업을 빼먹어서 개고생했다.

인증서 생성이나 갱신이 완벽히 되었다면

Easy APNs 홈페이지 상단 메뉴의 순서대로 작업을 하면 된다.


2. MySQL 테이블

추가시 웹호스팅 받고 있는 경우 Trigger 생성 권한이 없을 것이므로
기기 이력 테이블이 제외된 alternate database file 의 SQL문만 실행하면 된다.


3. PHP 소스

+ apns.php
최 상단의 쉘 스크립트 사용 선언 #!/usr/bin/php 은 웹호스팅 받을경우 사용이 안되므로
<?PHP 아래로 옮긴다.

+ class_*.php
웹호스팅 업체의 PHP에서 mysqli 확장 설정(php.ini 설정에서 extension="mysqli.so") 되어 있지 않은 경우 다수의 msyql 쿼리 관련 함수들을 수정해야 한다.
대체적으로
$result->num_rows() 에서 mysql_num_rows($result) 로
$return = $result->fetch_array(MYSQLI_ASSOC) 에서 $return = mysql_fetch_array($result, MYSQL_ASSOC) 로
등과 같이 수정해 줘야 한다.

$logpath 등을 사용자 환경에 맞게 절대 경로로 수정하라고 되어 있는데
웹호스팅 받고 있을 경우 루트로부터의 경로를 모르겠다면
apns.php가 위치해 있는곳으로부터의 경로를 입력해주면 잘 동작한다.

$certificate 의 apns.pem 파일 생성법은
http://theeye.pe.kr/511 글을 보면 키체인에서 필요한 파일 추출하고
콘솔에서 명령 줘서 pem 파일 생성하는 방법이 기재되어 있다.


4. AppDelegate 작업

푸시 클라이언트인 앱에서의 작업. Xcode에서 AppDelegate.m 소스파일을 편집해준다.

폰갭으로 포장한 앱은 PhoneGapDelegate.m 파일 편집.


5. Cron 작업

이게 왜 필요하냐면 Easy APNs는 메세지 발송 예제 실행시 (http://.../apns_sample.php)
apns_messages (큐)에 쌓아놓기만 한다.

실제 발송은 http://.../apns.php?task=fetch 를 실행 했을 때 되는 것이다.

웹호스팅 받을경우 cron 이용이 거의 불가하므로
http://cron.io/를 통해 해결한다.


6. Blog 메뉴

Easy APNs 홈페이지의 Cron 메뉴까지가 본론인것 같았지만
중요한 것들이 여기 다 모여 있다.

심지어 처음부터 봤어야 되는 셋업 동영상까지...

지금까지의 과정이 제대로 되었고
앱의 기기 테스팅을 처음 하게 되면

기기 등록정보가 DB의 apns_devices 테이블에 등록되고

푸시 알림 받을것인지 묻는 알림창이 뜨고... 블라블라~

기기 테스팅시의 우리는 apns development 프로파일로 하게 되는데
apns_devices 테이블의 development 필드의 기본값은 'production'이다.

즉, 저 필드값을 그냥 놔두면 개발 테스팅 해도 아무런 푸시알림이 오지 않을것이라는거다.

phpMyAdmin 등에서 해당 필드값은 둘 중 하나로 수정 할 수 있다.
개발시는 'sandbox'로 수정해주고 테스팅하도록 한다.


7. 푸시 알림 테스팅

cron 없이 곧바로 테스팅하는 방법은 5.에서 잠깐 소개했는데
http://.../apns_sample.php 로 메세지를 대기열에 넣어두고
http://.../apns.php?task=fetch 로 발송하면 된다.


마치며

젊은 개발자들이야 빠르게 해 내었겠지만
늦은 나이에 늦게서야 스마트폰 개발의 초보단계를 걷고 있으면서 

과정 중 한가지를 빠트려 개고생을 했지만
푸시 알림이 기기로 왔을때의 기쁨은 개인적으로 너무 좋았다.

좋은 라이브러리 제공, 자신의 노하우를 블로그를 통하여 공유 해주신 모든 분들께 감사드린다. 

출저 : http://developer.apple.com/library/ios/#qa/qa1495/_index.html#//apple_ref/doc/uid/DTS40009340

 

Q:  How do I detect phone numbers and links in an iPhone application?

A: How do I detect phone numbers and links in an iPhone application?

As of iPhone OS 3.0, text views and web views support the detection of phone numbers, email addresses, and HTTP links. iPhone OS 3.0 scans for these types of data, highlights them when found, and renders them into clickable URLs as shown in Figure 1. You can detect phone numbers and links programmatically or by using Interface Builder 3.1.2 or later.

Figure 1  Detecting phone numbers, email addresses, and HTTP links in a text view

Programmatically detecting phone numbers and links

The iPhone OS SDK 3.0 introduces the UIDataDetectorTypes enumeration constant, which defines the types of data that can be found in web views and text views. Table 1 provides a description of these data types.

Table 1  Types of data detected in web views and text views

Constant

Description

UIDataDetectorTypePhoneNumber

Detect strings formatted as phone numbers.

UIDataDetectorTypeLink

Detect strings formatted as URLs.

UIDataDetectorTypeNone

Do not detect any data.

UIDataDetectorTypeAll

Detect all available types of data. This constant is recommended for detecting data.

To programmatically detect phone numbers or links, create an instance of your view and set its dataDetectorTypes property to one of the data types in Table 1. See Listing 1 for an example that scans for phone numbers, emails, and URLs in a text view.

Listing 1  Programmatically detecting phone number and links in a text view

- (void)viewDidLoad {     self.textView.dataDetectorTypes = UIDataDetectorTypeAll; }

Using Interface Builder

Follow these steps to detect phone numbers and links using Interface Builder 3.1.2 or later:

  1. Open the Nib file containing your web view or text view in Interface Builder.

  2. Select your view, then choose Tools > Attributes Inspector. The Attributes Inspector contains the Detect Phone Numbers and Detect Links options, which respectively turn on phone numbers detection and links (email and URLs) detection.

  3. Check one of these options or both of them according to your needs as shown in Figure 2.

Figure 2  Turning on both phone number and links in a text view

 

 

Important Editable text views do not support data detectors.

출처 : http://blog.naver.com/ziippy?Redirect=Log&logNo=120158174485

 

 

한영 전환

Command + SpaceBar

 

 

편집 

Command + C                    // 복사

Command + V                    // 붙여넣기

Command + Z                    // 취소하기

Command + X                    // 잘라내기

Command + S                    // 저장

Command + O                    // 열기

 

 

디스크 

Command + E                    // 추출

 

 

윈도우 

Command + T                    // 새 탭

Command + N                    // 새 윈도우

Command + Shift + [           // 탭 이동 (왼쪽)

Command + Shift + ]           // 탭 이동 (오른쪽)

Command + [                    // 페이지 이동 (뒤로)

Command + ]                    // 페이지 이동 (앞으로)

Command + L                   // 주소 창으로 커서 이동

Command + F                   // 찾기

Command + Option + F       // 주소창 옆에 있는 Google 검색바로 커서 이동

Command + 숫자키             // 사파리의 즐겨찾기를 숫자에 맞는 항목을 열어 줌

 

 

탐색기 

Command + Delete              // 삭제

Command + Shift + Delete    // 휴지통 비우기

Command + Shift + H           // 홈 폴더로 이동

Command + Shift + F           // 나의 모든 파일로 이동

Command + Shift + A           // 어플리케이션 폴더로 이동

Command + Shift + D           // 데스크탑 폴더로 이동

Command + Shift + O           // 도큐멘트 폴더로 이동

Command + Shift + L           // 다운로드 폴더로 이동

Command + Shift + U           // 유틸리티 폴더로 이동

Command + Shift + N           // 새 폴더

Command + K                     // 서버에 연결

화면 캡쳐

Command + Shift + 3                        // 전체화면 캡쳐

Command + Shift + 4                        // 원하는 부분 캡쳐

Command + Shift + 4 + Space           // 원하는 윈도우만 캡쳐

그런데... 캡쳐 된 게 어디갔다 봤던... 바탕화면에 떡 하니 자동으로 저장되어 있다 ㅡ.ㅡ;;;

 

 

기타 

Command + Q                       // 현재 선택된 프로그램 종료

Command + W                       // 현재 선택된 프로그램을 잠자기와 같은 상태로 만들기

Command + ,                         // 환경설정

 

 

작업관리자 

Command + Option + Esc       // 응용 프로그램 강제 종료 창 띄우기 (윈도우에서 작업관리자 같은 것)

 

참고 사이트 : http://iphone.olipion.com/cross-compilation

http://blog.naver.com/skkong89?Redirect=Log&logNo=90103545985


[MacPorts]

오픈소스 어플리케이션을 설치해 주는 프로그램으로 darwinports 이었다.

설치후

port install 패키지이름

하면 다운 받아 설치까지 해줍니다.


http://www.macports.org/



[wget] 설치

sudo port install wget





mysql 사이트에서 dmg를 받아 설치하고,

root 암호 설정을 위해 아래와 같이 해준다.

/usr/local/mysql/bin/mysqladmin -u root password 사용할암호


/usr/local/mysql/bin/mysql -u root -p

로 들어갈 수 있으면 완료


+ Recent posts