pod安装后Xcode 8 swift pod标头为空
Posted
技术标签:
【中文标题】pod安装后Xcode 8 swift pod标头为空【英文标题】:Xcode 8 swift pod headers empty after pod install 【发布时间】:2016-06-24 19:36:21 【问题描述】:我正在尝试编译一个用 swift 编写的现有 xcode 项目。该项目使用 Alamofire。我安装了 xcode 8 beta 并打开了项目。 Alamofire 有很多错误,我了解到需要更新到版本 3.2.1。
我编辑了我的 Podfile 并修复了版本号,然后运行 pod update alamofire
。不仅更新了 Alomfire,还更新了每个 pod。这显然是一个错误。
Podfile 包含指令 use_frameworks!更新 pod 后,pods/headers 目录完全为空,没有 Public 或 Private 目录,项目构建失败,出现 356 个丢失文件错误。
根据https://github.com/CocoaPods/CocoaPods/issues/4605#issuecomment-208822149 此处的建议将 ALWAYS_SEARCH_USER_PATHS 的构建搜索设置更改为 no(或 yes),然后删除 pod 并再次运行 pod install 没有任何效果。
*** 上有许多不同的问题,问同一个问题却没有答案。这是我能找到的列表。
Pods/Headers empty after pod install
Empty Pod Headers Folder after `pod install`
After pod install Public folder is empty
来自 Pods-Myproject.debug.xconfig
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Alamofire" "$PODS_CONFIGURATION_BUILD_DIR/Bolts-ios8.0" "$PODS_CONFIGURATION_BUILD_DIR/CocoaLumberjack" "$PODS_CONFIGURATION_BUILD_DIR/DBAlertController-iOS8.0" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit-iOS8.0" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit-iOS8.0" "$PODS_CONFIGURATION_BUILD_DIR/ISO8601DateFormatterValueTransformer" "$PODS_CONFIGURATION_BUILD_DIR/MBProgressHUD" "$PODS_CONFIGURATION_BUILD_DIR/RESideMenu-iOS8.0" "$PODS_CONFIGURATION_BUILD_DIR/RKValueTransformers" "$PODS_CONFIGURATION_BUILD_DIR/RestKit" "$PODS_CONFIGURATION_BUILD_DIR/SOCKit" "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit" "$PODS_CONFIGURATION_BUILD_DIR/iCarousel-iOS8.0" "$PODS_ROOT/Crashlytics/iOS" "$PODS_ROOT/Fabric/iOS"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "$PODS_ROOT/Headers/Public" "$PODS_ROOT/Headers/Public/Crashlytics" "$PODS_ROOT/Headers/Public/Fabric"
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Alamofire/Alamofire.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts-iOS8.0/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaLumberjack/CocoaLumberjack.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DBAlertController-iOS8.0/DBAlertController.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit-iOS8.0/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit-iOS8.0/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/ISO8601DateFormatterValueTransformer/ISO8601DateFormatterValueTransformer.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/MBProgressHUD/MBProgressHUD.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RESideMenu-iOS8.0/RESideMenu.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RKValueTransformers/RKValueTransformers.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RestKit/RestKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SOCKit/SOCKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/TransitionKit/TransitionKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/iCarousel-iOS8.0/iCarousel.framework/Headers" -isystem "$PODS_ROOT/Headers/Public" -isystem "$PODS_ROOT/Headers/Public/Crashlytics" -isystem "$PODS_ROOT/Headers/Public/Fabric"
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "AFNetworking" -framework "Alamofire" -framework "Bolts" -framework "CocoaLumberjack" -framework "Crashlytics" -framework "DBAlertController" -framework "FBSDKCoreKit" -framework "FBSDKLoginKit" -framework "Fabric" -framework "ISO8601DateFormatterValueTransformer" -framework "MBProgressHUD" -framework "RESideMenu" -framework "RKValueTransformers" -framework "RestKit" -framework "SOCKit" -framework "Security" -framework "SystemConfiguration" -framework "TransitionKit" -framework "UIKit" -framework "iCarousel"
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = $SRCROOT/Pods
我真的需要找到解决这个问题的方法,所以如果有人能回答这个问题,我将不胜感激。
【问题讨论】:
【参考方案1】:git add -A 后跟 Product -> Clean 删除了除 Alamofire 之外的所有错误。
【讨论】:
你的 cocoapods 更新到最新版本了吗? 是的,使用 cocoapods 1.0.1。 Alamofire 的问题是 xcode 8 beta,我不得不降级到 xcode 7.3.1。【参考方案2】:当您想要更新特定 POD 时,您可以按照 Docs 中的说明运行 pod update PODNAME
。我建议您删除所有 pod 并使用最新版本的 Alamofire
运行 pod install
。
【讨论】:
我这样做了,但如上所述,它不仅安装了命名的 pod,它还更新了所有的 pod。此外,它没有将新的头文件写入 pod/headers,而是清空了 pod/headers。 pod install 或 pod update 都不会写入头文件。 您确定在您的项目中使用 Pods.xconfig 吗? 不,在哪里以及如何使用该文件? 选择您的项目文件,然后在第二个窗格中再次选择它,然后在第三个窗格中打开“信息”部分。在配置下,您应该为需要安装 pod 的每个配置选择 Pods.xcconfig。 我是 xcode 和 swift 的菜鸟。哪个文件是我的项目文件?我找不到任何扩展名为 xconfig 的文件。你能告诉我在哪个目录可以找到它吗?以上是关于pod安装后Xcode 8 swift pod标头为空的主要内容,如果未能解决你的问题,请参考以下文章
Xcode:Pod 安装后构建失败(错误:链接器命令失败,退出代码 1)
Swift 开发的代码在 Xcode 8.x 或 Xcode 7.x 中不起作用