答案 0 :(得分:5)
我建议在您的git存储库中排除Pods目录(通过将其添加到.gitignore文件中)。可以使用podfile重新创建Pod,因此您不必将它们存储在存储库中。
其他方法,例如当你有自己预编译的框架并且不希望你的其他团队成员需要再次编译它时,就是使用git lfs:https://git-lfs.github.com
答案 1 :(得分:1)
如果Google Maps SDK 依赖使您的项目规模非常大,最好将其添加到.gitignore
而不是保留整个项目的副本,无论是否使用LFS或其他任何机制。
由于您的项目使用Swift,当Xcode支持Swift Package Manager(SPM)时,您将能够在标记或分支的基础上将Maps SDK指定为Package.swift
中的依赖项。然后swift build
(或Xcode等价物)将管理这些类型的项目依赖项的依赖项克隆,更新和构建。
答案 2 :(得分:1)
作为临时解决方案,您可以使用一堆脚本 如描述in the post here:
post_install do |installer_representation|
puts "Splitting up Gooogle Framework - It's just too big to be presented in the Github :("
Dir.chdir("Pods/GoogleMaps/Frameworks/GoogleMaps.framework/Versions/Current") do
# Remove previous split files if any
`rm GoogleMaps_Split_*`
# Split current framework into smaller parts
`split -b 30m GoogleMaps GoogleMaps_Split_`
end
end
# Google Maps is too big to be handled by one file, so this one is generated on build phase from smaller pieces
OurProject/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/Versions/A/GoogleMaps
# Github doesn't support files bigger than 100M.
# Latest checked GoogleMaps Framework ~ 114M
# We're expecting to have GoogleMaps Framework as a one file or as a number of chunks
BINARY_FILENAME=GoogleMaps
SPLIT_FILENAME_PREFIX=${BINARY_FILENAME}_Split
GMAPS_FRAMEWORK_DIR=Pods/GoogleMaps/Frameworks/GoogleMaps.framework/Versions/Current
GMAPS_FRAMEWORK_FILE=$GMAPS_FRAMEWORK_DIR/$BINARY_FILENAME
# Check if we have Google Maps Framework
if [ ! -f ${GMAPS_FRAMEWORK_FILE} ]; then
echo "There's no Google Maps framework at ${GMAPS_FRAMEWORK_FILE}"
cd ${GMAPS_FRAMEWORK_DIR}
# But we have chunks! ...Probably
if [ -f ${SPLIT_FILENAME_PREFIX}_aa ]; then
echo "Creating file from smaller files with ${SPLIT_FILENAME_PREFIX} prefix"
cat ${SPLIT_FILENAME_PREFIX}_* > ${BINARY_FILENAME}
fi
fi
答案 3 :(得分:0)
GitHub上的文件不能超过100MB,最多不超过1GB,除非您使用LFS - https://help.github.com/articles/what-is-my-disk-quota/
将整个目录推送到GitHub似乎不正确。查看文档或查看包含GoogleDirections binding的此the necessary json示例。
答案 4 :(得分:0)
根据Github的磁盘quota page,个别文件只有100MB的严格限制。还有一个建议的1GB存储库限制。
如果您使用的是非常大的文件,我建议您阅读此页here,其中将详细介绍您应该执行的操作。值得注意的是,如果你绝对需要推送一个大文件,他们会推荐使用Git Large File Storage。
提示:如果您经常将大文件推送到GitHub,请考虑将Git大文件存储(Git LFS)作为工作流程的一部分。 Git LFS适用于GitHub Flow,可以与任何大文件一起使用,无论其类型如何。有关详细信息,请参阅" Versioning large files。"
但是,在这种情况下,看起来你应该创建一个submodule或使用.gitignore来从存储库中删除框架。