数日前、UniApp に基づいたプロジェクトを開発しているときに、興味深い問題に遭遇しました。READ_MEDIA_IMAGES
クレームとREAD_MEDIA_VIDEO
アクセス許可がなければ、クラウドはパッケージ化後もこれら 2 つのアクセス許可を保持していることに気付きました。
まず、UniApp の基本を確認しましょう。UniApp は、Vue.js を使用して複数のプラットフォームで同時に実行されるアプリケーションを開発できるクロスプラットフォーム フレームワークです。コードを一度記述するだけで、iOS、Android、さらには Web 上でアプリを構築できます。
UniApp では、manifest.json
ファイルを使用してアプリケーション構成情報を管理します。これには、許可のステートメントが含まれます。この特定の質問では、アクセス許可を明示的に宣言しませんでしたREAD_MEDIA_IMAGES
がREAD_MEDIA_VIDEO
、パッケージ化後もアプリにはそれらのアクセス許可がまだ残っていました。
この問題を解決するために、私はこの動作の原因を分析し始めました。まず、manifest.json
ファイルをチェックして、どちらの権限も宣言されていないことを確認しました。そこで、どこかで宣言できないか考えてみました。
いくつかの調査の結果、考えられる理由がわかりました。UniApp はuniCloud
、アプリケーションにクラウド機能とサービスを提供できる UniApp と呼ばれるクラウド開発プラットフォームを使用しています。を使用すると、や などuniCloud
のデフォルトの権限が自動的に追加されます。このようにして、クラウドを使用してアプリケーションでメディア ファイルを保存および処理できます。READ_MEDIA_IMAGES
READ_MEDIA_VIDEO
これは便利な機能ですが、私の場合、これらのアクセス許可は必要ありませんでした。したがって、それらを無効にする方法を見つける必要があります。幸いなことに、UniApp には、無効にする必要があるアクセス許可を宣言できる構成ファイルが用意されていますmanifest-unicloud.json
。
私が行った変更は次のとおりです。
// manifest-unicloud.json
{
"permission": {
"media": {
"read": []
}
}
}
プロパティを空の配列に設定することで、と のアクセス許可をread
無効にすることができました。READ_MEDIA_IMAGES
READ_MEDIA_VIDEO
これらの変更を加えた後、クラウド用に再パッケージ化し、最終的に得られたアプリケーションにこれらのアクセス許可が含まれていないことを確認しました。
私の共有を通じて、同様の問題に遭遇した開発者を助けたいと考えています。UniApp は豊富な機能と柔軟な構成オプションを提供しますが、予期しない動作が発生する場合があります。これらの問題の根本原因を理解し、その解決方法を学ぶことで、開発がよりスムーズになります。この共有がお役に立てば幸いです。