HuaweiのApp galleryでアプリで提出してみた
1
背景
いま、スマホアプリって作っても全然インストールしてもらえないんですよね。もう市場飽和してて、10年前ならインストールされたのになんて思いなが開発していました。そんな矢先、Google Play storeからHuaweiが締め出されたという話があり、あっという間に5社で連合で新しいアプリストアが立ち上げられました。App Galleryです。これはチャンスでございます。なので手元のAndroidアプリをApp galleryでリリースしたのでその所感をお伝えします。
野良アプリストアでしょうか
まぁどうでしょうか。当面はそうでしょうね
今後はどうでしょうか
Huaweiの技術力、わたしはGoogleやAppleに劣らずすごいと思います。共産党はトップダウンでものごと進めるし、動画などがもっとも普及しているのが中国であることを鑑みると、今後のITを引っ張るのは中国だと思います。App galleryって「危険そう」「野良アプリ」ってイメージありますよね?でも今後、GoogleとAppleのストアに並ぶ市場になると思います。
所感
・全体的な印象は、中身はGoogle Play、見た目はApp Store Connect
・デベロッパー登録は無料。デベロッパー登録に1日、審査に4日程度。なので1週間程度あればアプリ出せる
・デベロッパー登録にパスポートと銀行のキャッシュカードが必要
・日本語はなくて英語か中国語。でも手順はGoogleとAppleより簡単
・Googleの.apkならそのまま出せる
・.apkならいいので、cordovaやunity,ionicなども問題なく出せる
デベロッパー登録にパスポートと銀行のキャッシュカードが必要
え?まじか。。この時点でかなり気分が冷める。。いろいろ心配になる。。しかし無視して強行突破。
日本語はなくて英語か中国語。でも手順はGoogleとAppleより簡単
これもかなりのハードル。英語重いなぁと思ったけど、中国語だと本当にわからないので英語のほうがありがたいと思う不思議。。まぁ、わかりやすいレイアウトなので、Google翻訳しておいて画面にしたがっていけば問題ないかと。最初どこからてをつければいいかわからなかったから苦労した。
方法
ここから作業していく。
https://developer.huawei.com/consumer/en/appgallery
開くとこんな感じ。

でupload your appかregisterで下記画面にいく。するとこう

国に日本を選択して、必要な事項を登録。携帯に認証コードが送られてくる。俺の場合、文字化けしていて焦ったが、resendすると文字コードが違うのか文字化けの解消されたメールが届くのでそれで認証すればおk。
で、パスポートとキャッシュカードを登録して審査が降りるのをまつ。審査は二十二時ごろにやって明け方には承認された。場合によっては、審査が通る前にとりあえず作業は進められますよ、という画面がでるので当日に進められる人はすすめばよい。その後Consoleへいくとこうなる

左上のMy appsを押す。こうなる。

右上のNewをおすとこうなる。

であとは画面通りに進めば良い。Googleで出したことあったら、それより入力項目少ないから、ここまでたどり着けばいけると思う。
注意したこと
・なにかあったときにGoogleのアプリに影響出したくなかったので、com.XXX.XXXの名前を別に作ってまったく別アプリとした
・なのでAdmobのアプリIDも変えた
・審査はちゃんとやってる。審査完了後こんなメールがきた。

Test Environment]: Wi-Fi networking, Android 9.0/EMUI 9.1(nova 5),Android 9.0/EMUI 9.1(p30), Multilingual settings.でテストしたとのこと
・apkをアップロードするのにエラーがなんども起きた。同じファイルなのにうまくいったり行かなかったり、時間も五分から十分かかった。かなりここで挙動を調べているように感じた。
App galleryに乗せたもののURLわからなかったからGoogleとAppleのをのせとくけどこれをアップした。写真から文字抽出して高速でブログ書くためのアプリ。使って欲しい。
https://apps.apple.com/app/id1497498494
https://play.google.com/store/apps/details?id=com.rainbowsv2.ocr
後日談
Google、Apple、Huaweiの3プラットフォームにアプリを公開してから半年が経ちました。Google Play、Apple のApp Store、App Galleryの売り上げですが、驚くことにApp Galleryが最も多いです。次がApp Storeです。App Galleryがまだブルーオーシャンなことがわかります。ただ、最も残念なのは個人開発者だと広告を打てないことです。広告売ったら結構凄そうかも。米国からの部品調達禁止もなんとか乗り切ってほしいです。
gcpで2つ目のアカウントで無料枠を適用しない方法
1
問題の所在
無料トライアルアカウントを2つ作ってしまって規約違反
経緯
AWSとAzureに押されておりますが、GoogleCloudPlatform が好きです。とても好きなので、最初になんとなく登録したメールアドレスではなく、ちゃんとしたアドレスで使いたくなりました。そこでふたつめのGCPアカウントを先日作成しました。
で、これについてきた1年の無料枠が問題に。
Googleからのメール
Googleからのメールです
「無料トライアルアカウントを2つ作成した件について、お知らせいただきありがとうございます。こちらのドキュメント 1 にもご確認いただけるように、無料トライアルクレジットの適用は一度に限ります。無料割り当ての制限を回避するために複数の無料トライアルアカウントを作成することは利用規約違反であり、違反が判明した場合はプロジェクトまたはアカウントがシステムにて停止される可能性がございますので、ご留意願います。詳細に関しては文末リンク 2 内の「無料トライアル期間中の割り当て制限の回避」部分にてご確認頂けますようお願いいたします。(今後ご利用される予定であるプロジェクトを元請求先アカウントに変更して頂き 3、新規無料トライアルアカウントを閉鎖 (文末リンク 4 参照) して頂ければ、既存のリソースの停止を防げます。)
1 https://cloud.google.com/free/docs/gcp-free-tier#free-trial
2 https://support.google.com/cloud/answer/7002354?hl=ja
3 https://cloud.google.com/billing/docs/how-to/modify-project#change_the_billing_account_for_a_project
4 https://cloud.google.com/billing/docs/how-to/manage-billing-account#close_a_billing_account
」
でいろいろメールのやりとりがあったのですが、2週間くらいで解決しました(なが!!)。答えはこれです。
答え→無料枠はアカウントではなく、支払いアカウントに紐付けされている。デフォルトの支払いアカウントを閉鎖せよ
最初、無料枠はアカウントに紐付けられていると思って右往左往していたのですが、無料枠は支払いアカウントにひもづけされているのです。なので最初の支払いアカウントをを閉鎖して、新しい支払いアカウントを作成すればいいです。二つ目に登録したアドレスに無料枠がついていると勘違いしていて長くかかってしまいました。
具体的には、下記の手順です(メールの転載)。
1. Sign in to the Google Cloud Console
2. In the Billing navigation menu, click Account Management.
3. At the top of the page, click cancel CLOSE BILLING ACCOUNT .
おまけ
先日、ようやくGCPを使ったアプリが公開されたのですが、使えなくなったら悲しすぎるのですこしあせりました。同じ思いをする方いないように投稿します。
iOS
Apple
Android版
Google
写真からテキストを抽出するOCRソフトです。ブログの投稿で書籍の内容を引用するときに使ってください。
Cloud functionsからFirestoreのStorageにアクセスして、VisionAIをつかう
1
Cloud functionsからFirestoreのStorageにアクセスして、VisionAIをつかうにあたってかなり苦労したので、ポイントをまとめておく。
1。Cloud functionにサードパーティのPythonのライブラリを使う場合、requrements.txtを書く必要がある。
2。Firebaseのデータにアクセスする場合、firebaseのプロジェクトの歯車マークから、Python用の設定ファイル(json)をダウンロードし、Cloud FUnctionsにソースコードで登録する必要がある。

import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage
cred = credentials.Certificate(“ダウンロードしたファイル”)
firebase_admin.initialize_app(cred, {
‘storageBucket’: ‘ストレージなら、そのばけえと’
})
2.5 Storageからデータを取得して、一度PILの形式にする
source_blob_name = “ふあいるに名前”
blob = bucket.get_blob(source_blob_name)
img_file = io.BytesIO()
blob.download_to_file(img_file)
img = Image.open(img_file)
3。Vision AIに渡すデータは、base64の必要がある。
output = io.BytesIO()
img.save(output, format=’PNG’)
image3 = output.getvalue()
image_g = types.Image(content=image3)
response = vision_client.document_text_detection(image=image_g)
labels = response.full_text_annotation
4。VisionAIを使うためには、VisionAIのAPIを有効にしておく必要がある。ローカルで動かす場合は、それをダウンロードしてパスに設定する必要がある。
https://cloud.google.com/vision/docs?_ga=2.249257607.-1213108839.1578707642
5。cloud functionsをデプロイするのはgcloudを使った方がやりやすかった。なので、gcloudもインストールする必要がある。
使ったgcloudのコメント
gcloud functions deploy myfunc2 –trigger-http –runtime=python37
gcloud config configurations list
gcloud projects list
gcloud config set project projectname
GoogleCloudFunctionsのデプロイ方法
Consoleのインラインエディタから直接書き込む方法、ローカルのzipファイルをConsoleからアップロードする方法、ローカルのファイルをgcloudコマンドでアップロードする方法の3つがある。最初はお試しでバージョン管理もできないの。2番目は理由不明で失敗する。なので3番目が一番いい。
手順としては、gcloudコマンドを使う際、現在のプロジェクトが正しいことを確認
次に、アップロードしたいファイルがある場所へ移動し、そこでterminalを開く
gcloud functions deploy myfunc2 –trigger-http –runtime=python37
以前はこれでいけたが、いまはこっちらのほうがいい
gcloud functions deploy Gcloudのファンクシィン –entry-point Pythonプログラムの関数の名前 –runtime python37 –trigger-http –allow-unauthenticated
https://cloud.google.com/functions/docs/deploying/filesystem?hl=ja
wiredxdisplayを入れたらadbコマンドが使えなくなった
1
結論を知れば当然なのだろうけどかなりはまった。
スマホをセカンドディスプレイにできるソフトがあるときいてインストールした。wiredxdisplayというもの。かなり便利だった。
https://www.splashtop.com/wiredxdisplay
しかし、それを使って気分よく開発したプロジェクトをadbコマンドでインストールしようとするとエラーがでる。当初は、wiredxdisplayをいれたことの影響など考えていなかったから全く原因がわからず苦労した。
パス周りを確認すると、どうもadbの実行ファイルが2つあるということしか考えられず、adbの実行ファイルがどこにあるかしらみつぶしに調べるために
find . -name ‘adb’ 2> /dev/null
で調べてみると、
./Users/hoge/Library/Android/sdk/ndk/20.0.5594570/python-packages/adb
.
./Applications/Splashtop XDisplay.app/Contents/MacOS/adb
と出てきた。あぁ、そうか、スマホをセカンドディスプレイとして使用するのにadb使ってるわな、と納得し、一件落着。。バージョンおなじなら両立するのにな。。
と思ってこの記事を書いた後、試してみたら両立した!
wiredxdisplayのadbファイルのある
/Applications/Splashtop XDisplay.app/Contents/MacOS
にいって、
cp /Users/hoge/Library/Android/sdk/platform-tools/adb ./adb
でAndroidstudioのadbをコピーしたら、両立して使えるように。いや、たいへんだった。
CordovaがiOSで使えなくなる!?AppleがUIWebView をなくすことについて
1
2019年8月ごろから、cordovaで作成したアプリをアップロード すると不吉なメールが届きます.
ITMS-90809:廃止されたAPIの使用-AppleはUIWebView APIを使用するアプリの提出を受け付けなくなります。詳細については、https://developer.apple.com/documentation/uikit/uiwebviewを参照してください。
ITMS-90809: Deprecated API Usage – Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.
先日(2020年2月)にこのアプリをiOSに出したときもこのメッセージを受け取ってしまいました。
2020年3月の情報によるとUIwebviewを使ったアプリの受付は、
新規アプリ受付→2020年4月まで
既存のアプリ更新→2020年12月まで
とのことです。
詳しく公式のサイトを見ると、「class UIWebView : UIView」という宣言がだめなようです。なので今後はWKWebViewをつかうことになります。WKWebViewはUIWebViewの問題を解決するためにAppleが作ったWebViewです。UIWebViewよりクラッシュ率が低く、高速で、加えてセキュリティも高くなっているのでセキュリティを重視するAppleとしては他社に先駆けてWKWebViewへ移行するわけです。おそらく近いうちにGoogleも追随するのではないかと考えます。
Cordovaのコミュニティが対策を進めてくれているようですので、簡単にまとめます。
こちらはCordovaを管理してくれているMatt Netkowさんのページ。こちらに最新の情報が記載されています。さて、あらためてこの件についてなんといっているかについて。
Update 01/15/2020: On December 23rd, 2019, Apple clarified plans for UIWebView: “The App Store will no longer accept new apps using UIWebView as of April 2020 and app updates using UIWebView as of December 2020.” Please follow the instructions below to either update to a newer version of Cordova or migrate to Capacitor.
更新01/15/2020:2019年12月23日、AppleはUIWebViewの計画を明確にしました:「App Storeは、2020年4月の時点でUIWebViewを使用する新しいアプリおよび2020年12月の時点でUIWebViewを使用するアプリの更新を受け付けなくなります。」以下の指示に従って、Cordovaの新しいバージョンに更新するか、Capacitorに移行してください。
だいぶ前に周知してくれていたようです。結論としては、Capacitorに移行するか、新しいCordovaにアップデートすればよいようです。CordovaがコンパイルのときにUIWebviewを使わないようにCordova5.1.0から行うようです。
以前はIonicなどのはなしも記載されていたようで下記のような表をまとめたりしたのですが、
Cordova | 草分けであり、もっともメジャーなプロジェクト |
---|---|
Ionic | Cordovaにangularを組み込むことで、UIの作業性を改善したものです。Cordovaという大きな円を書くと、Ionicはそのなかにあるイメージ。 |
Capaciter | Ionicのコンセプトをより推し進めた次世代のプロジェクト。将来的にはCordovaの次世代を担うとされていて、Ionicのメンバーもそう言っている。とはいえまだ出たばかりで洗練されてないところがある。でも使える。 |
最新のCapacitorを選ぶもよし、一方でCordova5.1.0にすればいいということで安心しました。Capacitorを使う方法は別に調べる人は調べると思うので、今回は最後にCordovaでなんとかしたい人向けに上記Webページの該当部分を訳して置いておきます。

WKWebViewプラグインがインストールされていることを確認してください:公式のApacheまたはIonicのいずれか。すべてのIonicスターターアプリには、cordova-plugin-ionic-webviewが自動的に含まれます。 <preference name = "WKWebViewOnly" value = "true" />をconfig.xmlファイルに追加します。 各Cordovaプラグインを最新バージョンに更新します(これらも警告をトリガーできます)。いっそのこと-不要になったら削除してください! cordova prepare iosを実行して、変更を適用します。
わたしが作ったアプリはこちらです。写真からテキストを抽出するOCRソフトです。よかったらインストールしてみてください。
https://play.google.com/store/apps/details?id=com.rainbowsv2.ocr
無料の動画の上下切り抜き方法
1
こんな簡単なことなのに手間取った。
Avidemuxでできた。言葉は、クロップ、クロッピングというらしい