web-dev-qa-db-ja.com

IonicおよびiOS 10ビルドでの使用法の説明の問題

私のionic iOS用のアプリケーションは、今日まで私が新しいビルドを作りたいと思っていたときまで、問題なく動作しました。

これはAppleから返されるものです。

親愛なる開発者、

「AppName」の最近の配信に1つ以上の問題が見つかりました。配送を処理するには、次の問題を修正する必要があります。

このアプリは、使用法の説明なしでプライバシーの機密データにアクセスしようとします。アプリのInfo.plistには、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を持つNSPhotoLibraryUsageDescriptionキーが含まれている必要があります。

このアプリは、使用法の説明なしでプライバシーの機密データにアクセスしようとします。アプリのInfo.plistには、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を持つNSCameraUsageDescriptionキーが含まれている必要があります。

次の問題を修正する必要はありませんが、それらを認識させたいと思います。

プッシュ通知のエンタイトルメントがない-アプリにAppleのプッシュ通知サービスのAPIが含まれていますが、aps-environmentエンタイトルメントがアプリの署名にありません。これを解決するには、プロビジョニングポータルでプッシュ通知に対してアプリIDが有効になっていることを確認してください。次に、aps-environmentエンタイトルメントを含む配布プロビジョニングプロファイルでアプリに署名します。これにより正しい署名が作成され、アプリを再送信できます。詳細については、ローカルおよびプッシュ通知プログラミングガイドの「プロビジョニングと開発」を参照してください。アプリでAppleプッシュ通知サービスを使用していない場合、アクションは不要です。今後の送信からAPIを削除して、この警告を停止できます。サードパーティのフレームワークを使用している場合は、 APIの削除については、開発者に連絡する必要があります。

これは私の依存関係です:

  • "ngstorage": "~0.3.10",
  • "ion-image-lazy-load": "*",
  • "ngCordova": "~0.1.24-alpha",

そして、ngCordovaでバーコードスキャナーを使用します。だから私はこれをしました:$ cordova plugin rm phonegap-plugin-barcodescanner $ cordova plugin add phonegap-plugin-barcodescanner --variable CAMERA_USAGE_DESCRIPTION="Scan QR-Codes" --save

config.xmlは現在これを一番下に持っています:

 <plugin name="cordova-plugin-camera" spec="~1.2.0">
        <variable name="CAMERA_USAGE_DESCRIPTION" value="description" />
        <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="description" />
    </plugin>
    <plugin name="phonegap-plugin-barcodescanner" spec="https://github.com/phonegap/phonegap-plugin-barcodescanner.git">
        <variable name="CAMERA_USAGE_DESCRIPTION" value="Scan QR-Codes" />
    </plugin>

しかし、それでもApple=から同じメールが届きます。アプリに1つ以上の問題があります。

14
user1469734

ただし、ほとんどすべてのCordovaプラグインが更新され、ユーザーに依存する使用法の説明がサポートされるようになりました。たとえば、バーコードプラグインのバージョンを最新のビルドに更新します(2016年11月7日)。使用方法のサポートが追加されています。

<plugin name="phonegap-plugin-barcodescanner" spec="~6.0.3">

しかし、それをサポートするプラグインが見つからず、*-Info.plistに説明を設定する必要がある場合は、ここで停止してください必要があります

Cordovaアプリケーションの*-Info.plistの変更は、ビルドプロセス後に上書きされる可能性があるその変更を保存する必要があるため、お勧めできません。したがって、クリーンな代替手段として cordova-custom-config を使用する必要があります。

cordova plugin add cordova-custom-config --save

なぜ使用する必要があるのですか?

一部のプラットフォーム設定はconfig.xmlのCordova/Phonegapを介して設定できますが、多く(特に新しいプラットフォームリリースに関連するもの)は設定できません。 1つの解決策は、platforms /ディレクトリ内の構成ファイルを手動で編集することですが、これは、複数の開発マシンまたはCI環境で維持できず、その後のビルド操作で変更が上書きされる可能性があります。

このプラグインは、準備操作の完了後に追加のプラットフォーム固有の設定を許可し、Cordovaによって設定された設定を上書きするか、その他の未指定の設定を行うことで、このギャップに対処しようとします。カスタム設定はconfig.xmlに入力されるため、バージョン管理にコミットでき、複数の開発マシン、CI環境に適用でき、ビルド間で、またはプラットフォームが削除されて再度追加された場合でも維持できます。

次に、config.xmlブロックの下の<platform name="ios">ファイルに以下を追加します。

<custom-config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
    <string>This app needs access to your Photo Library to include a screenshot with feedback foo.</string>
</custom-config-file>
<custom-config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
    <string>Allow to scan member's pass</string>
</custom-config-file>

これにより、*-Info.plistに自動的に追加されます。

アップデート1(2018年2月23日)

cordova-custom-configプラグインバージョン<5を使用している場合は、custom-config-fileタグをconfig-fileに置き換えます。

https://github.com/dpa99c/cordova-custom-config#changes-in-cordova-custom-config5

アップデート2(2019年1月19日)

Cordova CLI> = 6については、この回答を参照してください:

https://stackoverflow.com/a/38013943/240504

26

私はphonegapプラグインorg.Apache.cordova.cameraを使用しています、そして100%が機能するソリューションはここにあります:

あなたがしなければならないすべてはconfig.xmlファイルに値を入れてphonegapで構築することです。

私のconfig.xml:

<plugin name="org.Apache.cordova.camera">
      <variable name="CAMERA_USAGE_DESCRIPTION" value="App would like to access the camera." />
      <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="App would like to access the library." />
  </plugin>

NSPhotoLibraryUsageDescriptionNSCameraUsageDescriptionをxcodeの*.plistに追加する必要があります。

NSPhotoLibraryUsageDescription =プライバシー-写真ライブラリの使用法の説明NSCameraUsageDescription =プライバシー-カメラの使用法の説明

次に、値にそれらのプライバシー設定の説明を追加します。

それが役に立てば幸い

1
Braian Mellor

解決策が見つかりました:$ cordova plugin listとすべてのプラグインを再インストールし、NSPhotoLibraryUsageDescriptionなどに関するプラグインのインストール方法のドキュメントを読みます。

0
user1469734

キーNSPhotoLibraryUsageDescriptionInfo.plistに追加する必要があります(Xcodeの場合)。この値は、ユーザーがカメラの使用を許可する理由でなければなりません(リクエストカメラ確認ダイアログに表示されます)。

0
Ignacio Aguirre