Xcode 将静态框架合并到单个动态框架中

Xcode 将静态框架合并到单个动态框架中,xcode,carthage,Xcode,Carthage,我目前正在使用迦太基作为依赖项管理器来下载一些框架,这些框架是以下Alamofire、ObjectMapper和Result。然后我使用一个脚本,使用以下项目配置将每个框架目标构建为静态框架。您可以看到下面的脚本 xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) trap 'rm -f "$xcconfig"' INT TERM HUP EXIT echo "LD = $PWD/./ld.py" >> $xcconfig echo "AR

我目前正在使用迦太基作为依赖项管理器来下载一些框架,这些框架是以下Alamofire、ObjectMapper和Result。然后我使用一个脚本,使用以下项目配置将每个框架目标构建为静态框架。您可以看到下面的脚本

xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX)
trap 'rm -f "$xcconfig"' INT TERM HUP EXIT

echo "LD = $PWD/./ld.py" >> $xcconfig
echo "ARCHS = x86_64 i386 arm64 armv7 armv7s" >> $xcconfig
echo "DEBUG_INFORMATION_FORMAT = dwarf" >> $xcconfig
echo "IPHONEOS_DEPLOYMENT_TARGET = 8.0" >> $xcconfig
echo "ENABLE_BITCODE = NO" >> $xcconfig

export XCODE_XCCONFIG_FILE="$xcconfig"

carthage build "$@"
这很好,当我想检查框架是否真正是静态的时,会输出以下内容

Alamofire: Mach-O universal binary with 5 architectures: [arm_v7:current ar archive] [arm64]
Alamofire (for architecture armv7): current ar archive
Alamofire (for architecture armv7s):    current ar archive
Alamofire (for architecture i386):  current ar archive
Alamofire (for architecture x86_64):    current ar archive
Alamofire (for architecture arm64): current ar archive
因此,我一直在关注迦太基关于如何将静态框架组合成一个更大的动态框架,这样我就可以使用Alamofire、ObjectMapper和Result分发一个框架,这就免除了开发人员的责任

但在遵循这些步骤之后,每当我尝试构建或归档项目并链接新的动态框架时,我似乎都会遇到以下错误

ld: can't map file, errno=22 file '/xxxxx/xxxx/xxxx/Testing Frameworks/Valid Frameworks/MyDependencies.framework' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如何解决这个问题并将静态框架合并到动态框架中,以便第三方在构建/运行时以及分发框架时始终可用

ld: can't map file, errno=22 file '/xxxxx/xxxx/xxxx/Testing Frameworks/Valid Frameworks/MyDependencies.framework' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)