プログラミング

LaunchScreen.storybordの画像が表示されないときの対応 [iOS][Xcode]

こんにちは!!Cowboyです☆

今回の記事はまたプログラミングについてです。

XcodeでiOSアプリを開発する時に、 実機で動作確認することが多々あります。
その際にスプラッシュスクリーンの画像が消えてしまうことが頻発して、困っていました。
ちなみにシミュレーターではきちんと表示されます。

どうやらネットで調べると、よく起こる現象らしく悩んでいる人がたくさんいました。
数年前に調べた時は解決方法は特になく、画像のファイル名を変更することによって対応している方がほとんどでした。

最近また調べたのですが、新たな解決方法が発見されたようでして、試したところきちんと解決したので忘備録として記事を書きます。

やり方は非常に簡単です。

アプリをbuildした際にスプラッシュスクリーンが表示されなくなったiPhone(iPad)本体の電源を落として再起動します。

これだけです。
その後、普通にXcodeから実機にbuildすると、さっきまで何度やってもスプラッシュスクリーン画像が表示されていなかったものがきちんと表示されるようになります。

この現象の原因自体よく分かりませんか、どうやらiPhone(iPad)本体に残っているキャッシュが変なことしてるようです。
なので端末の電源を一度落としてキャッシュをクリアすることで不具合が起こらなくなります。

今までこの現象で結構悩んでいたので、これからは随分と楽になります(^^)
同じような悩みを持っている方は是非試してください!

以上Cowboyでした!!
うぇい☆

記事が良かったなら↓をクリックして応援願いますm(_ _)m




Cordovaのプラグインの簡単なアップデート方法

こんばんは!Cowboyです☆

Cordovaでアプリを作っていると、面倒なことが地味に多いです。
例えばプラグインのアップデート。
公式ではインストールされているプラグインのアップデートは以下のように一度アンインストール後、再インストールするように書かれています。

cordova plugin rm [プラグイン名]
cordova plugin add [プラグイン名]

これは非常に面倒くさいし、公式の方法ですがおしゃれではありません。

なのでCordova Plugin Update というCLI tool をインストールしましょう。

npm install -g cordova-plugin-update

これでCordova Plugin Update CLI tool のインストールしたあと、更新したいprojectで

cordova-plugin-update

と打ち込むと、config.xmlに書かれているプラグインの最新版がないかをチェックし、以下の cordova-plugin-admob-free のように更新するバージョンを選んでアップデートすることができます。

Newer versions of `cordova-plugin-admob-free` are available (currently 0.12.1)

1) 0.16.1
2) 0.16.0
3) 0.15.0
4) 0.14.0
5) 0.13.0
6) Don't update

Install (1/2/3/4/5/6)?

以前のCordovaではconfig.xmlにプラグインの情報を書き込むにはプラグインをインストールする際に --save のオプションを付ける必要があったのですが、いつからか自動的にconfig.xmlにプラグインの情報を書き込むようになっています。

このCLI toolは非常に便利なので、Cordovaでアプリ開発するには必須ですよ☆

以上Cowboyでした!!
うぇいうぇいうぇい☆


記事が良かったなら↓をクリックして応援願いますm(_ _)m

Windows 10 バージョン 1709 の 更新プログラムKB4088776 でエラー

こんにちは!Cowboyです☆

僕のPC環境はデスクトップはWindows 10、ラップトップはMacbook proなのです。
今はいろんなことがクラウドでできるので、あまりOSを気にすることがなくなりました。
(iPhoneアプリ開発はMacでしかできないのですが。。。)
そのうちノートはChromebookにしてみたいなと思ってるくらいです。

それでもたまに出先でWindowsが必要になるときがあります。
そんなときのためにBootcampでMacbook proにWindows 10 proを入れているのですが、
3月頃に配布されたWindows 10 バージョン1709 の累積更新プログラム「KB4088776」を適応しようとしても、何度も何度も失敗していました。

ダウンロードは済み、再起動が促されるので再起動すると「失敗しました」となるのです。
エラーコードは0x80070422でした。

MacにいれたWindows 10はそれほど起動回数が多いわけではないのですが、累計17回インストールに失敗していました。

Windows10の大型アップデートも配布され始めているし、そろそろ対策を考えないといけないと思い、調べました。

ネットで検索したところ、ドンズバな記事を見つけました。
「Windows 10 バージョン 1709 の KB4088776 が更新に失敗する場合の対処方法」


この記事によると、コマンドプロント(管理者)を起動し、
「SC config trustedinstaller start= auto」
を入力後、PCが再起動されて更新プログラムが適応されるとのこと。

コマンドは左下のメニューアイコンを右クリックすると出てくる「Windows PowerShell(管理者)」を起動して入力してやればいいです。
別にコマンドプロントでもいいですが、せっかくなので新しくて高機能なWindows PowerShellを使いましょう☆
(ついでですが、BootcampでWindowsを使っている場合、スクリーンショットを撮るには「fn + Shift + F11」です。クリップボードに保存されます)

windowsPowerShellの場所


早速やってみた。


なんかアクセスが拒否されてエラーがでます。。。


というわけでもう少し調べました。

違う更新プログラムでのエラーなのですが、似たような症状に対しての解決策を見つけました。

「【Tips】Windows 10 Version 1803インストール時に発生するエラー「0xc1900130」を解決する方法」


ここでもコマンドプロントでSCコマンドを使うのですが、入力するコマンドが先程の記事に比べて増えています。(各コマンドを入力後、エンターキーで順に実行していきます。)

SC config wuauserv start= auto
SC config bits start= auto
SC config cryptsvc start= auto
SC config trustedinstaller start= auto

最期のコマンドは先程の記事と同じコマンドですね。
先程はアクセスが拒否されてしまいましたが、今回はちゃんと順を踏んだのかコマンドを受け付けてくれました。

再起動すると、今まで止まっていた分の更新プログラムをダウンロード、インストールし始めて再起動の連続です(^_^;)

何度か再起動するとWindows 10 Version 1803(Windows 10 April 2018 Update)まで更新されていました。
設定画面のタブの色が変わっています。青が基調ではなくなっていくのかな?

アップデート後の場所


更新プログラムはきちんと適応しておかないと既知のバグや脆弱性が放置されていることになるので、できるだけインストールしておいたほうが良いです。

(新しくインストールした更新プログラムに別のバグや脆弱性が隠れていることはたたあるのですが。。。(^_^;))



以上cowboyでした!

うぇい☆

記事が良かったなら↓をクリックして応援願いますm(_ _)m





admobとfirebaseの競合によるエラーについて(Cordova)

こんにちは!Cowboyです!

今回はCordovaでのアプリ開発における自分用の忘備録を兼ねた記事です。

Android のアプリ開発にはCordovaを利用していますが、Cordovaのバージョンが7.0になった時に大幅な変更点があり、プラグイン使用時にエラーが起きることが多くなりました。

先日Android版のVibronomeを更新してbuildしたところ、com.google.android.gms関連でエラーが起きてアプリが起動しなくなりました。cordova-androidを入れ直したり、プラグインを入れ直したり、プラグインやCordova自体をバージョンアップしたりすると、同じようにcom.google.android.gmsのエラーが起きたり、アプリ自体は起動するが数秒後に落ちたり、と安定しない症状が続きました。

今までの経験から、何かのプラグインが悪さをしているのだろうと思い、一つ一つアンインストールしたりして調べていたところ、 admob プラグインとfirebase プラグインを同時使用した時にこの症状が起きることがわかりました 。
ちなみに実際に使用していたのはcordova-plugin-admob-free と cordova-plugin-firebase です。

どちらか一方を消せば正常に起動することはわかったのですが、広告も出したいしトラフィックデータも取得したい。
ネットで検索すると、別のfirebaseのプラグイン(cordova-plugin-fcm)のGithub上でも話題になっていました。

Conflict with abmobpro #214

"I think that the problem is: android.gms:play-services-ads is a part of firebase now:https://firebase.google.com/docs/admob/admob-firebase
Solution is changing android.gms:play-services-ads to com.google.firebase:firebase-ads if you use firebase in your project. I created fork of cordova-admob-pro plugin to demonstrate it. punksta/cordova-admob-pro@aa64fa3"


admobが使っている android.gms:play-services-ads はfirebaseの一部なので、参照する際にバージョン違いか何かの競合が起き、このような症状が起きていると推測されています。
解決策としては、android.gms:play-services-ads をfirebase:firebase-ads に書き換えると良いらしい。

というわけでcordova>androidのフォルダにあるproject.properties の中に記述されていたcom.google.android.gms:play-services-adsの部分をcom.google.firebase:firebase-adsと書き換えました。

僕の環境下では書き換え後はこの様になりました。
----------------------------------------------------------------------------------------------------
target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.google.gms:google-services:+
cordova.system.library.2=com.google.android.gms:play-services-tagmanager:+
cordova.gradle.include.1=cordova-plugin-firebase/vibronome-build.gradle
cordova.system.library.3=com.google.firebase:firebase-core:+
cordova.system.library.4=com.google.firebase:firebase-messaging:+
cordova.system.library.5=com.google.firebase:firebase-crash:+
cordova.system.library.6=com.google.firebase:firebase-config:+
cordova.system.library.7=com.google.firebase:firebase-perf:+
cordova.system.library.8=com.google.android.gms:play-services-base:11.0.4
cordova.system.library.9=com.google.firebase:firebase-ads:+
-----------------------------------------------------------------------------------------------------

一番下のcordova.system.lybrary.9が書き換えた箇所です。
「com.google.android.gms:play-services-ads:11.0.4」ように数字が入っていた場合は、環境下によってはadmobとfirebaseのバージョンが違うことによりエラーが出たので「com.google.firebase:firebase-ads:+」 のようにしたほうが良いでしょう。

書き換えた後、念のため cordova cleanを実行した後buildしたところ、正常にアプリが起動するようになりました。

ちなみに別のPCでの環境下では、そもそもこのような症状自体が現れなかったので、プラグインが参照するファイルの競合が起きないときもあるみたいです。そのへんはよくわかりませんね(・_・;)

もしadmob関連のプラグインとfirebase関連のプラグインを同時に使用している場合に、正常にbuildできなくなった場合は、今回のようにproject.propertiesを書き換えることで解決するかもしれません。

以上cowboyでした!
うぇいうぇいうぇい☆

記事が良かったなら↓をクリックして応援願いますm(_ _)m



Unityにも使える無料3Dモデル配布サイト(商用利用確認済み)

こんばんわ!!cowboyです☆

最近はUnityを使ったゲームを開発していました。
メインのシステムは完成したので、後はメニュー画面とか設定画面とかその他諸々のめんどくさい作業が残っています。

にしてもUnityは便利です。
お金をかけず、かんたんなプログラムでゲームが作れます。驚きです。
そしていろんなプラグインがあるのですが、セールも多いです。

現在、Black Friday Saleということで、多くのプラグインが半額です。
とりあえず良さそうなものを幾つか購入しました。

セール情報の確認はこちらのサイトが便利すぎます。
RSSに登録してチェック必須です!!

Unity AssetStoreまとめ

さて、やっと本題です。

Unityで3Dゲームを作る際に問題になるのはプログラムではありません。

そう。3Dモデルです。

僕はBlenderという3DCG作成フリーソフトやFreeCADという商用可能な3DCADソフトを使ってますが、まあ慣れないと難しく感じます。

そこで誰もがやるのGoogleさんに「unity 3dモデル フリー」で検索。

日本語のまとめ記事的なものが色々出てきます。
やっぱりダウンロード先は海外のサイトが多いです。
でもまとめ記事を書いてるみなさんは、英語を読めないのか、読む気がないのか、知ってて無視しているのか。
殆どのサイトはちゃんと注意書きで"商用はだめだよ"って書いてます。
こんな感じで。

3dmodelNotAllowed.png

All the resources are not allowed for commercial use, otherwise you will be responsible for liability!


Unityでゲームを作る殆どの方は商用利用(無料で広告収入目的でも商用利用です)のはずなので、使っちゃだめです。

僕が確認したまとめ記事の中で、きちんと商用利用可能と確認したものはなかったです。
そんな中、いくつか商用利用可能なサイトを見つけましたので、載せておきます。
バレなければいいじゃんとかいう人、その辺きちんとしましょうね。
一応、随時更新予定です。

・DLmarket

DKmarket2.png

3Dmodel以外にもいろいろな素材を販売している日本のサイト。
基本的には有料なのですが、無料のものを結構あります。
すべてが商用可能ではないので、検索する際に「商用可能、無料」で絞り込み検索をしましょう。

・Digital-Architex

DigitalArchitex1.png

こちらも日本のサイトです。
データ形式はFromZ形式のものがほとんどで、unityには直接使えませんが、obj形式のものもいくつかあるので良いものがあるか探してみるの良いと思います。

他にも見つけたら更新していきますので、たまにチェックしていただけたら幸いです。

以上、cowboyでした!!
うぇいうぇいうぇいうぇい☆

記事が良かったなら↓をクリックして応援願いますm(_ _)m