我想提一下这个问题Include a framework into another one, is it possible?和Include an iOS Framework into another one。
此外,我也有类似于我的目标问题,https://stackoverflow.com/questions/23022211/create-framework-including-plcrashreporter-linked-xcodeproj-source-code-to-the。
我想达到同样的目的。不希望开发人员必须链接到两个框架,但只有我的框架与另一个框架合并。
链接中的两个问题都没有答案。关于这个问题的任何更新?
P.S。我也有源代码,但这不是一个选项,因为它引入了几个问题。
我该怎么做,任何教程,博客,书籍等?
谢谢。
答案 0 :(得分:0)
是的,可以在.framework中包含.framework。我从来没有这样做,但我知道coacoapods会这样做,旧版本的解析框架用于包含facebookSDK,所以你可以通过下载旧版本的解析来开始研究解析如何做到这一点。
这并没有回答这个问题所以我会在发布答案时删除它,但至少你有一个可以用来研究的信息来找到答案:D
这里尝试使用此Wenderlich Tutorial创建一个静态库。从那里你可以开始玩弄设置。确保您创建的任何框架在主头文件中都包含#import语句。你知道-Project / Project.h-在大多数框架中都很常见,因为.h文件中有所有的import语句。
答案 1 :(得分:0)
我找到了创建聚合目标的解决方案,并在构建阶段部分添加了以下运行脚本。
我将静态库目标名称命名为示例的StaticLibraryName。
xcodebuild -project "StaticLibraryName.xcodeproj" -configuration "Release" -target "StaticLibraryName" -sdk iphoneos
xcodebuild -project "StaticLibraryName.xcodeproj" -configuration "Release" -target "StaticLibraryName" -sdk iphonesimulator
mkdir -p "${SRCROOT}/Products/StaticLibraryName.framework"
mkdir -p "${SRCROOT}/Products/StaticLibraryName.framework/Versions"
mkdir -p "${SRCROOT}/Products/StaticLibraryName.framework/Versions/A"
mkdir -p "${SRCROOT}/Products/StaticLibraryName.framework/Versions/A/Resources"
mkdir -p "${SRCROOT}/Products/StaticLibraryName.framework/Versions/A/Headers"
ln -s "A" "${SRCROOT}/Products/StaticLibraryName.framework/Versions/Current"
ln -s "Versions/Current/Headers" "${SRCROOT}/Products/StaticLibraryName.framework/Headers"
ln -s "Versions/Current/Resources" "${SRCROOT}/Products/StaticLibraryName.framework/Resources"
ln -s "Versions/Current/StaticLibraryName" "${SRCROOT}/Products/StaticLibraryName.framework/StaticLibraryName"
cp -R "build/Release-iphoneos/usr/local/include/" "${SRCROOT}/Products/StaticLibraryName.framework/Versions/A/Headers/"
lipo -create "build/Release-iphoneos/libStaticLibraryName.a" "build/Release-iphonesimulator/libStaticLibraryName.a" -output "${SRCROOT}/Products/StaticLibraryName.framework/Versions/A/StaticLibraryName"
libtool -static -o "${SRCROOT}/Products/StaticLibraryName.framework/Versions/A/TheOtherFrameworkName" "${SRCROOT}/Products/StaticLibraryName.framework/Versions/A/TheOtherFrameworkName" "${SRCROOT}/Vendor/TheOtherFrameworkName.framework/Versions/A/TheOtherFrameworkName"