Slot values and the app ID may now be platform-keyed arrays
(['android' => ..., 'ios' => ...]); the running platform is resolved at
runtime and picked automatically. Plain strings remain valid as universal /
single-platform values. platform() is only consulted when a slot is
platform-keyed (or for App Open test IDs), so string slots pay no extra
bridge call.
Adds Admob::adUnit(format, slot) / hasSlot(format, slot) - non-throwing,
platform-aware slot resolution so consumers can gate UI on "is this set up?"
without reaching into config('admob.slots.*') or catching exceptions.
The post_compile manifest substitution now reads ADMOB_APP_ID_ANDROID /
ADMOB_APP_ID_IOS per build (universal ADMOB_APP_ID fallback) for the Android
manifest and iOS Info.plist.
Co-Authored-By: Claude <noreply@anthropic.com>