Avatar ·

Como determinar programaticamente se o aplicativo está sendo executado no simulador do iPhone?

Olá a todos! Sou um desenvolvedor iOS iniciante e me deparei com o seguinte problema: preciso que no simulador seja executado um código e no dispositivo real, outro. Por exemplo, quero usar a câmera apenas no iPhone real e, no simulador, apenas mostrar um placeholder. Mas como verificar isso programaticamente? Tentei pesquisar na internet, mas encontrei diferentes macros e flags de compilação. Em Objective-C, fica assim: ```objectivec #if TARGET_IPHONE_SIMULATOR // código para o simulador #else // código para o dispositivo real #endif ``` Mas estou escrevendo em Swift e não consigo transferir diretamente essa construção. Tentei usar `#if targetEnvironment(simulator)`, mas o Xcode reclama que é uma diretiva inválida. Será que preciso importar ou incluir algo? Ou existe outra maneira? Também ouvi dizer que é possível verificar a arquitetura do processador (x86_64 para o simulador e arm64 para o dispositivo real), mas isso parece não ser confiável — e se a Apple lançar um simulador em ARM?