将静态框架合并为一个动态框架

时间:2019-03-16 10:08:54

标签: 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 "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

因此,我一直遵循关于迦太基的guide的有关如何将静态框架组合成更大的动态框架的意见,以便我可以使用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)

我该如何解决并将静态框架合并为动态框架,以便在构建/运行期间以及分发框架时始终可以使用第三方。

0 个答案:

没有答案