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)