2017年4月15日

XcodeでターゲットiOSバージョンアップでアプリ変更を行っていますが、毎度この現象が出ます。
Xcodeでplist変更後、Archiveのためにバージョンレベルを変更すると値が反映されない不可解現象が発生しているので、まとめておきます。

操作手順
1.XcodeでArchiveを行う。
画面上ではエラーなしであるが、NSCalendarsUsageDescriptionでエラーがある場合、登録メアドにエラーメールが届く。(これは修正の起因となる現象で、これ以外でも該当キー部はあります。)

2.plistにエラーとなったキー部を追加する。

3.Archive済みなので、バージョンレベルの値を変更する。

4.変なメッセージ画面が表示される。
 ☆ここで確認が必要!

5.再度、Archiveをするとエラーとなる。


上記操作の詳細

操作開始前のバージョンレベルの状況

1.XcodeでArchiveを行う。
 画面上ではエラーなしであるが、登録メアドにエラーメールが届く。

ーーーエラーメッセージーーー
カレンダーを使用するアプリは、説明表示が必要で記載がない…。とのエラー 

Missing Info.plist key – This app attempts to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data.

NSCalendarsUsageDescription以外で、「NSCameraUsageDescription」や「Push Notification Entitlemen」のメッセージも該当します。

2.plistにエラーとなったキー部を追加する。

「+」マークで行を追加して、キー部を追加します。キー部スペルが正しければ、入力後に「Privacy」が左に自動で表示されます。

3.Archive済みなので、バージョンレベルの値を変更する。
 バージョン入力が完了するとメッセージが表示される。

4.変なメッセージ画面が表示される。

the files for the document at “xxx” has been modified by another application. there are also unsaved changes in xcode

「xxx」の文書のファイルは別のアプリケーションによって変更されています。 xcodeに保存されていない変更もあります

Keep Xcode Version:このボタンを選択すると
 バージョンが変更前(反映が無視)になります。

Revert:このボタンを選択すると
 plistの入力値がクリアされます。

=========================
どちらを選んでも、入力し直しになってしまいます。
とても不可解!

ここで、確認が必要!
=========================

5.(確認せずに)再度、Archiveをするとエラーとなる。

Keep Xcode Version:バージョンアップして再度やり直し
Revert:キー部が不完全のためエラー