Well, looks like it really was a permission issue as suspected. I found a great reference for generating code coverage reports using Xcode 5+:
http://www.bubblefoundry.com/blog/2013/11/code-coverage-revisited/
As described in the above article, there are two users that manage Xcode bots, _teamserver and _xcstest. _xctest does not have the same permissions as _teamserver, so the permissions of the .gcda files' destination folder must be set to allow access by _xctest (i.e. group access to the folder). I implemented the script as suggested by the article but my CI server crashed during while archiving. Apparently at the time of archiving, the folder reference does not exist. So I updated it to:
# Setting these permissions is required to successfully flush
# test coverage data with __gcov_flush();
if [ -d ${OBJECT_FILE_DIR_normal}/i386 ]; then
chmod 775 ${OBJECT_FILE_DIR_normal}/i386
fi
Other than just successfully generating the coverage files, I also copied them to another folder. My test coverage report is generated in the post-action phase of Archive and I could not find a way to access those files during that stage. The reason is they are generated in
/Library/Server/Xcode/Data/BotRuns/Cache/c0jhd288-c473-c473-2432-f8219hdh98dh89/DerivedData/Build/Intermediates/AppName.build/Debug-iphonesimulator/appName.build/Objects-normal/i386/
But the archive is run in:
/Library/Server/Xcode/Data/BotRuns/Cache/c5f4462c-c473-c473-2432-5ac4d0b46nal/DerivedData/Build/Intermediates/ArchiveIntermediates/AppName/BuildProductsPath/Release-iphoneos/
There may be a clever way to export the directory of coverage files at reference later but I am not sure. Finally, I'm not a super user of the terminal by any means, so please feel free to provide suggestions!
Just to note, I also referenced these blogs to help through configuration:
http://matt.vlasach.com/xcode-bots-hosted-git-repositories-and-automated-testflight-builds/
http://qualitycoding.org/xcode-code-coverage/
http://ikennd.ac/blog/2013/10/xcode-bots-common-problems-and-workarounds/