Ale*_*Ale 6 xcode updates duplicates ios cocoapods
这是我的podFile
:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
pod 'AFNetworking'
pod 'ODSAccordionView', '0.4.4'
pod 'IQKeyboardManager'
pod 'NYXImagesKit', :git => 'https://github.com/Nyx0uf/NYXImagesKit.git'
pod 'PEPhotoCropEditor'
pod 'CocoaAsyncSocket'
pod 'PKRevealController'
pod 'Haneke', '~> 1.0'
pod 'MBProgressHUD', '~> 0.9.1'
pod 'RadioButton'
Run Code Online (Sandbox Code Playgroud)
Everythig已经很好地工作了很长时间,但是现在,当我更新我的pods(pod update
)时,这三个pod被up upted:
AFNetworking
CocoaAsyncSocket
IQKeyboardManager
在那之后,没有任何作品了.
我得到了600多个duplicate symbols for architecture i386
错误,比如这个错误:
duplicate symbol _OBJC_IVAR_$_AFHTTPRequestOperation._responseSerializer in:
/Users/myuser/Library/Developer/Xcode/DerivedData/MyProject-emjexnnjljambodthokzwpwcddhz/Build/Products/Debug-iphonesimulator/libPods-AFNetworking.a(AFHTTPRequestOperation.o)
/Users/myuser/Library/Developer/Xcode/DerivedData/MyProject-emjexnnjljambodthokzwpwcddhz/Build/Products/Debug-iphonesimulator/libAFNetworking.a(AFHTTPRequestOperation.o)
... (661 times the same error but pointing to different duplicated files)
ld: 661 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑:执行下面显示的解决方案后,我的项目只编译iPad Air
,我不能Archive
再,我仍然得到相同的错误...
我使用'手动重命名所有符号'的方法.我遇到了重复的符号_OBJC_METACLASS_$_PodsDummy_Pods
,所以我添加post_install
了Podfile
以避免重复的符号.
将您的pod文件内容替换为"手动重命名所有符号"
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
post_install do |installer_representation|
installer_representation.project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = '$(inherited), PodsDummy_Pods=SomeOtherNamePodsDummy_Pods'
end
end
end
pod 'AFNetworking'
pod 'ODSAccordionView', '0.4.4'
pod 'IQKeyboardManager'
pod 'NYXImagesKit', :git => 'https://github.com/Nyx0uf/NYXImagesKit.git'
pod 'PEPhotoCropEditor'
pod 'CocoaAsyncSocket'
pod 'PKRevealController'
pod 'Haneke', '~> 1.0'
pod 'MBProgressHUD', '~> 0.9.1'
pod 'RadioButton'
Run Code Online (Sandbox Code Playgroud)
已编辑: 从项目中删除以下pod项
1.Pods Folder
2.Podfile.lock
3.ProjectName.xcworkspace
然后再次安装pod
此挂钩允许您在生成的Xcode项目写入磁盘或您可能要执行的任何其他任务之前对生成的Xcode项目进行任何最后更改.
参考 -
1. https://developerinsider.co/cocoapods-remove-duplicate-symbols-errors/
2. http://guides.cocoapods.org/syntax/podfile.html#post_install
即使在删除我的pod并重新安装它们之后,我也总是遇到同样的问题.
我终于通过与另一个项目比较找到了解决方案.问题出在项目构建设置中的参数"Other Linker Flags"(OTHER_LDFLAGS)中.pod不仅仅通过名称引用,而是通过添加前缀"Pods-myProject"
"-l\"Pods-myProject-AMSlideMenu\"",
"-l\"Pods-myProject-CocoaLumberjack\"",
"-l\"Pods-myProject-DLAlertView\""
Run Code Online (Sandbox Code Playgroud)
所以我只删除了前缀,一切都是正确的
"-l\"AMSlideMenu\"",
"-l\"CocoaLumberjack\"",
"-l\"DLAlertView\""
Run Code Online (Sandbox Code Playgroud)
我通过简单地删除然后重新添加 pod 来修复一个类似的错误(在 Cocoapods 升级之后)。备份您的项目,然后运行:
pod deintegrate
pod install
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8283 次 |
最近记录: |