こんにちは。エクセルソフトの田淵です。
Xcode7で1円も払わずに自作iOSアプリを実機確認する - Qiita を読みました。記事早いですね!
私も負けじと Xamarin Studio で Free Provisioning アカウントを使用したアプリのビルドを試しまして、無事出来ましたのでご報告です!タイトルがまんまインスパイアされていますが内緒です!(FumihikoSHIROYAMAさんすみませんw)
大前提・用意するもの
- Mac 10.10.4 以上
- こちら を見る限り
Compatibility: OS X 10.10.4 or later
とあります。
- こちら を見る限り
- Xcode 7.0
- Xamarin Studio 5.9.7
- Xamarin.iOS 9.0.1.18
注) 2015/9/18 現在の最新 Stable です。
Xcode で Free Provisioning を用意してアプリを許可する
Xcode7で1円も払わずに自作iOSアプリを実機確認する - Qiita
を見ていただくのが早いですね。
と iOS と Mac に Free
となっていれば OK です。この Free をダブルクリックすると以下の画面になりますので、iOS Development
を Create しておきます。
後は Xcode で適当なプロジェクトを作成し、Free Provisioning のアカウントを Team に割り当てて、
Fix Issue
すれば OK です。簡単ですね。なお、アプリを作る際の Bundle Identifier
が後で重要になりますので控えておいてください。今回は com.gmail.ytabuchi.xlsoft.MyApp
としました。
2016/5/1 追記
Xcode 7.4 では Bundle Identifier は自動になりました。Product Name
の .(ドット)、_(アンダーバー)を含む特殊文字はすべて -(ハイフン)に自動変換されますので、使用しない方が良いです。
Free Provisioning の場合は、最初のアプリインストール後に、開発者を許可しなければいけないようなので、以下の画面が出てきたら、
iOS 9 端末の 設定 > 一般 > プロファイル
から該当アカウントを許可してあげましょう。
これで、Xcode からの実機転送は確認が取れました。因みにですが、Free Provisioning で実機にデプロイ出来るのは、iOS 9 の端末だけのようです(詳細不明)。iOS 8.3 の端末にデプロイしようとしたら、以下のエラーが出ました。
2015/9/18 追記:
@shohaga さんの [xamarin][ios]Xamarin.iOSで実機転送 - 日々のアレコレ(2015-09-17) によると、8.4 でも問題なく転送出来たそうです。私の 8.3, 8.4 の端末では上記エラーが出たので実際どうなのかは不明です。。すみません。
それではメインの Xamarin Studio をやってみましょう。
Xamarin Studio での作業
Xamarin Studio は Starter でログインします。Visual Studio でも同様の操作で Free Provisioning でビルド、実機にデプロイが可能です。
まだ Xamarin のアカウントを作っていない方は、こちら から適当なメールアドレスでアカウントを作成し、こちら から Xamarin をダウンロードインストールしておきましょう。
プロジェクト作成
New Solution から新規プロジェクトを作成します。
iOS > App > Single View App
を選択して Next
をクリックします。
ここで、アプリ名を Xcode の Bundle Identifier
で指定していたのと同じ com.gmail.ytabuchi.xlsoft.MyApp
にします。(理由は後述)
Xamarin.UITests を参照から外す
この章は Starter の方だけ行います。
Xamarin Studio でプロジェクトを作成すると、自動的に Xamarin.TestCould.Agent がパッケージに追加されますが、これがあると Starter のサイズ制限をオーバーしてしまいますw
- パッケージから Xamarin.TestCould.Agent を削除
- AppDelegate.cs の
FinishedLaunching
メソッド内の#if ENABLE_TEST_COULD
の部分を削除
しておきましょう。
軽くコーディング
準備が整いましたので、アプリを作ってみましょう。
例えば Storyboard にボタンを配置してダブルクリックしてイベントハンドラを作り、ViewController に用意された TouchUpInside
メソッドに次のようなコードを書いたりします。
button.SetTitle("Xamarin!", UIControlState.Normal);
こんな感じですね。さて!ではビルドしてみましょう。と言いたいところなのですが、一点 TIPS です。
TIPS: Provisioning Profile について
ビルド前に、プロジェクトを右クリックしてオプションを開き、ビルド > iOS Bundle Signing
を見てみてください。ここで、先ほど Xcode で作った Bundle Identifier
と違う名前でプロジェクトを作成してしまった場合、Provisioning Profile
が No matching profiles found
とエラーになっているはずです。
どうやら、Free Provisioning のアカウントではアプリごとに自動的にXcode で作成したアプリ専用の Provisioning Profile を自動で作成するようなのです。
Free Provisioning のアカウントで Apple Developer Center にログインは出来ました。が、Certificates, Identifiers & Profiles
のメニューはありませんので、Provisioning Profile は Xcode で作るしかありません。
また、恐らく Xamarin Studio でも作ることが出来ません。そのため、あらかじめ Xcode で作ったアプリの Bundle Identifier
と同じ名前でアプリを作り、自動生成された Provisioning Profile を間借りする。という少しイレギュラーな対応を取る必要があります。
なので、同じ名前でアプリを作るという事になったわけですw
Xamarin Studio で Provisioning Profile が選択出来ていることを確認してください。
iOS Simulator にビルド
問題ないですね。素晴らしい!
iOS 9 実機にビルド!
できました!!おめでとうございます!!
Xamarin 気になった方は
いかがでしょうか?Xamarin Studio Starter で無料で実機デバッグまでが出来ることが確認できました。C# でしかも無料で iOS アプリが書けるなんて!興味が湧いた方は、是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。 学習用リソース や JXUG リンクページ に参考資料を纏めてますので併せてどうぞ。
Xamarin の情報が欲しい方はこのブログも購読いただいたりすると嬉しいです。
以上です。