2014年11月30日日曜日

Yosemiteでwifiの電波強度を調べる

以下のコマンドをアプリ->ユーティリティ->ターミナルで実行
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
電波強度(rssi)やチャンネル、暗号方式しを調べられます。
電波強度は0から-60が良い、-60代は普通、-70台は弱いと判断できます。
-80〜-100だと不安定になります。
Yosemiteだと-80〜-100でなければアイコンのアンテナ本数は最大に表示されます。

2014年11月28日金曜日

unityスマホアプリの動作を軽くするには1〜ドローコールを減らす

作成したアプリをスマホで動かすと動作が重いことがあります。
近年、スマホのスペックはムーアの法則並みに進化していますが、それでも消費電力重視のcpuではデスクトップパソコンには遠く及びません。

unityアプリを軽くするには

unityの描画はドローコールという単位で行われています。
描画回数を減らすことでアプリの動作を滑らかにできます。

  • 1マテリアル実体=1ドローコール
  • 1gui=2ドローコール

jointやアニメーションもドローコールを大量に消費します。
スクリプトからマテリアルを使用する場合はfindやinstantiateを使うと実体が増えてしまいます。resource.loadから直接参照先を渡せば問題ありません。

2014年11月27日木曜日

iosアプリの審査で日本語説明文が伝わらない問題

 アプリの説明に英語のローカライズがない場合に、アプリが正しく審査されないことがあります。
具体的には、アプリの画面に「ひらがなで入力してください」と書いてある直下の入力欄に漢字や英語の入力をして”このアプリ先に進まないぞ?”というふうにリジェクトされることがよくあります。ご丁寧に説明を無視した入力の画面キャプチャまで添付してくれますw
 iosアプリの審査はアメリカで行われています。日本語の読めるレビュー担当者はいません。そのためアプリ登録時の説明文に英語のローカライズがない場合は誰かが翻訳してレビュー担当者に伝えています。どのタイミングで誰が日本語の翻訳をしているのかは不明です。

解決方法

アプリ登録時のメモ入力欄にテスト方法の指示を書くか、英語のローカライズを用意する。それでもだめなら何度もレビュー提出するとアップルから電話がかかってくるのでそこで説明するしかありません。ある程度日本語を話すことができる担当者から電話をくれます。ただ会話話できても文章は読めないようです。


YOSEMITEのパスワード入力をしない方法

起動時の自動ログインはユーザとグループのログインオプションから設定できます。
スリープ復帰時のパスワードロックはセキュリティーとプライバシーから設定できます。
 windowsと違い、アカウントのパスワードは必須です。
なのでパスワード入力を省きたい場合は、自動ログインと自動ロックを無効にする必要があります。

2014年11月25日火曜日

mac yosemite 日本語入力バグ

日本語入力がとつぜん大文字英数に切り替わることがあります。
ソフトを開きなおすことで一時的に解決します。
どうやらIMEの変換機能のバグのようなので、
設定画面のキーボードから変換学習のリセットを行うと直るかもしれません。

AdMob広告表示プラグイン

unity用のプラグインを使用して広告を表示できるようにしました。

使用した環境

  • mac mini 2014
  • yosemite
  • xcode6.1
  • unity4.5.5
  • GoogleMobileAdsSdkiOS-6.12.2 : https://developers.google.com/mobile-ads-sdk/download?hl=ja#downloadios
  • プラグインはこちら: https://github.com/mikito/unity-admob-plugin

 androidの場合はプラグインをインポートしてAdMobManagerプレハブをヒエラルキーに追加するだけで広告が表示できます。id入力や広告の位置はインスペクタで入力できます。
 iosの場合はワンステップ必要でxcodeから以下のフレームワークの追加が必要になります。


  1. MessageUI.framework
  2. AdSupport.framework
  3. StoreKit.framework
  4. CoreTelephony.framework
  5. EventKit.framework(gui使用時)
  6. EventKitUI.framework(gui使用時)

xcodeのBuild Settings->Other Linker Flagsをダブルクッリックして-ObjCを追加します。
以上でiosアプリに広告を表示できます。

注意点

iosシュミレーターでは広告を表示できません。
最新のAdMob SDKを使用したほうがいいかもしれません。
https://developers.google.com/mobile-ads-sdk/downlo
ad?hl=ja#downloadios
SDKの上記画像ファイルをプロジェクトのlibrarysに上書きします。
エラー発生時は、Build Settings->Search Pathsを確認してください。


”($XXXX)”などダブルコートで囲まれたパスがある場合はダブルコートを取り除いてください。1〜2つ見つかる時があります。
ヘッダーパスは変更しないでください。

備考

フレームワークを自動的に追加してくれる管理ソフトもあります。
sudo gem install xcodeproj


2014年11月24日月曜日

unity: 定数の修正が反映されない

publicにしている定数の初期値をソース側で変更しても反映されないことがあります。
これはインスペクタ側の初期値が優先されるためです。
そのため、ゲームオブジェクトにpublic定数を含むスクリプトを貼り付けた際に使用していた定数の値がインスペクタ上で生き続けています。
インスペクタに依存、表示させないようになるには”HideInInspector”を変数の上につけます。

使用例

public class クラス名 : MonoBehaviour {
[HideInInspector]
public int TEISU=100;//インスペクタに表示されなくなる
}

2014年11月23日日曜日

unityアセットストアの日本語入力が二回判定になる

unityアセットストアの検索で日本語入力すると2連続入力されてしまう。
たとえば「あ」と入力すると「ああ」となります。

環境


  • mac mini2014 2.8G
  • os yosemite
  • unity 4.5.5(現時点最新)
  • キーボード win用のjisキーボード

英数入力なら問題ありません。
unity内部のアセットストアウインドウはunityで作成されているようです。
そのためグラボとの相性やら色々と依存しています。
macなのでdirectXの設定を変えてみるなどはできません。
キーボードが問題なのかな

2014年11月22日土曜日

"_OBJC_CLASS_$_EKEvent", referenced from:

広告を表示するアプリで以下のエラーが発生・

"_OBJC_CLASS_$_EKEvent", referenced from:

解決方法

フレームワークの追加で解決します。
EventKit.framework
EventKitUI.framework

2014年11月21日金曜日

xcodeエラー:Warning: Error creating LLDB target at path

64ビットのisoシュミレーターを使用すると以下のワーニング?エラーが発生します。

Warning: Error creating LLDB target at path '/Users/yuuki/Library/Developer/Xcode/DerivedData/Unity-iPhone-efzkqwujfknmbrclodikqenirxdl/Build/Products/XXXX.app'- using an empty LLDB target which can cause slow memory reads from remote devices.
ようは32ビット向けのアプリだと性能を発揮できないということです。
arm7(64)でコンパイルをすれば表示されなくなります。
64ビットを指定したからといって32ビット機でアプリが使えないわけではないようです。
32ビットと64ビットアプリが両方作成されるようです。

xcode6.1 iOSシュミレーターを日本語入力するには

xcode6.1はiosシュミレーター側から日本語化ができません。
日本語入力をできるようにするには以下の手順が必要です。

手順

1,日本語入力用のスキーマを作成します。
product->schema->new schema
 2,適当なスキーマ名をつけます。
 3.作成したスキーマがproduct->schemaに表示されるので
チェックを入れます。
4.product->schema->edit schemaを開きます。
argumentsのArguments Passed On Launchの+ボタンを押して
[-AppleLanguages (ja)]と入力します。
 
 iosシュミレーターを起動すると日本が入力できます。
プロジェクトごとに日本語入力ようのスキーマを用意すれば
各iosシュミレーターに反映されます。

2014年11月19日水曜日

unityエラー: "_NSSQLiteStoreType", referenced from:

GooglePlayGameServicePluginを使用したxcodeprojectで以下のエラーが発生。
"_NSSQLiteStoreType", referenced from:
CoreData.framework を追加することで解決します。

unityエラー: "_CTFontManagerRegisterFontsForURL", referenced from:

グーグルプレイゲームサービスのプラグインを使用しているxcodeプロジェクトでエラーが発生しました。「"_CTFontManagerRegisterFontsForURL", referenced from:

解決方法

CoreText.frameworkを追加します。

unityエラー: !dest.m_MultiFrameGUIState.m_NamedKeyControlList

キーボードからinputoするごとにコンソールにエラー「!dest.m_MultiFrameGUIState.m_NamedKeyControlList」と表示されるようになりました。
どうやらunityの一時的なバグなようでプロジェクトを開きなおすと表示されなくなりました。

2014年11月18日火曜日

Q.実機無しでもアプリの公開はできますか?

Q.実機無しでもアプリの公開はできますか?
A.可能です。

Apple developerサイトのprofileにdeviceのidを登録する必要がありますが、適当な番号で一つだけ登録しておくだけで問題ありません。
 ただし、iosシュミレーターにはできないことやバグがあります。iosアプリはappleがテストをしてくれますが時間がかかります。実機を用意してしっかりテストをしたほうが効率的です。
 どちらにせよ全ての実機やiosバージョンを用意してテストするのは難しいですね。

apple supportの保留音

そういえばapple supportの保留音がラップでした。
ノイズだらけのラップで煩かった…
次の曲も洋楽がながれて困惑しました。
音声付きの音楽を保留音につかうとか、日本のコールセンターなどではありえませんよね。

2014年11月17日月曜日

ビルドエラー_SKStoreProductViewController

admobのプラグインが入ったプロジェクトで以下のエラーが発生。
"_OBJC_CLASS_$_SKStoreProductViewController", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
"_SKStoreProductParameterITunesItemIdentifier", referenced from:
-[GADOpener openInAppStore:fallbackURLString:] in libGoogleAdMobAds.a(GADOpener.o)
StoreKitフレームワークを追加すると解決します。

General,Capabilitys,Bulid Phases,Bulid Rulesが表示されない

xcodeを操作しているうちにGeneral,Capabilitys,Bulid Phases,Bulid Rulesが表示されなくなるときがあります。
代わりにinfoとbulid settingだけ表示されて困りました。
解決方法は以下の画面のGeneralまたはinfoの左にあるリストボタンを押して、自分の作成したアプリのアイコンを選択してください。

archiveを提出時のエラー

archiveを作成してsubmitボタンを押したら以下のエラーが発生しました。
itunes store operation failed. no software with CFBundleIdentifier of 'com.kaisya.sohuto' exists.続く
どうやらitunes connect(https://itunesconnect.apple.com/)にアプリ登録をしないといけないようです。skuの項目は任意の英数を入れれば良いそうです。

xcodeのidentityのissue

xcodeのidentityのissueボタンで以下のエラーが発生しました。
Unable to create a provisioning profile because your team has no devices registered in the Member Center. Please connect a device, enable it for development, and add it to the Member Center using the Organizer.
このエラーはテスト用の実機が登録されていないと発生します。
サファリでメンバーセンターを開いてCertificates, Identifiers & Profilesからdeviceを登録しましょう。
uuidはidentifierのことです。xcodeのウインドウ→deviceから接続している端末のidを調べることができます。

プロファイル作成のエラー

csrをキーチェーンアクセスから作成してアップロードしたところ以下のエラーが発生。
Error
We are unable to upload this Certificate file because it is invalid. Please check the file and try again.
 拡張子をcsrからcertSigningRequestに変更したら無事にプロファイルが作成されました。

FMOD failed to initialize Error initializing output device

iOSシュミレーターのバグ。

unity4.5.5+yosemite+xcode6.1

unityでAudioSourceを使用しただけのアプリをiOSシュミレーターで起動すると以下のエラーが発生し、音がでない。

Error loading /System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib:  dlopen(/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib, 262): Symbol not found:

FMOD failed to initialize ... Error initializing output device.
(Filename: /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Audio/AudioManager.cpp Line: 239)

An invalid object handle was used. 
(Filename: /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Audio/AudioSource.cpp Line: 311)

実機なら問題ありません。

iOS Developer Programへ登録

アプリを公開するためにappleの開発者登録をしてみました。
現在は7800円で販売されていますが円安の価格が反映されると11600円くらいになるかもしれません。(99ドルで販売されている)
支払いはクレジット、appleのプリペイド、デビットカードが使えます。
早速登録してみて支払いも済ませたのですが、
1日経っても「Contact Us
We are unable to verify your identity. Please contact us for further assistance.
から進まなくなっていました。
Contact Us We are unable to verify your identity. Please contact us for further assistance.
ネットの情報を調べたところ、登録情報に日本語が含まれていると処理が止まることがあるそうです。ただし、アクティベーションメールがどうとかは古い情報です。2014年11月現在はアクティベーションコードを使用した認証を行っていませんでした。
自分の場合は英語で登録をしたいました。何が問題なのかは不明です。
apple support 0120 9333 88に電話をして確認したところ。
すぐに登録処理が音量しました。サポートディスクの人にapple diを伝えただけです。
登録が完了
登録が完了するとプロフィル作成のアイコンが追加されます。



2014年11月16日日曜日

macでunity開発の必要スペック

cpuはi3以上、メモリは4Gで十分だと思います。
unityとmonoとxcodeとiosエミュレーターとブラウザを同時使用してもi5 2.8Gデュアルコアでcpu使用率は50パーセント以下で冷んやり。メモリの実消費は4Gほどでした。(規模によります)
ストレージは128Gで十分です。
一通り開発環境を整えて50Gの消費です。
ただし、unityからxcodeプロジェクトを作成すると最低300M消費します。
 apkやappファイルを作成するとリソースファイル*4のステレージを消費します。
ダウンロードassetを沢山使うには128Gのストレージでは厳しいかも。
以上の点を考慮して余裕を持たせると

推奨スペック

メモリ8G
ストレージ256G



初めてのmacパソコン

mac mini 2014 2.8Gモデルを購入しました。
mac mini 2014 2.8Gモデルスペック画像
購入してまずすべきことは、
システム環境設定(ドックの歯車アイコン)から
キーボードとディスプレイの設定です。
ディスプレイはaltを押しながら解像度を変更
キーボードはキーボードの変更を押してjisキーボードを認識させます。
ちなみに日本語入力は窓+スペースで切り替えられます。
ショートカット関係はctlでなく窓キーを押します。
窓+cでコピーです。
バックスラッシュがアンダースコアになるかもしれません。
alt+yでバックスラッシュが入力できます。