iPhone:実機にAppが送れない

昨年iPhoneデベロッパー登録して、ようやくぼちぼちいじってます。で、デバイス(実機)での確認テストをしようとして躓いた点。

この辺のサイトを参考にしつつ、一通り設定してビルドするも下記のようなエラーが出ます。

Code Sign error: Provisioning profile ‘XXXXXX’ specifies the Application Identifier ‘com.XXXX.*’ which doesn’t match the current setting ‘com.yourcompany.Counter’

ググってみたら、このサイトで・・・

3. プロパティの項目にある識別子にApp IDで設定したApp ID name(10文字)を除いた残り 例えばcom.domainname.*の場合はcom.domainname.${PRODUCT_NAME:identifier}とする。


てな記述を見つけ、「プロパティって、何のプロパティ???」と思いつつ調べてみたら、info.plistの中にある「Bundle identifier」のことでした。ここの指定が「プロジェクト」>「プロジェクト設定を編集」から「ビルド」を選んで、Code Signing>コード署名 ID>Any iPhone OS Device で指定した「Provisioning」で指定したデベロッパー名と合ってないといけないようです。さらに調べると、plistってプロパティリストと呼ばれるファイルだそうで、だから上の引用で「プロパティ」って書いているのね・・・。この辺をみると、OSX独自のファイルのようです。


Xcodeというか、CもObject-Cもよく知らないので、なかなかハードル高いです。きっと同じ目に遭う人がいると思うので(^^;、書いておきます。以下、参考にしたサイトです。感謝。

[追記]後からよく見たら、我が参考書「iPhone SDKの教科書」にバッチリ出てました(P195)。さすが!…っていうかよく読めよ(T_T)。

Materialで使用するmcで、アニメーション中に位置がずれる

PlaneのMaterialに適用したmcで、アニメーションで(0,0)より左(xのマイナス方向)にオブジェクトが出てくるとPlaneのx方向の位置がずれる事象が発生。マスクされていて、オブジェクトが(0,0)より左に表示されなくても、置いてあるとダメ。はみ出した分だけ、xの正方向にずれる。つまりmcに含まれるオブジェクトで一番左が原点になるようにmcが動いている感じ。何でだ?
MovieAssetMaterial、MovieMaterialのどちらでも発生。
たぶんカメラを等倍設定(camera.z = -(camera.zoom * camera.focus);)にしているので、カメラの位置がずれるのかな・・・と気がするけど、現時点では対処法わからず。とりあえず(0,0)より左にはオブジェクト配置しないようにすることで対処。

MovieAssetMaterialで適用したmcにあるボタンにカーソルが反応しない

前提としてMovieAssetMaterialのmcでボタンを有効にするには、MaterialObject3D.interactiveをtrueにする必要がある。Viewport3Dクラスにもinteractiveがあるけど、こちらは関係ないみたい。設定しなくて大丈夫でした。

例)
var name_slide:String = “panel”;
var material:MovieAssetMaterial = new MovieAssetMaterial(name_slide,true,true,false,true);
material.oneSide = false;
material.smooth = true;
material.interactive = true;

で、このmcの中にあるボタンイベントは問題なく動作するものの、カーソルが変化しない。ボタンでもムービークリップにmc.buttonMode = trueでもダメ。
仕方ないので、強制的にカーソルを変更する事で対処。ボタン自体も反応しないので、ムービークリップに変更してボタン表示もスクリプト制御にする。
例)
btn_next.addEventListener(MouseEvent.ROLL_OVER,onRollOver_btn);
btn_next.addEventListener(MouseEvent.ROLL_OUT,onRollOut_btn);
btn_next.addEventListener(MouseEvent.MOUSE_DOWN,onPress_btn);
btn_next.addEventListener(MouseEvent.CLICK,onClick_next);
function onClick_next(evt:MouseEvent):void {
//var wObj_parent:Object = this.parent;
var target_mc:MovieClip = evt.currentTarget as MovieClip;
target_mc.gotoAndPlay(“f_over”);
this.gotoAndPlay(“c1_2”);
trace(“click next!”);
}
function onRollOver_btn(evt:MouseEvent):void {
var target_mc:MovieClip = evt.currentTarget as MovieClip;
target_mc.gotoAndPlay(“f_over”);
Mouse.cursor = MouseCursor.BUTTON;
}
function onRollOut_btn(evt:MouseEvent):void {
var target_mc:MovieClip = evt.currentTarget as MovieClip;
target_mc.gotoAndPlay(“f_off”);
Mouse.cursor = MouseCursor.AUTO;
}
function onPress_btn(evt:MouseEvent):void {
var target_mc:MovieClip = evt.currentTarget as MovieClip;
target_mc.gotoAndPlay(“f_on”);
}
う〜ん、一応動いたけど、F9だとMouse.cursorが使えないので、F10/AS3.0でないと使えない。なんとかならないのかな〜。

このブログについて

最近、またActionScript関連で自分用にメモを残すようになりました。その備忘録と整理しやすさからブログにしてみる事にしました。過去、そして現在もお世話になっている様々なサイトのようにはいかないかもしれないけど、自分が躓いた事も誰かの役に立つかもしれない・・・。

そんな思いも含め気づいたこと、解決したことなど、書いていければと思います。よろしくお願いします。