target_precompile_headers with MacOs and Objective-C++ (.mm) files

target_precompile_headers was added in CMake 3.16, which also added support for enabling OBJC and OBJCXX as their own languages. One needs to do that to use PCH and ObjC++ together. Try

cmake_minimum_required(VERSION 3.16)
project(testlib LANGUAGES C CXX OBJC OBJCXX)