[xcode] フレームワークの実機ビルドエラーとitunes connectのリジェクトを回避したときのメモ

carthageで入れたいくつかのライブラリで、実機ビルドでエラーがでたり、エラーを回避してもiTunes Connectでリジェクトされたりして、ハマったのでメモ。

SwiftyDropboox.framework
SocketIO.framework
Starscreem.framework

あたりをCarthageでいれてる。いろいろやったのでどれが効果があったのかはっきりよく覚えてないので、やったことをメモ。

Alamofire.frameworkで実機ビルドでエラー
=> Embedded FrameworkにAlamofire.framework追加して回避

Alamofire.frameworkがiTunes connectでリジェクト
=> Embedded Frameworkから外して、Run scriptでコピーで回避
=>Alamofire.frameworkのswiftmoduleからi_386,x86_64を削除

[Unity] CanvasScalerと座標

uGUIやRectTransformを使った画面のレイアウトをスクリプトから制御しようと思うと、座標の扱い方で混乱することがあるのでメモ。

mousePositionやtouchesの座標 > 画面の解像度座標
uGUI(RectTransform) > CanvasScaler内の座標

なので、座標の変換が必要

[VirtualBox][npm][webpack][Browsersync] windows10で突如Browser syncでExternalで接続できなくなった時の対処

  • ネットワーク設定をプライベートにしているか
  • プライベートネットワークのファイアウォールを切っているか

このあたりをまずチェック。それでもダメで半日いろいろとやっててわかったのは、

VirtualBoxのネットワーク設定で、環境設定>ネットワーク>ホストオンリーネットワークの中でアダプターがIPアドレス固定していると、browsersyncがそのIPアドレスでExternalを作る

なのでアダプターの設定を削除。

VirtualBox使うときにはまた追加しましょう。

[IE][ES6] Assignment to read-only properties is not allowed in strict modeを回避

ReactでUIを動的に変化させる実装をしていてEdge/IEで、


Assignment to read-only properties is not allowed in strict mode

とエラった。

これは、


const cell = findDOMNode(this.refs.cell);
let _rect = cell.getBoundingClientRect();
_rect.y += 10;

みたいに、DOMのRectがread-onlyのものに代入するとでるから、


let _rect = cell.getBoundingClientRect();
let _rect2 = $.extend(true,{},_rect);
_rect2.y += 10;

って感じでディープコピーしてやる

UnityでiOSのビルドをしてxcodeでアーカイブするときによくでるエラー

その1
.......MapFileParser.sh: Permission denied

まんまパーミッションを変更する

chmod +x MapFileParser.sh

その2

clang: error: no such file or directory: '......../Classes/Prefix.pch'

clang: error: no input files

どこか別のxcodeプロジェクトから同じファイルをコピペしてもってくる

あせることはない、コピペでいいんだぜ

[react.js] リアクトでイベントリスナー


const element = findDOMNode(this.refs.element);
element.addEventListener('mouseover'),(e)=>{
this.mouseover(e);
});
element.addEventListener('mouseout'),(e)=>{
this.mouseout(e);
});

こうしてあげる


this._mouseover = this.mouseover.bind(this);
this._mouseout = this.mouseout.bind(this);

const element = findDOMNode(this.refs.element);
element.addEventListener('mouseover'),(e)=>{
this._mouseover(e);
});
element.addEventListener('mouseout'),(e)=>{
this._mouseout(e);
});