× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
iPhone6や6Plusが登場することにより、iOSデバイスの画面サイズ種類は
と6種類にも及ぶことになる。 ますますUseAutoLayoutを使いこなしていくことは重要になってくる。 UseAutoLayoutを使っていて、動的に指定したくなることがある。 そういう場合、UseAutoLayout自体を使わなくするという手もあるが、画面サイズの違いを吸収できなくなるので適切でない。 UseAutoLayoutのON/OFFはストーリーボード単位での指定になるので、別ストーリーボードに分けることで影響を絞る、という手もあるといえばある。 しかし、コードからレイアウト指定ができると便利になる。 その方法が 参考 に書いてあった。 公式リファレンスは以下を参照。 NSLayoutConstraintクラス AutoLayoutガイド なお、注意点をいくつか。 ・AutoLayoutによる配置が実行されるタイミング これは、viewWillAppearとviewDidAppearの間になる。 つまり、レイアウト制約の指定はviewDidLoadかviewWillAppearあたりでやっておけばいいということになる。 しかしそれは同時に、viewDidAppearまで各ビューのframe,boundsは信用できる値になっていないということでもある。 具体的に言うと、storyboard上で配置してある座標やサイズがそのまま入っていたりする。 その値を使って別のビューの座標やサイズを計算すると、思わぬずれが生じることになる。 storyboard上では、iPhone5Sのサイズで作っていることが多いだろう。だからiPhone5Sの実機やシミュレータで実行していると気付きにくい。別のサイズのデバイスで実行したときに発覚することになるだろう。 対処としては、viewDidAppear後に座標やサイズの計算をすればよい。しかし、一瞬(1フレーム?)計算前の状態でビューが表示されてしまう。 だから、そのビューはstoryboardに配置せずにコードで生成するようにするとか、初めはhiddenにしておくとかいう手間をかけておく必要がありそうだ。 それが面倒なら、viewDidLoadかviewWillAppearで、ということになるが、 その場合はビューの正確な位置をコード中で求めることになりそうだ。AutoLayoutの指定の中で、信用できる数字を使うことになる。例えばHeightを40に指定しているとか、親ビューからの相対座標をx=20にしている、とかそういう制約から計算することになる。 しかしこれはUseAutoLayoutと意味が二重になるのであまりうれしくない。 PR |
|||||||||||||||||||||
Xcodeで、久しぶりにプロジェクトを実機に転送しようとすると発生することがある。
A valid provisioning profile for this executable was not found 参考 そして… スキームを確認し、デバッグBuildになっているかどうか確認すること! |
Social.frameworkを追加し、
|
アクション
スキームのみ アプリ名(正式名称。ストアに載せるもの) 短縮アプリ名iPhone(全角6文字以内がよい) 短縮アプリ名Android(正式名と同じでもよい) バンドルID。(iPhone、androidのパッケージ名。広告SDKやanalyticsなどで使用するので先に決めておくのが良い) 各種アイコン。 とてもややこしい。以下参照 ios,android iPhone、iPad ios全バージョン ややこしすぎるので、一覧を作るのはやめてユースケースだけ挙げておく。 どのバージョンでも、iTunesストア用のアイコン 512,1024 は必要。 それに加えて iPhoneのみで7以降なら 58(設定),80(spotlight),120(アイコン) が必要。 iPhoneで6も含むなら、さらに 29(設定、spotlight),57(アイコン),114(アイコン) が必要。 andoroidに関しては 192,144,96,72,48,36 が必要。 動作確認用の端末のUUIDの一覧。 Apple Dev Centerのアカウント。 チームアカウントで作れば、複数のアカウントを紐づけることができる。権限も個別にしてい可能。iTunesConnectとは別に管理もできるので、開発者だけに渡すアカウントも作れる。 Google Play Devのアカウント。 他に、必要なら以下も。 TestFlightのアカウント。アプリの共有に。 広告SDKのアカウント。(バンドルIDも併せて使う場合あり) PUSH通知などのサービス(証明書なども併せて使う場合あり) Google Analytics(普通はGoogle Play Devと同じでよい) ストアへの提出を行う場合は、以下も。 iOSの場合 iTunesConnectのアカウント。 ストア文面 検索用キーワード 配信国 Copyright表記 アプリのカテゴリー サポートURL レビュー中コンタクト情報(苗字、名前、emal、電話番号) スクリーンショット(1024x768,960x640,1136x640の3種。各最大5枚) 配信開始予定日 Androidの場合 簡単な説明(80文字以内) 詳細な説明(4000文字以内) スクリーンショット。3種各最大8枚。1 辺の長さが320~3840px。 高解像度画像 512 x 512 宣伝用画像 1,024 x 500 プロモーション画像 180x120 アプリのタイプ・カテゴリ 連絡先のウェブサイトまたはemail(あれば電話番号も) プライバシーポリシーを書いたURL(あれば) 販売国 |
最近のXCodeは優秀で、アカウントとの紐付けさえできていれば自動でプロビジョニングプロファイルを作ったり更新したりしてくれる。
でも、人からもらったプロビジョニングを使うときもある。外注とか。 そのときの手順。 まず、プロファイルを確認する。 これの中身を見る。 $ less XXX.mobileprovision こんな感じで情報が載っていて、この中の「UUID」の項目を確認する。 プロビジョニングプロファイルってどこにあるのかというと、
ここ。 見てみると こうなっている。 プロビジョニングプロファイルの固有識別子(UUID)をファイル名として一覧になっている。 つまり、ここに手動でコピーすれば良い。 UUIDは今確認したので、
とすればよい。 これでOK。 必要ならXCodeを再起動すれば、一覧に出てくる。 これでOK。 ただし注意点として、秘密鍵がないと実機実行は起動できないようだ。 |
ヘッダファイルがC/C++ファイルから読み込まれたのか、
Obj-Cファイルから読み込まれたのか。 見分けたいときはコレ。
|
ハイスコアなどの記録方法。
NSUserDefaults を使う。 記録
取得
参考 |
URLスキームを使う
うーむ簡単。 urlの部分(itunes.apple.com以下)は、AppStore上に実在してればどこでもOK。 もう少しいろいろしたい場合の参考。 iPhone端末内にアプリがある場合はアプリを、ない場合はAppStoreを開くコード アプリ内でApp Storeが開ける! SKStoreProductViewControllerについて |
ビューコントローラには二つの初期かメソッドがある。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; -(id) initWithCoder:(NSCoder *)aDecoder nibで定義されていれば前者が、 そうでないアーカイブオブジェクトなら後者が呼ばれる。 必ず行いたい初期化処理があれば、共通のメソッドを作っておいて両方から呼ばせる。
参考 |