gpt4 book ai didi

ios - 构建 iOS8 扩展目标时出现重复符号

转载 作者:可可西里 更新时间:2023-11-01 05:28:44 24 4
gpt4 key购买 nike

我花了几个小时尝试扩展目标使用与主要目标不同的 pod 配置。这样做的原因是 Pod 被复制用于扩展目标,从而使您的整个应用程序的大小大约增加一倍。需要使 Extension 仅包含那里必需的 pod。

XCode 在将 Extension 嵌入 main target 时似乎有一些魔力,而 CocoaPods 似乎没有注意到整个过程?还是我做错了?我尝试了各种 Podfile 配置,但没有任何效果。任何人都能够成功地实现这一目标?

重现:

  1. 创建一个新项目,目标为“MainTarget”
  2. 选择添加目标 > Today Extension,将目标命名为“Extension”
  3. 创建播客文件:
target 'MainTarget' do
pod 'RestKit', '~> 0.20.3'
pod 'AFNetworking', '~> 1.3.1'
pod 'SSKeychain', '~> 1.2.0'
pod "MagicalRecord/Shorthand", '~> 2.2'
pod 'StyledPageControl', '~> 1.0'
pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.2'
end

target 'Extension' do
pod 'AFNetworking', '~> 1.3.1'
end

4 运行 pod install 5 build

结果:

/Users/d/Library/Developer/Xcode/DerivedData/MainTarget-fvmcyblwdybpkdgfzflcjhqpjxab/Build/Products/Debug-iphonesimulator/libPods.a(AFHTTPRequestOperation.o)
/Users/d/Library/Developer/Xcode/DerivedData/MainTarget-fvmcyblwdybpkdgfzflcjhqpjxab/Build/Products/Debug-iphonesimulator/libPods-MainTarget.a(AFHTTPRequestOperation.o)
duplicate symbol _OBJC_IVAR_$_AFHTTPRequestOperation._successCallbackQueue in:
/Users/d/Library/Developer/Xcode/DerivedData/MainTarget-fvmcyblwdybpkdgfzflcjhqpjxab/Build/Products/Debug-iphonesimulator/libPods.a(AFHTTPRequestOperation.o)
/Users/d/Library/Developer/Xcode/DerivedData/MainTarget-fvmcyblwdybpkdgfzflcjhqpjxab/Build/Products/Debug-iphonesimulator/libPods-MainTarget.a(AFHTTPRequestOperation.o)

...(依此类推...每个文件重复 4 次。)

ld: 2148 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

最佳答案

这是因为您至少包含了两次 AFNetworking。如果它是您扩展中唯一需要的库,您应该使用:

target 'Extension', :exclusive => true do
pod 'foo'
end

已记录 here

如果您希望所有库都链接到您的扩展,您应该删除“MainTarget”组并使用 link_with如图here

关于ios - 构建 iOS8 扩展目标时出现重复符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25943503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com