キャプチャ後にだけ見えるロゴ
2026年8月17日付の技術調査は、iPhoneアプリ内の同じ場所には「フォロー」ボタンが表示されているにもかかわらず、Blueskyのスクリーンショットには同サービスの蝶のロゴが入ることがある理由を説明している。この動作は、スクリーンショット用のボタン操作を検知し、最後の瞬間に要素を入れ替えるものではない。代わりに、キャプチャ時にiOSがセキュアなテキストフィールドを保護する仕組みを利用している。
調査者は、キャプチャした投稿の隅にロゴがあることに気付き、その後Blueskyに戻ると、実際のインターフェースにはロゴがないことを確認した。一部のアプリケーションは、iPhoneの画面切り欠き部分の背後にブランド表示を配置し、スクリーンショットでのみ目立つようにしているが、Blueskyのマークは、それ以外では画面上に見えている部分に位置していた。
Blueskyのコードは調査できる状態にあるため、答えは2026年1月に導入された`GrowthHack.tsx`というファイルで見つかった。このコンポーネントは`expo-privacy-sensitive`パッケージを利用している。このパッケージはネイティブの`UITextField`を作成し、その`isSecureTextEntry`プロパティを有効にして、実際のインターフェース内容(この場合は「フォロー」ボタン)をフィールドのレンダリングレイヤー内に配置する。
IOSがスクリーンショットを撮影すると、機密性の高いテキストが記録されないよう、セキュアフィールドのレイヤーが空白になる。Blueskyはその下にロゴを配置している。ユーザーには通常ボタンが見えるが、オペレーティングシステムがキャプチャ画像からそのレイヤーを取り除くため、下にある蝶が現れる。他のプラットフォームでは、このパッケージはマスキング動作を行わず、内容を通常どおりレンダリングする。
プライバシー機能が表示ロジックに転用される
この仕掛けは、iPhoneのアプリ切り替え画面では異なる動作をする。アプリ間を移動している最中に撮影したスクリーンショットでは、同じようにロゴが表示されなかった。調査者が示した説明は、iOSが切り替えジェスチャーの開始時に静止スナップショットを作成するためだというものだ。その後の画面キャプチャでは、空白化できる生のセキュアテキストフィールドではなく、その動かない画像が記録される。著者はこれを、確認済みのプラットフォーム動作ではなく仮説だとしている。
セキュア入力のマスキングは、パスワードやその他の非公開情報がスクリーンショットに写らないようにするために存在する。Blueskyの実装は、その保護動作を、共有画像の見た目を変える目的に転用している。基盤となるAPIは指定されたレイヤーを除去するという通常の役割を果たしているが、視覚的な結果は単純な黒塗りではなく、ブランド表示となる。
この手法はBlueskyだけのものではない。そのアカウントによると、Telegramはシークレットチャットで同様の手法を使用しており、Signalも使用している。こうした先例から、著者はAppleが近くこの動作を廃止する可能性を低いとみているが、提供された証拠には、この使用方法がサポート対象かどうかについてAppleの声明は含まれていない。
開発者の反応は分かれた。コードに関するスレッドの参加者は、議論がロックされるまで概してこの追加機能に否定的だった一方、調査者は遊び心のある仕掛けだと評価した。受け止め方がどうであれ、この仕組みは、オペレーティングシステムによるプライバシー保護の保証が合成ツールになり得ることを示している。通常の内容を保護対象レイヤーに置き、その背後に別の画像を配置し、スクリーンショットの墨消し処理によってどちらが表示されるかを決めさせるというものだ。



