古いXcodeをアップデートしようとしても、エラーできない。

UnityHubで、unity2019を扱う際に、iOSビルドサポートが必要だが、 何度やっても、インストール途中で止まる。 このマシンでxcodeを1年近く使っていないのが問題か。
久しくアップデートしていないせいか、xcodeが起動しない。 xcodeのアップデートもうまくいかない。

install logは下記

Xcode[2358]: Package: PKLeopardPackage <id=com.apple.pkg.MobileDeviceDevelopment, version=10.3.9000000000.1.1488876279, url=file:///Applications/Xcode.app/Contents/Resources/Packages/MobileDeviceDevelopment.pkg> Failed to verify with error: Error Domain=PKInstallErrorDomain Code=102 "The package “MobileDeviceDevelopment.pkg” is untrusted." UserInfo={NSLocalizedDescription=The package “MobileDeviceDevelopment.pkg” is untrusted., NSURL=MobileDeviceDevelopment.pkg -- file:///Applications/Xcode.app/Contents/Resources/Packages/, PKInstallPackageIdentifier=com.apple.pkg.MobileDeviceDevelopment, NSUnderlyingError=0x7feaec7f2c00 {Error Domain=NSOSStatusErrorDomain Code=-2147409654 "CSSMERR_TP_CERT_EXPIRED" UserInfo={SecTrustResult=5, PKTrustLevel=PKTrustLevelExpiredCertificate, NSLocalizedFailureReason=CSSMERR_TP_CERT_EXPIRED}}}

上記エラーで ぐぐると色々問題が。 https://stackoverflow.com/questions/58550284/mobiledevice-pkg-untrusted-cannot-open-xcode-after-os-x-update

一番よさそうなのが、xcodeをアンインストールしてから、 入れ直した方が良さそう。


xcodeを関連ファイルをまとめてアンインストール。
↓削除参考

https://qiita.com/UJIPOID/items/015805c89bddca540129

削除する際は、sudo権限でじゃないとアンインストールできないものもある。


ついでに、macのOSアップデートをサボっていたので、 macOSをHigh sierraから catalina へ飛び級アップグレード。

macOSのアップグレードはうまくいったので、次はxcode。

そして、xcodeをappstoreからインストール。
install conponentsが満タンになっても数時間反応がなかったので、
macを再起動して再度xcodeを起動し、install componentを走らせたら直った!


macを再起動して再度xcodeを起動し、install componentを走らせたら直った!

あとは、UnityにモジュールにiOSビルドサポートがインストールできれば…

追記2019-11-17

無事UnityのiOSビルドサポートもインストールできた。!

Unity PlayServicesResolverの自動更新を止める

環境 Unity2018 4.5

Unity2018 4.5でAndroidをビルドする際に、androidのplay-services周りのライブラリが自動更新されて、消しても消しても復活するので、それを自動更新しないようにする設定。

これで自動更新が止まる。ちゃんと「OK」ボタン押さないと反映されないので注意。

Unity MaterialのTilingやOffsetをスクリプトから変更する

下記のようなMaterialのプロパティをいじりたい時。

下記のようなコードで変更できる。
ただ、sharedMaterialは、このmaterialを使っているものすべてが変わるので注意。

// Offsetを変更
childCubeObj.GetComponent<Renderer>().sharedMaterial.SetTextureOffset("_MainTex",new Vector2(0.5f,0.5f));

// Tilingを変更
childCubeObj.GetComponent<Renderer>().sharedMaterial.SetTextureScale("_MainTex", new Vector2(4f,4f));
            

Unity 破片が飛び散るような「Mesh Explosion」アセット入れたみた

Mesh Explosionという破片が飛び散るようなアセットを購入しいれたみたので_φ(・_・。

https://assetstore.unity.com/packages/tools/particles-effects/mesh-explosion-5471

使い方

1. 必要なAssetをインポート。

2. Mesh Exploderスクリプトを破裂対象のオブジェクトにアタッチ

3. 破裂するタイミングをスクリプト等で指定
コードは下記だけ、とてつもなくシンプル

void StartExplosion() {
		BroadcastMessage("Explode");
		GameObject.Destroy(gameObject);
	}
BroadcastMessage("Explode");

で爆発処理をしている。

破片が重力処理で飛び散るなどもできる。

Amazon PrimeでTwitchPrimeからswitchのオンライン費用を最大12ヶ月無料に。を試した。

https://plus1world.com/nintendo-switch-online-twitch-prime-loot

twitchからamazonを連携しようとするとこの画面に
海外用のメアドを変更したり、電話番号登録したりしたけどNG

日本amazonと米amazonで、米amazonが優先されてエラーになるみたい。
普段使っていないブラウザや、chromeのゲストウィンドウでやると解決した。

成功したら下記画面になる

注意点:ファミリープランは対象外

追記

延長でさらに上記3ヶ月から、9ヶ月延長も無事できたので報告

git reset –hardで指定コミットの状態に完全に戻す(追加ファイルで、「?」ファイルなども消す)

※まちがって進捗途中のファイルを消さないように扱い注意

git reset –hard で一旦ソースを指定のバージョンに戻す

$ git reset --hard HEAD

だが、これだけだと、管理ソースに含まれないソースがgit statusで「?」で残ってしまう。
Unity開発などで、試しにAsset等を入れると毎回これを処分するのは面倒。

そんな時は下記git cleanコマンドで削除

git clean -fd

-f はカレントを指定、 dはディレクトリもという意味

Kusanagi managerでサブドメイン「www」指定でSSLが有効化できない時

新しくConoha VPSにwordpressを移行した時のメモ

なぜ、ConohaVPSを選んだか_φ(・_・

  • SSDでメモリ1G 980円は安い!
  • wordpressで最速なkusanagiを簡単に導入できる。
  • 面倒なSSLの設定がワンクリックでできる ← まじやばいす
  • 単純にいままで使っていたサーバーが激重になってきて、こんなにスペックいいのに新しいVPSと値段一緒😂

ざっくり移行時の流れ

Conoha管理画面

↑のConoha管理画面で > サーバー追加 > アプリケーションを選んで、
「かんたんKUSANAGI」を選択。

サーバー

↑契約したサーバーにKUSANAGI管理という画面ボタンがあるので、それを起動すると、

kusanagi manager画面

このようなサイト管理画面がでる。

本題のwwwサブドメのSSL化について

ようは下記のようにしたい

が、下記のようなエラーでならない。

ケース1 エラー「DNSやIPの設定を確認してください」

DNS設定が浸透してしきっていない。

DNS設定画面参考



サーバーを変更したてで、DNSの浸透しきっていない場合に表示されます。
移行先サーバーからnslookup www.hogehogehogehogehoge.com で移行先サーバーのIPに変更されているか確認し、まだ浸透しておらず、
急いでいる場合は、/etc/hostsファイルに変更先IPとドメインを紐付けて試す事もできます。※浸透が終わったらちゃんと戻す事

/ets/hostsファイルの参考

ケース2 エラー「サイトの設定変更:証明書の取得に失敗しました。リクエスト超過で制限されています。」

SSL化 ONを短時間でクリックしすぎ。

サイトの設定変更:証明書の取得に失敗しました。リクエスト超過で制限されています。

裏側で、** Let’s Encrypt ** という無料でSSLが利用できるサービスを利用しており、その取得処理を何度もリクエストしてしまっている事が原因のようです。

「letsencryptとは」の画像検索結果

しばらく時間をおいてから試すとエラーはなくなります。

ケース3 エラー「DNSやIPの設定を確認してください」

www.○○.comのように、wwwサブドメイン指定でSSL化すると、○○.comを参照してSSLを取得しようとしてしまう。

僕はこれにハマりました。
古い方サーバーの方のSSLを失効させて、再度取得を試したりしましたが関係なく、色々ググってみました。

試行錯誤時に参考にさせて頂いたサイト
https://miyatore.com/archives/3136

結局ターミナルコマンドでチェックしてみたところ、

# kusanagi ssl --email メアド プロファイル名

※プロファイル名は、下記で確認できます。

# vim /etc/kusanagi.d/profile.conf

それで、結局移行先サーバー内のコマンドでチェック。

# kusanagi ssl --email aaaaaaaaaaa@gmail.com f69XXXXXXXXXXXX
# kusanagi ssl --email aaaaaaaaaaa@gmail.com f69XXXXXXXXXXXX
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for doya.link
Using the webroot path /home/kusanagi/f69XXXXXXXXXXXX/DocumentRoot for all unmatched domains.
Waiting for verification...
Challenge failed for domain doya.link
http-01 challenge for doya.link
Cleaning up challenges
Some challenges have failed.


IMPORTANT NOTES:
 - The following errors were reported by the server:


   Domain: XXXX.com  ← これ!!!!!!
   Type:   unauthorized
   Detail: Invalid response from
   http://XXXX.com/.well-known/acme-challenge/JesgB_EoCALuMGBbQVZ-XXXXXXXXX
   [157.7.237.223]: "<html>\r\n<head><title>404 Not
   Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>404
   Not Found</h1></center>\r\n<hr><center>"


   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.
Cannot get Let\'s Encrypt SSL Certificate files.
失敗しました。

Domain: XXXX.com ← これ!!!!!!

www.XXXX.comをSSL化したいのに、XXXX.comを見てる。。

kusanagiサーバーの挙動を見ているとwww.XXXX.comでアクセスすると、
自動でXXXX.comにリダイレクトしているようです。。😂

なので、www.XXXX.comとXXXX.comをセットで考える必要があるようですw

なので、僕は、wwwありとなし両方を移行すると解決しましたw

過去に手動でLet’s EncryptでSSL化した方法

Unity2018 4.5 androidビルド時に「IndexOutOfRangeException: Index was outside the bounds of the array. UnityEditor.Android.AndroidBuildWindowExtension.GetBuildPlayerWindow () 」

Androidビルドすると下記エラーになった。

IndexOutOfRangeException: Index was outside the bounds of the array.
UnityEditor.Android.AndroidBuildWindowExtension.GetBuildPlayerWindow () (at &lt;62f761e6ab1445a38cdcb4ac36512695&gt;:0)
UnityEditor.Android.AndroidBuildWindowExtension.RepaintTargetList () (at &lt;62f761e6ab1445a38cdcb4ac36512695&gt;:0)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:200)

古いapkファイルを出力するレガシーモードになっていたらしい。

PlayerSettingを開いて「use legacy SDK tools」のチェックが入っていたので、チャックをはずすとうまくいった。

色々ぐぐったけど情報なく、
IndexOutOfRangeException〜 となっており、
エラー内容から想定できない対応だったのでメモ。

Unityビルドでandroid64bit対応&aab対応&playgames対応&facebooksdk対応&admob対応した自分用メモ

無数のUnityバージョンや、各種sdkを入れたきたノウハウの結集。

結論!下記組み合わせで入れれば、AndroidStudioを通さずUnity上ビルドだけですべて対応できます。

  • Unity2017 4.301f
  • gradleビルド(Custom Gradle Templateは利用しないで可)
  • lp2cppビルドにする。チェックするのは、 ARMv7 , ARM64のみ。 x86 はチェック外す。(x86はチェックするとGooglePlayに申請できない)
  • Proguardは無効
  • AndroidはminSdkVersionはOS4.4以上〜でTargetversionはauto
  • GooglePlayGames はこちらから、バージョンは「0.9.64」

> マイナーバージョン違いでいろんなところで躓いたので注意

  • Admob は「Google Mobile Ads Unity Plugin v3.18.3」を入れた。
  • FacebookSDKは、バージョン「7.17.2」 これも注意。

注意点

  • 事前に、GooglePlayConsoleや、Facebook、admobの登録は必要です。
  • lp2cppビルドはとても時間かかるので注意
  • x86はチェックを外さないと、64bit対応したのにまたビルドし直す必要がある
  • PlayServiceResolverや、各種sdkは、関連ファイルを削除してから入れ直すなどしないと基本沼にハマる。
  • aabファイルは、アプリ署名を忘れずに、
  • あと公開前のテストで、adbコマンドや、GoogleplayConsoleからのダウンロードでもインストールできないので、「内部アプリの共有」の機能つかって共有すればインストール可能。