Androidでデバッグを開始しようとしたときに、以下のメッセージが出る場合、接続されているAndroidをWindowsに登録する必要がある。
Android デバイスに展開できません。接続されているデバイスが見つかりませんでした。デバイスを接続したばかりであれば、認識されるまで数秒かかる場合があります。
以下のサイトがとても参考になる。
環境
機器 | 状況 |
---|---|
Windows7 | Visual Studio 2015でCordovaアプリを開発 |
Mac | ローカルネットワーク上に存在 |
iPod touch | Macに接続 |
基本的には公式ドキュメント通りにやれば良い。
Macでリモートエージェントを起動してリモートデバイスでビルドを実行すると以下のエラーが。
No matching provisioning profiles found: No provisioning profiles matching the bundle identifier “aaa.bbb.ccc” were found.
AppIDがクセモノだった
プロビジョニング作成時に登録したAppIDとVisual Studio 2015で指定しているパッケージ名をあわせなければいけない。
問題は、AppIDの方はハイフンを入れて作れるのだが、Visual Studioの方のパッケージ名にはハイフンを入れられないので、AppIDにハイフンを入れて作ってしまうとはまる。
AppIDをハイフンなしで作りなおして名前を合わせればビルド成功。
config.xml の数字を手動で変えてソリューションのリビルドをすればできた。
ionic + cordovaでionicPopupを使ってポップアップを実装したとき、1つ目のポップアップを閉じてすぐに2つ目のポップアップを開くとフォーカスがおかしくなる。
function a() { var popup = $ionicPopup.show({ title: 'title', scope: $scope, buttons: [ { text: 'OK', } ] }); } function b() { var popup = $ionicPopup.show({ title: 'title', scope: $scope, buttons: [ { text: 'OK', onTap: function(e) { popup.close(); a(); } } } ] }); } b();
問題はpopup.close()と次のポップアップのレースコンディションのよう。
次のようにtimeoutを十分にとればほぼうまくいく。
function a() { var popup = $ionicPopup.show({ title: 'title', scope: $scope, buttons: [ { text: 'OK', } ] }); } function b() { var popup = $ionicPopup.show({ title: 'title', scope: $scope, buttons: [ { text: 'OK', onTap: function(e) { popup.close(); $timeout(function () { a(); }, 250); } } } ] }); } b();