回答:
デバイスでテストする必要のあるデバイス固有の機能は多数ありますが、シミュレータを使用するよりも簡単です。デバイスのデバッグターゲットをビルドし、コンピューターに接続したままにします。
実際のデバイスを必要とするアクションのリスト:
写真のカスタムオーバーレイをテストする必要がありました。オーバーレイは、画像のサイズ/解像度に基づいて調整する必要がありました。
ステファンからの提案と同様の方法でこれに取り組み、「ダミー」のカメラ応答をコード化することにしました。
シミュレーターの実行中に、標準の「captureStillImageAsynchronouslyFromConnection」の代わりにこのダミーコードを実行します。
このダミーコードでは、必要な解像度の「ブラックフォト」を作成し、それをパイプライン経由で送信して、通常の写真のように扱います。基本的に非常に高速なカメラの感覚を提供します。
CGSize sz = UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) ? CGSizeMake(2448, 3264) : CGSizeMake(3264, 2448);
UIGraphicsBeginImageContextWithOptions(sz, YES, 1);
[[UIColor blackColor] setFill];
UIRectFill(CGRectMake(0, 0, sz.width, sz.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
上の画像は、当日のデバイスのほとんどが送信する8MP写真に相当します。明らかに他の解像度をテストするには、サイズを変更します。
カメラにアクセスする必要がある一般的な理由は、AppStoreのスクリーンショットを作成することです。
カメラはシミュレーターでは利用できないため、良い方法(私が知っている唯一の方法)は、スクリーンショットを撮る時間だけで、必要なサイズにビューのサイズを変更することです。後でトリミングします。
もちろん、より大きな画面のデバイスを利用できる必要があります。
iPadは、レイアウトをテストし、すべてのデバイスのスナップショットを作成するのに最適です。iPhone6 +のスクリーンショットは少し引き伸ばす必要があります(1,078125でスケーリング-大したことではありません…)
iOSデバイスの解像度のクイックリファレンスへの適切なリンク:http : //www.iosres.com/
編集:カスタムカメラビューコントローラーが使用されている最近のプロジェクトでは、シミュレーターでの実行にのみ使用するターゲットで、UIPreviewをAVImageviewに置き換えました。この方法で、iTunesConnectアップロードのスクリーンショットを自動化できます。カメラコントロールボタンはオーバーレイではなく、カメラプレビューのビューにあることに注意してください。
以下の@Craigの回答は、私がかなり賢いと感じた別の方法について説明しています。これは、私の場合とは逆に、カメラオーバーレイでも機能します。
私は試したことはありませんが、試してみることができます! iCimulator
デバッグモードで使用する代替ビューを作成しました。同じAPIを実装し、同じデリゲートコールバックを作成します。私の場合、テストセットからランダムな画像を返すようにしました。書くのはかなり簡単です。