Algo um pouco mais simples e mais robusto é criar um destino Agregado chamado "CommonCryptoModuleMap" com uma fase Executar Script para gerar o mapa do módulo automaticamente e com o caminho Xcode / SDK correto:

A fase Executar Script deve conter este bash:
# This if-statement means we'll only run the main script if the CommonCryptoModuleMap directory doesn't exist
# Because otherwise the rest of the script causes a full recompile for anything where CommonCrypto is a dependency
# Do a "Clean Build Folder" to remove this directory and trigger the rest of the script to run
if [ -d "${BUILT_PRODUCTS_DIR}/CommonCryptoModuleMap" ]; then
echo "${BUILT_PRODUCTS_DIR}/CommonCryptoModuleMap directory already exists, so skipping the rest of the script."
exit 0
fi
mkdir -p "${BUILT_PRODUCTS_DIR}/CommonCryptoModuleMap"
cat <<EOF > "${BUILT_PRODUCTS_DIR}/CommonCryptoModuleMap/module.modulemap"
module CommonCrypto [system] {
header "${SDKROOT}/usr/include/CommonCrypto/CommonCrypto.h"
export *
}
EOF
Usar código shell e ${SDKROOT}significa que você não precisa codificar o caminho Xcode.app, que pode variar de sistema para sistema, especialmente se você xcode-selectalternar para uma versão beta ou se estiver construindo em um servidor de IC em que várias versões estão instaladas em locais fora do padrão. Você também não precisa codificar o SDK, portanto isso deve funcionar para iOS, macOS etc. Você também não precisa ter nada no diretório de origem do seu projeto.
Após criar esse destino, faça com que sua biblioteca / estrutura dependa dele com um item de Dependências de Destino:

Isso garantirá que o mapa do módulo seja gerado antes da construção da sua estrutura.
Nota para o macOS : se você também oferece suporte macOS, será necessário adicionar macosxà Supported Platformsconfiguração de compilação o novo destino agregado que você acabou de criar, caso contrário, ele não colocará o mapa do módulo na Debugpasta de dados derivados correta com o restante do produtos de estrutura.

Em seguida, adicione o diretório pai do mapa do módulo ${BUILT_PRODUCTS_DIR}/CommonCryptoModuleMap, à configuração de compilação "Import Paths" na seção Swift ( SWIFT_INCLUDE_PATHS):

Lembre-se de adicionar uma $(inherited)linha se você tiver caminhos de pesquisa definidos no nível do projeto ou xcconfig.
É isso aí, agora você deve ser capaz de import CommonCrypto
Atualização para o Xcode 10
O Xcode 10 agora vem com um mapa de módulo CommonCrypto, tornando essa solução desnecessária. Se você deseja dar suporte ao Xcode 9 e 10, faça uma verificação na fase Executar Script para ver se o mapa do módulo existe ou não, por exemplo
COMMON_CRYPTO_DIR="${SDKROOT}/usr/include/CommonCrypto"
if [ -f "${COMMON_CRYPTO_DIR}/module.modulemap" ]
then
echo "CommonCrypto already exists, skipping"
else
# generate the module map, using the original code above
fi