NSLog, NSAssertをリリース時無効にする

古いネタですが、メモ用で書いときます。

開発時はNSLogを有効にして、Enterprise, Release時には無効にしたい。
既に大量に書いたNSLogをそのままにしたい。DLog、ALogとかに書き換えたくない。

1. {ProjectName}_Prefix.pchファイルを開いて以下のコード追加

#ifdef NS_BLOCK_ASSERTIONS
#ifndef NSLog
#define NSLog( m, args... )
#endif
#else
#ifndef NSLog
#define NSLog( m, args... ) NSLog( m, ##args )
#endif
#endif

2. ターゲットのBuild SettingのPreprocessing
Enterprise, Release に NS_BLOCK_ASSERTIONS=1 追加

以上で、SchemeがDebug時のみNSLogが出力されて、Enterprise, Release時は無視されるようになる。

Advertisements

既存のアプリをiPhone5に対応してみた

昨日 新しい iOS 6 SDK beta 出たよのメール来たので、xcodeバージョンアップしてみた。シュミレーター起動してみると、デバイスのところに iPhone Retina (4-inch) が出て来て、既存のアプリを起動してみた。上と下が黒!

iPhone5対応!
1. Launch Images 設定
以下のように、Retina (4-inch) にイメージ設定

2. height再設定
プロジェクトで480で固定にしたところ検索。
iPhone5のheightは568なんだけど、480を568にしちゃうとiPhone4で正しく表示されない。
AppDelegateで self.window.frame.size.height で現在デバイスの高さを取得して処理する。

結果:Waiting For Review

iPhone Ad Hoc ビルドしてみる(メモ)

1. 証明書を要求
キーチェーンアクセス → 証明書アシスタント → 認証局に証明書を要求
メールアドレス:Apple IDに登録されてるメールアドレス
通称:適当に
要求の処理:ディスクに保存選択、鍵ペア情報を指定チェック

鍵ペア情報
鍵のサイズ:2018ビット
アルゴリズム:RSA

デスクトップに「CertificateSigningRequest.certSigningRequest」が生成されるはず

2. Program Portal
2.1 Certificates
Certificates → Distribution → Request Cerfificates
「CertificateSigningRequest.certSigningRequest」選択してsubmit
少し待ってリロードするとダウンロードボタンが出てくるのでダウンロードする

2.2 Devices
Devices → Add Devices
Device Name:適当
Device ID:iPhone UDID(http://www.google.co.jp/search?aq=f&sourceid=chrome&ie=UTF-8&q=iPhone+UDID)
Submit

2.3 App IDs
App IDs → New App ID
Description: アプリ名
Bundle Seed ID: Generate New
Bundle Identifier: company name . app name?

2.4 Privisioning
Privisioning → Distribution → New Profile
Distribution Method: Ad Hoc
Profile Name: 適当
Distribution Certificate: 2.1で作成したCertificate
App ID: 2.3で作成したAppIDを選択
Devices: 2.2で作成したデバイスを選択
Submit
少し待ってリロードするとダウンロードボタンが出てくるのでダウンロードする

3. Xcode
3.1 プロフィールを登録
2.4でダウンロードしたプロフィールファイルをダブルクリックするとXcodeに登録される
ウィンドウ → オーガナイザ → Provisioning Profiles で確認できる

3.2 Bundle identifier
***-info.plistのBundle identifierに2.3で設定したBundle Identifierを設定

3.3 Entitlements.plist
Resources右クリック → 右クリック → 追加 → 新規ファイル → Code Signing → Entitlements
Entitlements.plistファイル作成

3.4 Distribution
プロジェクト → プロジェクト設定の編集 → 構成
Release を選択して複製して名前を「Distribution」にする
ビルドタブをクリックして、構成を「Distribution」にする

プロジェクト → アクティブなターゲット”???”編集
Any iPhone OS Device: Distributionプロフィール設定
コード署名権限: Entitlements.plistが設定されてることを確認

3.5 ビルド
ビルド → クリーニング
アクティブSDKをDevice、アクティブな構成をDistributionに指定してビルド
build → Distribution-iphoneos に生成される ***.app を確認

3.6 配布
生成された ***.appファイルと2.4でダウンロードしたプロフィールファイルをユーザに送る

4. インストール
ユーザは送って来た、***.appファイルとプロフィールファイルをiTunesにドロップして同期

iPhone Development スタッフとのやり取り記録

3月12日(金)
Development Certificate を Revoke -> Status: Pending Revocation

3月13日(土)
Status: Pending Revocation

3月14日(日)
Status: Pending Revocation

3月15日(月)
Status: Pending Revocation
アップルに問い合わせ
回答:【certificate】および 【provisioning profile】を一度、全て削除していただき、再度最初のステップから作成してみてください。

そもそも【certificate】および 【provisioning profile】削除できないんで… 画面チャプチャーで再度問い合わせ

回答:本件について、システムチームへ確認をさせて頂きます。つきましては、次回当方よりご案内を差し上げるまでお待ち頂けますようお願い申し上げます。

連絡待ち・・・・・・・・・・・・・・・

3月16日(火)
Status: Pending Revocation

3月17日(水)
回答1: Message Subject: Unable to revoke
回答2: あらてめて”Portal”に記載されている最初のステップからCertificate を作成して頂きますようお願い申し上げます。
(作成できなかったから問い合わせしたでしょう!)
もう一度問い合わせ

3月18日(木)
やっと解決された。

年に1万円も取るのに対応が遅くないの???

Tweetie2 Custom Image Service

一年半ほどEchofonを愛用して来た僕ですが、最近Echofonのバージョンアップに失望して、Tweetieに移りました。EchofonはデフォルトでFlickr対応してますが、Tweetieは対応してないです。Flickrに写真をアップするためには、custom image serviceを使う必要があります。今日は2種類のimage serviceを紹介したいと思います。

1.GDZLLA

  • http://gdzl.la/ にアクセスして[get started!]
  • Twitter usernameとTwitter passwordを入力して[Authenticate]
  • [Authorize]クリックしてFlickrにログイン
  • Flickrで[OK, I’LL AUTHORIZE IT]クリックして承認
  • GDZLLAに戻るとURLが現れるので、URLをTweetieのcustomに入力

生成されるflickrURL: http://gdzl.la/7z886g

2.flickr4twitter

  • http://flickr4twitter.com/ にアクセスして[sign in with Twitter]
  • Twitterのログイン画面でUsername&Passwordを入力してログイン
  • ログイン成功すると、flickr4twitterに戻るので、[Edit Profile]
  • Flickr : Flickr Username 入力
  • Client : New custom client hashに適当に入力
  • [Save User]をクリックするとFlickrログインページに飛ぶのでログインする
  • Flickrで[OK, I’LL AUTHORIZE IT]クリックして承認
  • flickr4twitterとxmlファイルのURLが出て来る
  • URLをTweetieのcustomに入力

生成されるflickrURL: http://flic.kr/p/7C3aP7

二つを比較してみるとお分かりのようにflickr4twitterの方優れてますね、OAuthを使ってるので安全、URLをflic.krを使ってるので一目でflickrかが分かる。

Jailbreak iPhone 3G OS 3.1

環境:
Mac OS X 10.6 (Snow Leopard)
iTunes 9
PwnageTool_3.1.dmg
iPhone 3G OS 3.1

PwnageToolをダウロード
http://blog.iphone-dev.org/post/188779017/3-o-fun
http://torrents.thepiratebay.org/5089960/PwnageTool_3.1.dmg.5089960.TPB.torrent

JailBreak
PwnageTool.appを起動
jailbreak1

Expert ModeとiPhone 3Gを選択して次へ
jailbreak2

iPhone OS 3.1に該当する ipswを選択して次へ
jailbreak3

Generalを選択して、次へ
jailbreak4

Activate the phoneのチェックを外して、Root partition sizeを適当に入力して次へ
jailbreak5

デフォルトのまま次へ
jailbreak6

デフォルトのまま次へ
jailbreak7

デフォルトのまま次へ(CydiaとIcyをインストールしたくなければチェックを外す)
jailbreak8

iPhone起動時、リカバリ時のロゴをカスタマイズするかどうかを選択して、次へ
jailbreak9

Buildを選択して次へ
jailbreak10

カスタムipswファイルの保存先を選択して、次へ
jailbreak11

ビルド開始(途中でMacのユーザパスワードが聞かれるので入力)
jailbreak12

Noを選択
jailbreak13

画面に指示に従って電源ボタンを押して電源をOFF
jailbreak14

5秒待ち
jailbreak15

電源ボタンとホームボタンを10秒間押す
jailbreak16

ホームボタンを押したまま、電源をボタンを離して10秒間待つ
jailbreak17

DFU Modeになり成功
jailbreak18

iTunesのほうで以下の警告が出ますが、気にせず、OKボタンを押してiPhoneをUSBケーブルから外してから再度コネクト
jailbreak19

再コネクトすると、リカバリモードになる。
jailbreak20

[option]キーを押しながら復元ボタンを押して、デスクトップに生成させたカスタムipswファイル(iPhone1,2_3.1_7C144_Custom_Restore.ipsw)を選択して、開く
jailbreak21

JailBreak処理が開始され、後は待つだけ。

movファイル編集(90度回す)

icon_mpegstreamclip

縦になったmov形式の動画を横に変換するツール(MPEG Streamclip)を紹介します。なぜこんなmovがあるかと言いますと、iPhone 3GでJB後にインストールしたCycorderで録画すると動画が縦になります。

http://www.squared5.com/

Mac, Windows両方対応してます。

サポートするフォーマット
MPEG, VOB, PS, M2P, MOD, VRO, DAT, MOV, DV, AVI, MP4, TS, M2T, MMV, REC, VID, AVR, M2V, M1V, MPV, AIFF, M1A, MP2, MPA, AC3

機能としては

  • 主要な動画ファイル(QuickTime, DV, AVI, MPEG-4, MPEG-1; MPEG-2 , VOB)のプレイヤー機能
  • 上記フォーマットの動画ファイルの編集機能(カット、トリミング、タイムコード修正など)
  • 上記フォーマットの動画をQuickTime, DV/DV50, AVI/DivX , MPEG-4(高画質エンコード)などにフォーマット変換
  • MPEG, PCM, AC3 audio形式のストリームクリップをURLから直接ダウンロードしたり、再生可能
  • ムービーファイルのJPEG(JPG)、TIFF、PNGへのフレーム(画像)出力
  • 動画ファイルから映像、音声部分の分離(Demux)

90度回す方法

1.ファイルを開く
2.メニューから「File」->「Export to QuickTime…」を選択
3.「Rotation」の回す角度を選ぶ。
4.「Make Movie」ボタンを押してエクスポート

MPEG Streamclip