2020年 5月 29日
まず前置きとして、自分はマーフィーの法則の次の言葉が好きです。
「どんなものでも長くいじっていると、そのうち動くようになる」
今までほとんどこの言葉通りに唱えて実践してきました。
才能のある人は別なんでしょうけど、凡人でもこの通りやれば難関でもなんとかなります。
じわじわ取り組む事です。
ただ仕事というのは大抵そんなもんではないかとも思います。
これも引き篭もりニートだからできる事かもしれず、普通は時間に締め切りがあるので色々と難しいとは思います。
今回のまとめ
1、HSP 351の Dishで gsel命令を使うと表示がおかしくなる。
2、Helper ver.1.72で無いと 64bit内包 .apkファイルが作られない、そのためアプリストアにアップロードできない、しかし原因は不明だが現時点ではそのファイルは古い機種で(?)インストールできない。
付録 1 Helper同封
HSP34 1.0
HSP35β 1.4
HSP35β4a 1.41
HSP351 1.6
HSP36β2 1.72
付録 2 ビルドテスト記録
APIの変更は新規プロジェクトでないとできない
NDKの変更はクリーンビルド時にできる
Helper 1.41 *推奨 API 17
API 17 ○ NDK r12
API 21 ○ NDK r12
API 21 × NDK r14b
Helper 1.6 *推奨 API 21
API 21 ○ NDK r14b
API 22 ○ NDK r14b N05Dに転送可
API 23 × NDK r14b
API 23 × NDK r12
API 24 × NDK r14b
API 25 × NDK r14b
Helper 1.72 *推奨 API 29
(64bitバンドル.apkファイルに対応)
API 21 ○ NDK r14b リリースビルドで.apkファイル作成されない N05Dに転送不可
API 22 ○ NDK r14b リリースビルドで.apkファイル作成されない
API 23 ○ NDK r14b リリースビルドで.apkファイル作成されない
API 24 ○ NDK r14b リリースビルドで.apkファイル作成されない
API 25 ○ NDK r14b
API 26 ○ NDK r14b
API 28 ○ NDK r14b
API 29 ○ NDK r12 64bit版作成される
API 29 ○ NDK r12b 64bit版作成される
API 29 ○ NDK r14b 64bit版作成される N05Dに転送不可
API 29 ○ NDK r17c 64bit版作成されず
(AndroidManifest.xmlに android:minSdkVersion=”18″(最低動作 API) 18と書かれている以上 API 15の N05Dで実行(転送)できるはずが無いという事でした。
API 18以上でないとアプリストアにアップロードできないので API 17以下は切り捨てという事になるようです。
という事は、試してませんけど Helper1.72でも AndroidManifest.xmlの android:minSdkVersion=”18″を低く設定すれば N05Dでも実機転送できる可能性があると思います)
それでは続きです。
アップロードが通るかどうかだけ集中していたので、そのアプリが実機で動くのか検証してませんでした。
では N05D(ANDROID 4.0.4)から、API 29のを転送してみます。
いつまで待っても転送が終わる気配がありません。
では Helper.1.72でギリギリ作れる API 25を転送してみます。
結果は同じなので、おそらく 64bitバンドル .apkファイルはANDROID(4.0.4)には実機転送できないという事になりそうです。
これはアプリストアからはどうか分かりませんしできませんでした、もう既にこのくらいの ANDORIDを使ってる人は 0.数%くらいでほとんどいないなので考慮しなくても良い、という事は言えるのかもしれません。
次は SO02K(ANDROID 9)です。
Σ画面が縦になってる、しかも文字が表示されない。
・・・・・・・・・・・・・・・・・・・。
一応審査申請を取り止め操作らしきをしたけど、コンソールの表示がよく分からなくて取り止めになってるのかさえ分からない(審査の取り止めはできないようです、というより審査してるのは倫理基準のようです)
縦画面については検証に忙しくて途中から hsp3dish.iniファイルを入れてませんでした、でも 3.6β2のマニュアルには screen命令が反映されるみたいな事が書いてあったのでそのままにしたんですけど、横画面にする命令が何か足りないのかもしれません。
hsp3dish.iniをプロジェクトの HSPフォルダに入れます。
API 29、NDK r14b、クリーンビルドして転送。
横画面にはなったけど文字は表示されず。
挙動からして全くおかしい、何だこの画面は。
操作もロクに受け付けず、バグとか言うレベルの問題では無い。
単なる予想だが 32bit機種で 64bitを走らせるとこうなるとか?
HSP351でソース内で gsel命令を使ったのが原因でした。
API 29、NDK r12bにしてみるが同じ。
それではと API 25、NDK r14bを試すけど同じ。
APIのせいでも NDKのせいでもありません。
それでは、あえて API 25、NDK r17cで 64bit作成失敗を試す。
同じでした。
5月 28日
アプリ公開の通知が来た、今回は 4日くらいだった。
しかし、あの内容で一体何を審査したと言うのだろうか。
メールは特に来ない、通知が来る。
残念だけど公開の通知は、閉じようと思って右上の ×を押したら消えてしまった。
ほんとに分かりにくくて使いにくい。
内部テスト版なので、ただアプリストアを検索しても出てこないと思う。
いずれにせよ、この内容ではまだ公開できないのでバグを直して上げなおさないといけない。
ここで思い出して実機テストしてた時の test10を試す。
きちんと動いてる、という事は限定公開版の時に少しソースをいじったからその影響か。
とは言え PCだと問題なく動いてる。
実機テストしてた時の Helper ver.1.41を試す。
API 21、NDK r12b。
SO02Kでちゃんと動く。
という事で原因は Helperのバージョンが変わったから(というより HSPのバージョンが変わったかららしい)でした。
HSPのバージョンと同封される Helperのバージョンを調べます。
Helper同封
HSP34 1.0
HSP35β 1.4
HSP35β4a 1.41
HSP351 1.6
HSP36β2 1.72
実機テスト時に使っていた HSPスクリプトエディタと Helperは HSP35β4aのものでした。
それでは HSP351のスクリプトエディタで PC起動だとどうでしょうか。
なるほど、ぼそって(暴走)ます。
表示がおかしい様なので、何か 3.5β4と 351の間で変更があったのでしょう。
HSP351のアップデートガイドと更新履歴を見てみる。
まあ、これだけ見ても特に該当する要素は見当たりません。
ググっても特に情報が無かったので、仕方無いのでいつもの要素別ソース確認でやってみます。
HSP351のスクリプトエディタで PC起動で確認しながら、どこが問題なのか探っていきます。
スクリプトエディタの設定からやり直しなのでめんどくさい、馴染んでた環境と違ってしまうので(色とか)いやな感じ。
まあ、ともかく起動して、オープニングとタイトルに問題無いのでそこからオプションを押してみる。
なるほど。
プログラムは動いてるから、たぶん表示関係では無いかと思う。
そこでオプション内の表示関係を色々と調べてみると。
文字表示ジャンプ先の gsel mw、これをコメントアウトすると
表示されました。
という事で、どうもこれが原因らしいのでソース内の全 gsel命令をコメントアウトする。
と言っても Dish以前からの、このフォント文字表示命令部分でしか使って無かったので 4ヶ所だった。
HSPDishではメインウインドウ(表示ウインドウ)は 0番固定と決まっているので gselで定義する必要は無い。
ググっても同じような例は無かったので、ともかく HSP3.5では Dishで gselを使うと画面表示がおかしくなるという事のようです。
(たぶん redraw内で gselで画面を指定するとどうとか、かも)
それでは改めて Helper ver.1.72、API 29、NDK r14b、ファイル名は指定の hsp20200505.hex_test10にして、新規作成。
AndroidManifest.xmlの Codeナンバーを 5に書き換えて、ビルド。
それでは SO02Kに転送して実機テスト。
同じだった。
うーん、他にも仕様の違いがあるのだろうか・・・・。
5月 29日
ソースの指定を変えてなかった(画像は変えたもの)
もう一度ビルドして転送。
はあぁ、できた。
残りの問題は Helper ver.1.72時の N05Dへの転送問題だけど。
たぶん 64bit版を作らないというボタンだと思うので
これで Helper ver.1.72、API 29、NDK r14bにしてビルド。
N05Dに転送できませんでした。
それじゃあ、という事でその下の x86(たぶんウインドウズかな)も無しにしてみる。
やっぱり転送できない。
という事で Helper ver.1.72で ANDROID 4.0.4には実機転送できないようです。
あとはアプリストアからダウンロードできるかです。
N05Dの方は棚上げして、今度はバグはあるけどテスト版が公開中になってるので、それをスマホでダウンロードする手順をやってみます。
まずコンソールでアプリのリリースを押して、内部テスト版の管理を押します。
テスターの管理で内部テストを押します。
ほんとにややこしくていやになるんですけど、
青線のフィードバックチャネルにはバグや感想等の報告用の連絡先を書きます。
緑線のオプトイン URLがアプリのダウンロード先 URLです。
赤枠の編集を押してテスターの登録を行います。
注 : メールアドレスを登録しないとダウンロードできません。
メールアドレスの欄に @gmail.comのメールアドレスを書いて Enter
終わったら保存を押します。
それではスマホでブラウザを起動して URLを入力・・・ってなげーよ。
ページが表示されたら登録したメールアドレスでログインします。
Google Playの画面になって内部テスト版が表示されるので、一番下の「プログラムに参加する」を押します。
「内部テストプログラムへようこそ」という画面になるので「Google Playからダウンロード」を押します。
始めはブラウザの表示になってるみたいですけど、アプリストアの表示にしました、戻せません。
外からはアクセスできないはずです。
紹介画像に横向きの画像を使ってみましたけど、案外普通に表示されます(たまたま横のドットサイズが一致した)
このゲームについて、の表示場所はここ。
このゲームについて 2の表示はこんな感じ。
ダウンロード数は、まだ0です。
元のファイルが 90MBオーバーだったはずなので 85MBだとやはり少し必要なものだけになってるのでしょう。
インストールを押します。
SO02Kで 1分程でした。
動かしてみます。
もちろん修正前のバージョンです。
今度は N05Dでダウンロードできるかやってみます。
むむ、怪しげなエラーマークが。
色々言われるので試しに突撃ダンジョン(笑)をインストールしてみましたけど、できましたので(と思ったけど「本アプリはその機種では使えません」でした、前はできたのになあ)、たぶん実機転送できないのと同じ理由だと思います。
という事は現時点では Helper ver1.72で無いと 64bit内包版は出来ないのでアプリストアに上げられない、しかし古い機種(?)ではインストールできないという事になるようです。
予想でしかありませんけど、1.72では API 24以下では .apkファイルが作られなかったので、既にその辺のANDROIDは切り捨ててるのかもしれません(64bit移行で 32bit機種切捨てに関する問題だと思うけど)
N05Dは API 15、API 24だと ANDROID 7.0ですね。
グーグルひでえ(笑)
まあ、分かりません N05Dは古過ぎます、あるいは Dishの方の問題かもしれません、今は過渡期だと思うので対応を待ちましょう。
(AndroidManifest.xmlに android:minSdkVersion=”18″(最低動作 API) 18と書かれているのが原因でした。
つまり API 17以下は切り捨てです、グーグルひでえ(笑))
とりあえず古い機種は明らめて、バグを修正したバージョンをアプリストアに上げ直します。
新しい警告が増えてます。
前は出なかったと思うけど、しかしこれが N05Dにインストールできない原因かもしれません。
アップロードはエラー無しにできたので、もう一度公開ボタンを押します。
今度は審査無く一瞬でそのまま公開になってるので、どうやら審査というのは IARCという所の倫理審査の事のようです。
もう一度 SO02Kでインストールしてみます。
今度はきちんと動きます。
以上、これにてやっとアプリストアでの公開の準備ができました、疲れた。
明日にでも内部テスト版テスターの募集記事を出します。
その予定ですけどね(笑)