テクノモンキーのアプリ開発日記

テクノモンキーの開発ブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsやアプリ開発に役立つ情報を発信します。

Xcode11.2でApp Store Connectへのアップロードエラー(Invalid Toolchain)が発生した場合の対処法

iOS

昨日、Xcode (version11.2)でビルドしたアプリをApp Store ConnectへアップロードしようとしたらInvalid Toolchainのエラーが出てアップロードできませんでした。試行錯誤の結果、ようやく解決できたので、今後の為に対処法を残しておきたいと思います。いつ…

グローバルIPアドレス、プライベートIPアドレスを調べる方法

アプリ開発の仕事で、IP制限のかかったサーバーへアクセスする際にグローバルIPアドレスを調べる必要があったので、今後の参考の為に残しておきたいと思います。まず、IPアドレスは、グローバルIPアドレスとプライベートIPアドレスがあります。グローバルIP…

Macで開発元を検証できないため開けません。と表示されるファイルを開く方法

最近久しぶりのcocos2d-xアプリの開発を行ったのですが、ビルドする際に上記のようなダイアログが出てビルドエラーになってしまいました。今回はこのエラーの対処法についてメモとして残しておこうと思います。

iOS13のダークモードの罠【iOSアプリ開発】

iOS

AppleがiOS13をリリースしてから1ヶ月程度経ちましたが、 iOS13リリース後、初めてアプリをアップデートした際に遭遇した問題に関するメモ。Xcode11でアプリをビルドする場合、設定を追加しておかないとダークモード時に表示がおかしくなるので注意が必要で…

【PHP】定義した定数や文字列を使い回す方法

phpで定義した定数や文字列を他の場所で使い回す方法。javaやswiftでは結構やってましたが、phpではやったことなかったので今後の為にメモ。定義した定数や文字列を使い回す場合、まず別のところからも参照できるようなクラスを作っておく必要があります。

【PHP】画像の縦横サイズを取得する方法

PHPで画像ファイルの縦横サイズを取得する方法に関するメモ。画像の縦横サイズを取得する方法。サーバー上にある画像ファイルの画像サイズを取得したい場合は「getimagesize」を使用すればできるっぽい。

【iOS】Xcode11でRealmのエラー「Terminating app due to uncaught exception 'RLMException」が発生する場合の対処法

iOS

日記アプリ「Nikky」を久しぶりにアップデートしようとしたらXcode11でRealm関連のエラーが出てビルドできなかったので対処法をメモ。先日、iOSの最新版「iOS13」が公開されたこともあり、XcodeもXcode11になりました。Xcodeを11にアップデート後、iOSプロジ…

【Android】TextViewを1行に収める、フォントを自動でリサイズさせる方法

Androidアプリ開発でTextViewに長文を入力すると、表示が切れてしまったり勝手に改行されたりしてしまうので、TextViewの表示を適切にする為のメモ。TextViewに入力した文字列が長文な場合、TextViewのサイズに収まりきらないと表示が切れてしまう場合があり…

Android 9.0で「No Network Security Config specified」エラーでHTTPリクエストが失敗する場合の対処法

Androidアプリ開発をしていた時に、下記のエラーが発生してHTTPリクエストが失敗してしまうことがあったので、今後の為にメモ。D/NetworkSecurityConfig: No Network Security Config specified, using platform default W/System.err: java.io.IOException:…

【Android】apkをエミュレーターにインストールする方法

Androidアプリ開発をしていると、特定の機種やOSバージョンのみで発生する機種依存があったりします。そうゆう場合、実機で確認できればベストですが、なかなか条件になった端末を持ち合わせている時は少ないです。そんな時はエミュレーターで確認したりする…

Android Studioで作成したエミュレーターを削除する方法

最近久しぶりにAndroid Studioを使ってみたら、過去に作ったエミュレーターが大量に残っていました。整理しようとしたのですが、エミュレータを削除する場所が少しややこしかったので今後の為にメモとして残しておきたいと思います。いつも、Android Studio…

【PHP】DBにレコードをINSERT後、追加したレコードのIDをすぐに取得する方法

DB(MySQL)にレコードを追加後、追加したレコードに割り振られたIDを取得して返す方法に関するメモ。やりたいこととしては、アプリからAPIでユーザー登録を行う際、追加したレコードに自動で割り振られるID(AUTO_INCREMENT)をすぐに取得して、アプリに返…

【Unity】テキストにURLリンクを実装する方法

Unityアプリ開発の仕事で「テキスト内のURLをタップしたらブラウザ起動する」っていう要件がありました。Unityの既存のuGUIの「Text」ではURLリンクに対応してなかったので、多少手を加える必要があるようです。今回は「UnityでテキストにURLリンクを実装す…

【cocos2d-x】Android版の64bit化に関するメモ

2019年8月1日からGoogle Playで公開するアプリが64bit化必須になったことで、アプリ開発の仕事でAndroidアプリの64bit化を行う機会が増えました。先日、cocos2d-xで作られたアプリのAndroid版を64bit化する事があったので、今後のためにメモとして残しておき…

【Android】apkが64bit対応済みアプリか確認する方法(Mac)

2019年8月1日からGoogle Playで公開するアプリは64bit対応が必須となりました。仕事でアプリの64bit対応を何回かやったのですが、一応64bit対応の方法を調べてやってみたものの、出力されたアプリがちゃんと64bit対応済みのアプリか?はぱっと見だとわかりま…

【Unity】Androidの64bit対応版アプリをアップロードしても32bitアプリとして認識される場合の対処法

2019年8月1日からGoogle Playで公開するアプリは64bit対応が必須になったらしいです。Googleが以前から告知していたことや、ちょっと前にapkアップロード時に警告が出るようになってきたこともあり、ちょっと前にUnityで作ったAndroidアプリを64bit対応にす…

AppStoreConnectで「無効なGeoJSON:ルーティングAppガバレッジファイルが無効です。」のエラーが出る場合の対処法

アプリのスクリーンショットをアップロードしようとしたら、以下のようなエラーが表示されました。無効なGeoJSON:ルーティングAppガバレッジファイルが無効です。詳細については、次のガイド「Location and Maps Programing Guide」を参照してください。スク…

アプリから端末の広告IDを取得する方法(iOS,Android)

仕事で端末の広告IDを取得する場面があったので今後の為にメモ。端末の広告IDについて。まず、端末の広告IDというのはどのようなものかというのは以下の記事が参考になりました。つまり「広告ID」というのは、「端末を識別する為のユニークなIDで、再生成可…

【Android】アプリからgmailにテキストを自動送信させる方法(サーバーを使わない)

先日、サーバーを使わないでアプリからgmailにテキストを自動する方法を紹介しました。前回はiOS版だったので、今回はAndroid版です。Androidの場合はjavamailというライブラリを使用します。上記の例だと、画面上のボタンを押したタイミングで、EditTextに…

【iOS】アプリからgmailにテキストを自動送信させる方法(サーバーを使わない)

iOS

今僕が公開しているほとんどのアプリでは、「ユーザーに追加要望や不具合報告を送ってもらう」ためにメーラーを立ち上げる機能を実装してます。この機能を実装してからユーザーさんの声をアプリに反映させやすくなりました。ただ、メーラーを立ち上げてユー…

【Android】AdMobで 「Ad failed to load : 3」のエラーが出て広告が表示されない場合の対処法

AndroidアプリにAdMobを組み込んだ際、以下のようなエラーが出て広告が表示されません。今回はこのエラー内容と対処法についてのメモです。App does not have the required permissions to get location.SDK version: afma-sdk-a-v16187999.15300000.1 Ad fa…

【Unity】Buttonが反応しない場合に確認すべきことまとめ

Unityで設置したButton(ボタン)が反応しない場合っていくつかの原因が考えられますが、今回、今までに経験していないボタンが反応しないパターンに遭遇したのでメモとして残しておきたいと思います。状況・現象としては、Buttonをタップしても反応しない(…

【Unity】プレイヤーでどのシーンから再生しても最初のシーンから起動するようにする設定

Unityアプリ開発での効率化に関するメモ。Unityで複数のシーンを使ったアプリを作る場合、他の画面でも使うようなGameObjectを「DontDestroyOnLoad」で永続化させることが結構あります。他のシーンでも使うオブジェクトは、だいたいアプリを起動するシーンで…

Android Studioで公開用apk署名用のキーストアを作成する方法

新しくKeyStoreを作成する必要があったので、Android Studioで作成してみました。開発ツールでキーストア作成したのはEclipse時代以来ですが、ターミナルで作成するのに比べると、GUIが用意されている分、わかりやすい感じがします。Android Studioで公開用a…

Apple Developer Programのメンバー追加は、個人アカウントでは出来ないっぽい?

Apple Developer Programのメンバー追加に関して、ハマってしまったので今後の為にメモ。 「Apple Developer Program(個人アカウント)にメンバー追加を行う」ってことをやりたかったのですが、個人アカウントの場合、メンバー追加は行えないようです。(多…

AndroidでUIを組むならLinearLayoutのweightSumを使うと早いかも

iOSの場合、XcodeのGUIツールで簡単に組むことができますが、AndroidはXmlで組む必要があるので、iOSの比べると少々面倒です。(AndroidもGUIツールで組めるけど、結構癖がある気がする)個人的にはAndroidでUIを組む時はLinearLayoutのweightSumのが一番組…

【Unity】DateTimeクラスにnullを設定したい場合の対処法(C#)

Unityでカレンダー画面を実装するためにDateTimeクラスを使用したのですが、 DateTimeクラスはそのままだとnullが設定できないっぽいです。 今回はDateTimeクラスにnullを設定する方法に関するメモです。DateTimeクラスにnullが設定できれば何も問題なかった…

【Android】アプリ内で動画を再生する方法(Java)

前に書いた、iOSでアプリ内で動画を再生する方法のAndroid版。ネットで調べた方法だと、動かないものが結構あったので、意外と時間がかかった。流れとしては、元のActivityから遷移したタイミングで動画を再生して、再生完了時点でActivityを終了させて元のA…

【Unity】Imageのスプライトをスクリプトで切り替えるとアスペクト比がおかしくなる場合の対処法

UnityでImageのSpriteをコードで切り替える処理を行ったのですが、画像自体は切り替えられるけど、アスペクト比がおかしくなる現象が発生しました。やりたいこととしては、シーンにImageを配置して、カレンダーの日付に応じてスクリプトでImageのSpriteを切…

【iOS】アプリ内で動画を再生する方法(Swift)

iOS

iOSで動画再生する方法に関するメモ。以前確かやったことはありますが、久しぶりにやったら意外と時間がかかったので今後のためにメモ。今回はアプリ内に再生する動画を同梱させてそれを再生させます。 なのでまずは、再生する動画をプロジェクトに追加しま…