Xcode,使用自定义构建配置时链接框架不起作用
Posted
技术标签:
【中文标题】Xcode,使用自定义构建配置时链接框架不起作用【英文标题】:Xcode, Linking framework doesn't work when use custom build configuration 【发布时间】:2016-02-05 15:58:13 【问题描述】:我有一个包含两个项目的工作区:名为“MainProject”的主项目,第二个是名为“PrivateFramework”的 CocoaTouch 框架。 PrivateFramework 链接到 MainProject 并且运行良好。
我在项目中也有 Podfile 文件,如下所示。你可以看到我在 PrivateFramework 和 MainProject 中使用了 XCGLogger pod。
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
workspace 'MainProject'
def shared_pods
pod 'XCGLogger'
end
target 'PrivateFramework' do
xcodeproj 'PrivateFramework/PrivateFramework.xcodeproj'
shared_pods
end
target 'MainProject' do
xcodeproj 'MainProject.xcodeproj', 'Development' => :debug, 'Production' => :release
shared_pods
pod 'Alamofire'
pod 'Unbox'
pod 'Locksmith'
end
安装 pod 后一切正常,因此 PrivateFramework 和 MainProject 正在编译并运行良好。
问题是当我尝试在 MainProject 中添加新的构建配置而不是调试和发布时。我添加了与发布和调试重复的生产和开发配置。
当我将新方案添加到名为“MainProject Development”的项目中时,我使用开发构建配置(称为开发)项目停止编译。 我的 PrivateFramework 中存在链接问题,无法看到 XCGLogger 以及此警告:
Target 'Pods-PrivateFramework' of project 'Pods' was rejected as an implicit dependency for 'Pods_PrivateFramework.framework' because its architectures 'i386' didn't contain all required architectures 'i386 x86_64'
为什么如果我使用自定义构建配置我的新方案不起作用
并且项目停止编译?
您有一些解决方法的建议吗?
在这里您可以找到具有该工作区的存储库:https://github.com/krystiansliwa/TestWorkspace
【问题讨论】:
【参考方案1】:我从一位 CocoaPods 成员那里读到“你不能在同一配置中混合调试和发布”。您的 Podfile 对两个目标(PrivateFramework 和 MainProject)使用相同的配置(“开发”或“生产”)。所以 PrivateFramework 的隐式规则可能与 MainProject 的显式规则相冲突。
尝试使用:
xcodeproj 'PrivateFramework/PrivateFramework.xcodeproj', 'Development' => :debug, 'Production' => :release
【讨论】:
以上是关于Xcode,使用自定义构建配置时链接框架不起作用的主要内容,如果未能解决你的问题,请参考以下文章