プログラミング」カテゴリーアーカイブ

Cordovaアプリを実機Androidでデバッグ開始時に最初に出るエラー

Androidデバッグを開始しようとしたときに、以下のメッセージが出る場合、接続されているAndroidWindowsに登録する必要がある。

Android デバイスに展開できません。接続されているデバイスが見つかりませんでした。デバイスを接続したばかりであれば、認識されるまで数秒かかる場合があります。

以下のサイトがとても参考になる。

Google USB DriverでAndroid端末をWindowsに認識させる – Yahoo!知恵袋

Visual Studio 2015で開発したCordovaアプリを iPhone/iPod touch で起動する

環境

機器 状況
Windows7 Visual Studio 2015でCordovaアプリを開発
Mac ローカルネットワーク上に存在
iPod touch Macに接続

基本的には公式ドキュメント通りにやれば良い。

iOS での Apache Cordova アプリの実行

詰まったところ

Macでリモートエージェントを起動してリモートデバイスでビルドを実行すると以下のエラーが。

No matching provisioning profiles found: No provisioning profiles matching the bundle identifier “aaa.bbb.ccc” were found.

解決

AppIDがクセモノだった

プロビジョニング作成時に登録したAppIDとVisual Studio 2015で指定しているパッケージ名をあわせなければいけない。

f:id:KongariBug:20160113132154p:plain

f:id:KongariBug:20160113132158p:plain

問題は、AppIDの方はハイフンを入れて作れるのだが、Visual Studioの方のパッケージ名にはハイフンを入れられないので、AppIDにハイフンを入れて作ってしまうとはまる。
AppIDをハイフンなしで作りなおして名前を合わせればビルド成功。

ionic + Cordovaで連続でポップアップを開いたときに挙動がおかしくなるのを防ぐ

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();