Rin*_*ngo 27 compiler-errors ios swift objective-c-swift-bridge
我从GitHub下载了一个项目,然后pod下面的文件,其中一些是由OBJ-C编写的,我使用了一个桥头.
pod ‘SnapKit’
pod ‘MJRefresh’
pod ‘Alamofire’
pod ‘Kingfisher’
pod ‘MBProgressHUD’
pod ‘pop’
pod ‘EVReflection’
pod ‘StreamingKit’
pod ‘iCarousel’
pod ‘ReflectionView’
Run Code Online (Sandbox Code Playgroud)
当我使用Xcode 9.0 beta 2运行项目时,遗憾的是错误日志如下:
错误:未能发出预编译头'/var/folders/kd/4gh0_kxx3jx4thjb_sssmmcw0000gn/T/EvoRadio-Bridging-Header-97bd5f.pch'用于桥接标题'/ Users/ringo/Downloads/EvoRadio-master/EvoRadio/Resources/EvoRadio-桥接-Header.h"
我用google搜索,但没有这样的问题.错误意味着它需要一个PCH文件?这是我的.pch标题配置:
它解决不了.
怎么做?
D4t*_*aya 19
在为加密核心数据添加可可豆荚之后,我也遇到了完全相同的问题(Xcode9 beta 6).
这是我的PodFile:
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
pod 'EncryptedCoreData', :git => 'https://github.com/project-imas/encrypted-core-data.git'
target 'Root' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for Root
target 'RootTests' do
inherit! :search_paths
# Pods for testing
end
target 'RootUITests' do
inherit! :search_paths
# Pods for testing
end
end
Run Code Online (Sandbox Code Playgroud)
解决方案:
1我添加$(inherited) non-recursive到Search Path -> Header Search Paths
2然后
在我的项目的目标构建设置中添加${PODS_ROOT} recursive到Search Path -> User Header Search Paths
上述两个.
请查看以下SO答案:
1继承标题搜索路径
2继承用户搜索路径
Har*_*ngh 17
请注意,如果您的桥接头导入了自己通过应用程序的Swift模块导入的Objective-C代码,也会发生这种情况myproject-Swift.h.解决方案是使用Swift类型的前向声明并在.m文件中导入项目Swift模块.
@class MySwiftClass 要么...
typedef NS_ENUM(NSInteger, MySwiftEnumType)
MySwiftEnumType是类的最低级别名称.所以Swift enum MyClass.MySwiftEnumType变得公正MySwiftEnumType
BAP*_*BAP 13
确保您打开正确的项目工作区,否则,Podfile可能没有编译所需的所有资源.
我在以前工作正常的项目中看到了同样的错误.
我发现我不小心打开了ProjectName.xcodeproj文件而不是ProjectName.xcworkspace文件.打开xcworkspace文件和presto,项目再次运行!
XCode在某些目标上可以构建成功,但在其他目标上则不能。
最后我发现Header Search Paths不一样。(路径:目标>构建设置>搜索路径>标题搜索路径>添加项目)
我从成功的目标复制并粘贴了路径。我做到了。太棒了。
你可以尝试这个解决方案.我通过这种方式解决了同样的问题.
产品>方案>编辑方案>在左侧菜单上选择"构建">查找隐式依赖项
在构建选项卡下,选中"查找隐式依赖项":

然后再打扫干净并再次构建.
小智 5
我已经尝试了答案中提到的所有上述步骤,但对我没有任何帮助,问题基本上出在该项目和Podfile中的部署目标版本上。
在我的项目中,部署目标是10.0,而在podfile中,则是11.0。
我在为模拟器而不是硬件设备编译时遇到了这个问题。有两个编译错误,如:
经过数小时的研究和尝试和错误,结果是,项目中没有设置有效的架构来编译模拟器。
在Project -> Build Settings -> User-Defined -> VALID_ARCHS添加架构x86_64启用模拟器编译。
| 归档时间: |
|
| 查看次数: |
28502 次 |
| 最近记录: |