iOS10でカメラを使うためプライバシー設定
以前に作ったカメラのアプリがいつのまにか動かなくなってて焦りました。
MediaPluginのTakePhotoAsyncメソッドを呼ぶとSIGABRTで落ちてしまいます。
色々調べた結果、iOS10の仕様変更が原因っぽいことがわかりました。
を見ると、info.plistにカスタムプロパティにNSCameraUsageDescriptionのキーを作りなさいとあります。
VSでinfo.plistを開いてもカスタムプロパティを設定する場所が見つかりません…
仕方ないので、info.plistをxmlエディタで開いて上記の記事のとおり下記の行を挿入します。
<key>NSCameraUsageDescription</key>
<string>This app needs access to the camera to take photos.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app needs access to photos.</string>
で、ビルドして実行…動いた。よかった。(^^)
Xamarinからカメラを使う
XamarinでiPhoneアプリをビルドしてみる
とりあえずXamarinでiOSアプリを作ってみます。
HelloWorldでは面白みがないので、時計のアプリでも作ってみます。
1. Visual Studioで新規ソリューションを作成します。
テンプレートは「iPhoneのSingle View App(iPhone)」を選びます。
名前は「SimpleClock」にしておきます。
2.「ツール-オプション」メニューで、Xamarinの「iOS Setting」のページを開きます。
3.リモートビルド用のMacに接続します。接続する際、MacのログインID、パスワードを入力します。
4.Main.storyboardを開きます。ViewはiPhone6、iOS9.2を選びます。
5.左のツールボックスからLabelを選んで貼り付けます。フォントサイズを適当に大きくし、Name属性には「labelTime」と入力します。
6.ViewControl.csを開き、下記のとおり編集します。
using System;
using System.Timers;using UIKit;
namespace SimpleClock
{
public partial class ViewController : UIViewController
{
Timer timer;public ViewController(IntPtr handle) : base(handle)
{
}public override void ViewDidLoad()
{
base.ViewDidLoad();
// Perform any additional setup after loading the view, typically from a nib.// 画面の初期化
updateContorol();// 1秒ごとに画面を更新する
timer = new Timer(1000);
timer.Elapsed += ((source, e) =>
{
InvokeOnMainThread(() => {
updateContorol();
});
});
timer.AutoReset = true;
timer.Enabled = true;
}public override void DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
// Release any cached data, images, etc that aren't in use.
}private void updateContorol()
{
labelTime.Text = DateTime.Now.ToLongTimeString();
}
}
}
Visual StudioでiOSアプリ 環境準備
Visual StudioでiOSをビルドするための準備。
■Xamarinのエディション
Xamarinは有償ですが、いきなり購入する財力はないので無償のStartarエディションというのを利用します。無償な代わりにビルドできるサイズに制限があったり、使えない機能があったりするようです。
■準備
下記を準備します。
残念ながらWindowsだけでは開発できず、Macが必要らしいです。
自分はMacBookPro 13inch(2011 later)の一番安いやつ を利用しています。
■Visual Studioのダウンロード
Visual Studio Community 2015をダウンロードしてインストールします。
個人利用なら無料で利用できます。
いい時代になったものです。
■Windows用Xamarinインストール
Visual StudioにはWindows版Xamarinが同梱されてますがバージョンが古いため、この後ダウンロードする iOS版に接続できません。
そのため下記のサイトからWindows版Xamarinをダウンロードしてインストールする必要があります。
■Mac環境の準備
Macで下記のサイトにアクセスしてXamarinをインストールします。
■Mac接続用設定
Mac側でリモート接続のための設定が必要です。
- システム環境設定-共有を開きます。
- 「リモートログイン」を「すべてのユーザ」で有効にします。
これで準備完了です。
Visual StudioでiOSアプリ開発
iOS/Android/Windows アプリ開発 - Visual StudioによるとVisual StudioでiOSアプリを作る方法は2種類あるらしい。
- Monacaを使う方法
- Xamarinを使う方法
お手軽なのはMonacaを使う方法。
- 実装はHTML5+Javascript。
- PhoneGapで端末のデバイスにも一通りアクセスできる。
- iOS用のデバッガーを使えば、簡単に実機での動作確認ができる。
ほんのちょっと使ってみましたが、なかなか面白いです。
でもHTML/Javascriptはちょっと苦手なのです…
一方、XamarinはC#+XAMLで開発ができるとのこと。自分が求めてたのはこちら。
というわけで、Xamarinでなんか作ってみよう!
ブログ始め
IT系の仕事してます。
仕事では好きなプログラミングができなくなってきたので、趣味の世界で遊ぶことにしました。
調べたり試したりしたことを備忘録てきに残していこうか、と。