NECO のすべての投稿

iPhoneプッシュ通知(APNs)の証明書を作る

iPhoneアプリでプッシュ通知するには、
対象のアプリのプッシュ通知証明書を毎年更新する必要がある。
Appleから取得できる証明書は「.cer」だが、サーバーで使うのは「.pem」なので、変換が必要になる。
やりかたを毎回忘れるのでその時に備えたメモ。

事前に済ませておくこと
・鍵ペアを作成する
・証明書の作成に必要な証明書署名要求を作る
・iOS Dev Centerで証明書を作成する
・キーチェーンアクセスに証明書を登録する

以下の手順でやる

・キーチェーンアクセスから証明書と秘密鍵の書き出しを行う
『証明書』からプッシュ通知用の証明書を右クリックして書き出す
apns1

ファイル名は「apns-dev.crt.p12」で保存
apns2

パスワード入力画面では、便宜上、空欄のままOKを押す
apns3

証明書に紐づく秘密鍵を右クリックして書き出す
apns4

ファイル名は「apns-dev.key.p12」で保存
apns5

パスワード入力画面では、便宜上、空欄のままOKを押す
apns6

証明書をPKCS12形式からPEM形式に変換する

cat apns-dev.crt.p12 | openssl pkcs12 -passin pass: -clcerts -nokeys > apns-dev.crt.pem

秘密鍵をPKCS12形式からパスワード付きのPEM形式に変換する(空パスワードは指定できない)

cat apns-dev.key.p12 | openssl pkcs12 -passin pass: -passout pass:PASS -nocerts > apns-dev-with-password.key.pem

秘密鍵からパスワードを除去する

cat apns-dev-with-password.key.pem | openssl rsa -passin pass:PASS > apns-dev.key.pem

証明書と秘密鍵を合成する

cat apns-dev.crt.pem apns-dev.key.pem > apns-dev.crt+key.pem

2015.9.6
NECO

cocos2d-xでゲーム画面を縦に変更

よく忘れるので、備忘録も兼ねてメモ

cocos2d-xでアプリを作る際、初期設定は横向きになっている。
iPhoneで縦画面としてレイアウトするには、以下のように行う。

(1) xcodeのナビゲータエリアから、xcodeプロジェクトファイルを選択し、エディタエリアからGeneral > Deployment Info > Device Orientation から、Portrait のみチェックを入れる。

layout

(2) $PROJ_ROOT/proj.ios_mac/ios/RootViewController.mmの
shouldAutorotateToInterfaceOrientationメソッドの戻り値を下記のように書き換える。

// Override to allow orientations other than the default portrait orientation.
// This method is deprecated on ios6
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return UIInterfaceOrientationIsPortrait( interfaceOrientation );
}

これにより、iPhoneで縦向きで表示される。

layout_portrait

ちなみに、macでも縦向きで表示するには、以下のファイルを編集する。試してないけどwindowsでもイケるはず。
$PROJ_ROOT/cocos2d/cocos/platform/desktop/CCGLViewImpl-desktop.cpp

GLViewImpl* GLViewImpl::create(const std::string& viewName)
{
    auto ret = new (std::nothrow) GLViewImpl;
//  if(ret && ret->initWithRect(viewName, Rect(0, 0, 960, 640), 1)) {
    if(ret && ret->initWithRect(viewName, Rect(0, 0, 320, 568), 1)) {
        ret->autorelease();
        return ret;
    }

    return nullptr;
}

これにより、macでも縦向きになる。

layout_portrait_mac

解像度がまちまちだったりとか、いろいろ問題もあるけど、
まずは縦画面にできた。

cocos2d-xでプロジェクトを作成

Mac環境での作業を想定。
事前にxcodeとpythonのインストールを済ませておく。

cocos2d-xのダウンロード
http://cocos2d-x.org/download

cocos2d-x-3.3.zipを任意のフォルダに展開

セットアップ
setup.py

新規プロジェクトの作成
cocos new [ゲーム名] -p [パッケージ名] -l cpp -d .

ビルドと実行
cocos run -p ios
cocos run -p android

ビルドが成功すれば、iOSシミュレータが起動し、アプリが起動する。
hello_cocos

その他のコマンドはヘルプを参照
cocos -help