Info

Posts from the iPhone Category

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

開発時は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時は無視されるようになる。

昨日 新しい 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

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にドロップして同期

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万円も取るのに対応が遅くないの???

一年半ほど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かが分かる。

環境:
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処理が開始され、後は待つだけ。

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

i-FunBox1この前「DiskAidでiPhoneをディスクとして使用」という記事を書きましたが、そのDiskAidがいつの間にか有料になってました。ショック・・・

PC、Macから一方的にiPhoneにデータ転送するなら最悪scpコマンドでできますが、iPhoneからデータを取り出したい場合もあります。例えば、Cycorderで録画したビデオとか。

今回紹介するのは、iFunBoxというツールです。
以下のサイトからダウンロードできます。
http://i-funbox.com/

(残念ながらMac版はないようです)

i-FunBox

googlesync_184x138この前「iPhone(3G) Calendar と Google Calendar を同期させる」方法を書きましたが、他にもiPhone CalendarとGoogle Calendarの同期方法が何種類あります。しかし、どっちもサードパーティー製で安全性が気になるところです。MobileMeを使ったことある方ならあのPush型が魅力的ですが、年間9800円はどう考えても高いなと思います。自分も一年でやめました… 別にMobileMeの使い勝手が悪いのではなく単にGmailとGoogle Calendarの虜になっただけです。

今回紹介するのはGoogleが提供するExchangeサーバー?を利用した、iPhone連絡先とカレンダーをGmail ContactsとGoogle Calendarとの同期方法です、しかもiTunesを経由せずpush型で。こちらを参考にしてました

1.設定画面で、Microsoft Exchange をタップ

IMG_0070

2.Email,UsernameにGmailのアドレス、パスワードを入力して「次へ」

IMG_0071

IMG_0072

IMG_0073

3.Acceptを選択して次へ

IMG_0074

4.Serverのところに「m.google.com」を入力して「次へ」

IMG_0075

IMG_0076

5.Contacts、CalendarsをONに「Done」 ※今のところMailはサポート対象外

IMG_0077

6.同期するカレンダーを設定する。
デフォルトではメインのカレンダーのみ同期されます。複数カレンダーを持つ場合は同期するカレンダーを設定する必要があります。
iPhone(Safari)から「http://m.google.com/sync」にアクセス。言語を変更をクリックして言語を英語にします。

IMG_0078

IMG_0079

同期するカレンダーを選択して「Save」

IMG_0080

以上で、設定完了で~す、これであの面倒なiTunes同期しなくてもOK!

3638172005_ea2f5400d6_oiPhoneとPC/Macを繋ぐことをテザリングといいます。要するにiPhoneをモデムとして携帯回線を利用し、インターネットに繋ぐことです。ユーザからみればすごく便利な機能で、appleが正式に対応する前から、appstoreにテザイングのアプリが現れたり、消えたりしてました。今回iPhone OS 3.0では正式に対応すると発表がありましたが、実際3.0にアップデートしてもそういったメニューが現れませんでした。おそらく日本のSoftBankが禁止してるからだと思います。

ネット上いろんなやり方紹介されましたが、以下は自分が成功した例を紹介します。Macユーザ前提で説明しますが、基本的な原理は同じでWindowsでも同じ方法でできると思います。

1.ipccファイルのバックアップ

/Users/{user name}/Library/iTunes/iPhone Carrier Support/softbank_jp.ipcc をコピーして別の場所(デスクトップ)に貼り付けます。

2.plistファイル修正

デスクトップのsoftbank_jp.ipccの拡張子をzipに変更して解凍します。解凍すると、Payloadフォルダが現れますので、その中のsoftbank_jp.bundleを右クリックしパッケージの内容を表示。中にはいろんなファイルがありますが、以下の3つのファイルを修正します。

version.plist

1

Info.plist

2

carrier.plist

3

3.ipccファイル作成

Payloadフォルダをzipファイルに圧縮してから、拡張子をzipからipccに戻します。

4.キャリア設定更新

iTunesを開いて、[option]キーを押しながら「復元」ボタンを押して、作成したsoftbank_jp.ipccを選択してキャリア設定を更新します。

更新が終わると、iPhoneで「設定」→「一般」→「ネットワーク」の順に行くと「インターネットテザリング」のメニューが現れると思います。

3638984428_3f75bdabfc_o

SoftBankが認めてない行為なんで自己責任でお願いします