スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

Provisioning Profilesの有効期限が切れたときの対処法

Provisioning Profilesの有効期限が3ヶ月おきに発生するので、一応メモ

ブラウザでiOS Provisioning Portalへアクセスし、Provisioning タブをクリック

対象Provisioning ProfilesステータスがExpiredになっているので、ActionsのRenewボタンをクリック

ブラウザをリロードして、ActionsのDownloadボタンをクリックし、Provisioning Profilesをダウンロード

ダウンロードしたProvisioning Profilesをダブルクリック

XCodeのウィンドウ→オーガナイザを開き、Provisioningの有効期限切れProfilesを削除

XCodeのプロジェクト→プロジェクト設定を編集でビルドタブ選択

コード署名IDで新しく取得したProvisioning Profilesを選択

ビルド

でOK。

Sqlite3を使ってみる

久々にiPhoneアプリ開発をすることに。

DBを必要とする為、前アプリで使用したCore Dataを使うことも考えたが、どうも使いづらい。

で、敬遠していた、もう一つのDB管理方法Sqliteを再度調べてみることにした。

調べていくうちに、FMDBというSQLiteラッパーが存在することを知り、調べてみるとめっちゃ簡単そう。


とりあえず、FMDBをダウンロード


1.解凍して、FMDBフォルダごと、プロジェクトへ追加(fmdb.mはサンプルなので追加しなくてOK)

2.既存のフレームワーク(libsqlite3.0.dylib)を追加する

3.ターミナルでDB、テーブルを生成し、生成したDBごと、書類ディレクトリへ追加し、さらにプロジェクトへ追加する。(SQLiteの使い方は割愛)

4.データベースオープンするコードを書いて、クエリーを流してみる。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"mydatabase.sqlite"];
FMDatabase* db= [FMDatabase databaseWithPath:writableDBPath];
NSLog(@"データベース : 開いてみまっか %@",writableDBPath);
if ([db open]) {
NSLog(@"データベース開けたよ");
[db setShouldCacheStatements:YES];

// SELECT
FMResultSet *rs = [db executeQuery:@"SELECT * FROM test_table"];
while ([rs next]) {
NSLog(@"データベースの内容みてみまっか %d %@ %d ", [rs intForColumn:@"id"], [rs stringForColumn:@"data"]);
}
[rs close];
[db close];
}else{
NSLog(@"データベース開けなかったよ");
}


こんなに楽になるなんて、FMDBってすごい!

Application Loaderのエラー

遂にiPhoneアプリを申請し、待つこと1週間半。

[For Review] -> [Reject] にステータスが変わりました...


メールをみてみると、どうやらローカライズに不備があり、リジェクトされていたようです。

早速、指摘箇所修正を試みるが根が深い...

苦節1週間...





さぁ、いざ再申請!と思い、Distributionでビルド!

ビルド後のアプリを圧縮して、Itunes Connectへ。





あれ?

アップロードってどこからするんだっけ???

と考えること15分、そうでした、[Application Loader.app]なんてものを使ってアップロードしたことを思い出しましたw (どっかに書いてくれてればいいのに...)

と思ったのもつかの間、次のエラーで進めない?!

Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)


証明がおかしくね?的なことを言われるが、間違いが見つからない。。。


色々調べてみるが、あっているように見える。


と、悩みながら、ターゲットの設定を見直していると、Any iOS Deviceが iPhone Developer: xxx となっていた。

これか...

早速、iPhone Distribution: xxx に変更して、再びアップロードした。



結果はあっさりOKでした。


Provisioning Profileの名前は、DistributionとDeveloperで変えとく方が無難だと今頃気づきましたw

In Reviewの結果をまたしばらく待つことにします。


iPhoneでCore-Plotを使ってグラフを書いてみる

iPhoneでCore-Plotを使うための導入手段

付属のReadMe通り実行してもうまくいかず、参考文献もなく、英文読みあさる苦労をしてしまいました。
同じように苦戦している人いるかも知れないので情報共有してみます。


まず最初に、Core-Plotのソースコードを下記からダウンロード
http://code.google.com/p/core-plot/

解凍して、適当な場所へ保存(後で指定するのでどこでもいいです。)
自分は以下($HOME/Library/)にSDKsディレクトリを作ってそこに置いてみた。
$HOME/Library/SDKs/CorePlotSDK/
→README.txt
→core-plot
→iphoneos.sdk
→iphonesimulator.sdk

Mercurialをインストールし、[hg]コマンドを利用できるようにする
http://mercurial.selenic.com/downloads/

コマンドプロンプトを開き、
mv $HOME/Library/SDKs/CorePlotSDK/
hg clone http://core-plot.googlecode.com/hg/ core-plot

XCodeでプロジェクトを開きビルドする(Command+B)
/Library/SDKs/CorePlotSDK/core-plot/framework/CorePlot-CocoaTouch.xcodeproj

XCodeで新規プロジェクトをView-Basedで作る(まぁView-Basedじゃなくてもいいですがw)

/Library/SDKs/CorePlotSDK/core-plot/framework/CorePlot-CocoaTouch.xcodeproj
をドラッグし、デスティネーショングループのフォルダに項目をコピーするのチェックが外れていることを確認し、追加ボタンを押す

追加されたCorePlot-CocoaTouch.xcodeprojの▼を押し、libCorePlot-CocoaTouch.aを[ターゲット]→[バイナリをライブラリにリンク]へドラッグする

メニューバーの[プロジェクト]→[アクティブターゲットを編集]を選択(Opt+Command+E)し、一般タブを選ぶ。
直接依存関係の+ボタンをクリックし、CorePlot-CocoaTouchをターゲットとして追加する

同ターゲット情報画面のビルドタブをクリックする。
(検索パス)→(ヘッダ検索パス) をダブルクリックし、
$HOME/Library/SDKs/CorePlotSDK/core-plot/framework 再帰的にチェック(これ重要)

(リンク)→(他のリンカフラグ)
-ObjC -all_load

Core-PlotはQuartzCireを使っているようなので追加
グループとファイルのFrameworksフォルダを選択し、右クリックして、[追加]→[既存のフレームワーク]を選び、QuartzCire.frameworkを追加する

これで無事Core-Plotのインストールが完了したかと思います!


試しにグラフを表示してみた。

作ってみたグラフ


うーん、今回はちょっとしんどかった...

フィルタリング(predicateWithFormat)を日付でしたい

predicateWithFormatのフィルタリングを日付でしたかったのだが、サンプルになく手間取った。。。


結論は、NSDate型のスタートとエンドを作ってあげて渡せばいいだけだった。



//NSDateComponentsのインスタンス生成
NSDateComponents *comp = [[NSDateComponents alloc] init];

//開始日時用NSDateComponentsに日付を設定
[comp setYear:2010];
[comp setMonth:8];
[comp setDay:7];
[comp setHour:00];
[comp setMinute:00];
[comp setSecond:00];
//開始日時用NSCalendarを使ってNSDateComponentsをNSDateに変換
NSDate* startDate = [[NSCalendar currentCalendar] dateFromComponents:comp];

//終了日時用NSDateComponentsに日付を設定
[comp setYear:2010];
[comp setMonth:8];
[comp setDay:7];
[comp setHour:23];
[comp setMinute:59];
[comp setSecond:59];
//終了日時用NSCalendarを使ってNSDateComponentsをNSDateに変換
NSDate* endDate = [[NSCalendar currentCalendar] dateFromComponents:comp];

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(insertDate >= %@ ) and (insertDate < %@)",startDate,endDate];
[fetchRequest setPredicate: predicate ];


結構悩んだのにこんな結末w
プロフィール

kzpin

Author:kzpin
Webアプリ開発者が、ひょんなことからiPhone開発することになったので、忘れないように備忘録を残してみる

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード
QR