iOSアプリ プライバシーマニフェスト対応について

先日iOSアプリをApp Store Connectへアップロードした際に以下のようなメールが届きました。

ITMS-91053: Missing API declaration – Your app’s code in the “アプリ名” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryUserDefaults. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code.

内容としてはApp Storeへの提出におけるプライバシー要件のアップデート(https://developer.apple.com/jp/news/?id=3d8a9yyhに関連したもので、以下のような感じです。

  • 承認される理由が必要なAPIを使用しているが、プライバシーマニフェストに理由が含まれていない
  • 今は大丈夫だが、2024年5月1日以降は新しいアプリまたはアプリの更新をアップロードする際にプライバシーマニフェストへの定義が必須になる

当然今後も継続的にアプリ更新などは行っていく予定であるため、今のうちに対応を行っておくことにしました。

行った対応

1.Xcodeでプライバシーマニフェストファイルを追加

new fileApp Privacy を選択し、Next


Targetsの必要なものにチェックを入れ、Create

2.追加したPrivacyInfo.xcprivacyにAPIの使用理由を入力

今回はメール内容にもあるように「NSPrivacyAccessedAPICategoryUserDefaults」に関して指摘されていたので、その分を入力しました。
※入力内容についてはAppleのドキュメントを参考にしています

<実際に入力した内容>

3.上記対応を行ったバージョンのアプリをApp Store Connectへアップロードして冒頭のようなメールが届くかを確認

結果

今のところ上記の対応だけでメールは届かなくなりました。
ただ、サードパーティ製のSDKにもプライバシーマニフェストが必要とのことなので、もしかすると5月1日以降アップロードした際にまた何かしらの対応が必要になってくるかもしれません。
その際は改めて対応内容などをここで紹介できればと思います。

Facebooktwitterlinkedintumblrmail

postfixからGmail経由で送信する

最近何かと話題のGmailをpostfixのrelayhostに指定して、メールを送信してみます。
OSはちょっと色々と有って、CentOS6で試しました。
Read the rest of this entry »Facebooktwitterlinkedintumblrmail

バッチファイルでの曜日取得にVBScriptを使っていたのでPowerShellで置き換えたい

激震はしる!

『「VBScript」は非推奨に、将来のWindowsリリースで削除』 (https://forest.watch.impress.co.jp/docs/news/1537619.html)

な、なんだってー

Read the rest of this entry »Facebooktwitterlinkedintumblrmail

PostgreSQLのmax_connectionsとユーザごとの制限

PostgreSQLではmax_connectionsで全体の接続数を制限出来ますが、ユーザごとにも制限をする事が出来ます。
ALTER ROLE dbuser CONNECTION LIMIT 10;
-- 確認
SELECT rolconnlimit FROM pg_roles WHERE rolname = 'dbuser';
これでdbuserは10以上接続する事が出来なくなります。
制限をなくす場合は、CONNECTION LIMIT を デフォルトの -1 に戻します。
ではrolconnlimit > max_connectionsだった場合はどうなるかと言うと、max_connectionsが優先されます(設定自体は出来てしまいますが)。
なので実際は、正のrolconnlimitの合計 <= max_connections – superuser_reserved_connections で設定する必要が有りそうです。
Facebooktwitterlinkedintumblrmail

Google Domainsを使ってDANEを設定する

前回前前回MTA-STSを設定したので、今回はDANEを設定してみます。
ドメイン取得はDNSサーバを提供していて、最初からDNSSECが設定されているGoogle Domainsを使います(DNSSEC分からなくても、何もしなくて良いのは助かります)。
※提供しているDNSサーバによってはTLSAレコードを設定出来なかったりするので、他で取得する時は事前に確認が必要です。
※タイムリーな事にGoogle Domainsやめるってよ、な話が出てて、移行先でもDNSSECが最初から有効かは、分かりません。
Read the rest of this entry »Facebooktwitterlinkedintumblrmail

postfix-mta-sts-resolverとTLS-RPTを設定する

前回MTA-STSを設定しましたが、postfixの実装であるpostfix-mta-sts-resolverと、TLS-RPTの設定を追加してみます。
ただ、残念ながら現状はpostfix-mta-sts-resolverにはエラーレポートの機能が無いようです。
Read the rest of this entry »Facebooktwitterlinkedintumblrmail

MTA-STSの受信側を設定する

MTA-STSについて、受信側だけ設定してみます。
httpsが必要なので、これまでのようなローカル環境でなく、ドメインを取得して行います。
送信についてはより面倒そうなので、保留。
Read the rest of this entry »Facebooktwitterlinkedintumblrmail

DMARCをテスト環境のPostfixに組み込む

SPFやDKIMをベースにした、DMARCをPostfixに組み込んでみます(SPFとDKIMが設定済の必要が有ります)。
前回と同様に2台のサーバ構成です。
Read the rest of this entry »Facebooktwitterlinkedintumblrmail

ChatGPTでタイタニック号の生存予測(LangChain編)

タイタニック号の生存予測とは、Kaggleでよく知られている機械学習のお題です。
タイタニック号で生き残るのは誰かを予測します。
今回はそれをすべてChatGPTにやってもらいます。

AIエージェントして、LangChainを使います。
LangChainは、LLMを利用したアプリケーションを開発するためのフレームワークです。
LangChainのAgentを使うと、LLMが作ってくれたPythonプログラムをPython REPLで実行し、実行結果をプロンプトに追記してLLMに再び投げる、というのをFinal Answerを見つけるまで自動実行する、と言うようなことができます。

Read the rest of this entry »Facebooktwitterlinkedintumblrmail

DKIMをテスト環境のPostfixに組み込む

前回はSPFを組み込んだので、今回はDKIMを組み込んでみます。
SPFと違ってDKIMでローカルから出したメールのVerifyを色々と試しましたが、やってくれなかったので結局二台のサーバ構成にしました。
サーバ1をvirtual.localdomain, サーバ2をvirtual2.localdomainとして両方に設定をして行きます。
Read the rest of this entry »Facebooktwitterlinkedintumblrmail