Blog

2 weeks ago

I Hid a Watermark in Screenshots, and iOS Thought It Was a Password

Screenshots were the app's biggest sign-up channel, so I built a watermark that's invisible in the app but appears when users take a screenshot, using iOS's secure text entry flag, which strips content from screenshots to protect passwords. It worked. It also made iOS think every chat message was a password field, breaking autocorrect and triggering "Save to Keychain" prompts. Fix: drop the UITextField entirely and set the underlying disableUpdateMask flag directly on a CALayer via reflection (with the private-API name base64-encoded to survive App Store review). Same screenshot-hiding behavior, no password heuristic firing. Lesson: iOS has way more hidden heuristics reading your view hierarchy than you'd expect, and private APIs are a recurring tax, not a one-time cost.

Source: HackerNoon →


Share

BTCBTC
$79,630.00
1.43%
ETHETH
$2,259.76
1.1%
USDTUSDT
$1.000
0.01%
BNBBNB
$670.82
0.83%
XRPXRP
$1.42
1.32%
USDCUSDC
$1.00
0.05%
SOLSOL
$91.13
3.98%
TRXTRX
$0.350
0.15%
FIGR_HELOCFIGR_HELOC
$1.04
0.92%
DOGEDOGE
$0.113
2.79%
WBTWBT
$58.51
1.31%
USDSUSDS
$1.000
0%
ADAADA
$0.265
2.69%
HYPEHYPE
$39.17
2.89%
LEOLEO
$10.03
1.47%
ZECZEC
$530.67
3.7%
BCHBCH
$434.55
1.28%
LINKLINK
$10.20
1.12%
XMRXMR
$391.21
4.85%
CCCC
$0.155
1.17%