我正在使用Cocoapods以及包含我自己的静态库的工作区,以及使用静态库的主项目。
静态lib和主应用程序共享相同的pod。
问题是“pod install”之后创建的链接会在构建主应用程序时导致重复的符号错误。
我已经考虑通过脚本构建阶段从我的静态lib目标中删除libPods.a静态lib,以及方案构建预执行。似乎都没有预期的效果。
这是我的Podfile:
workspace 'MyWorkspace.xcworkspace'
platform :ios, '6.0'
inhibit_all_warnings!
# POD ACTIONS ----------------------------------------
def import_pods
pod 'AFNetworking', '1.3.2'
pod 'AFHTTPRequestOperationLogger', '0.10.0'
pod 'CorePlot', '1.3'
end
# POD LINKAGE -----------------------------------------
target :'MyStaticLib' do
xcodeproj 'StaticLib/StaticLib.xcodeproj'
import_pods
target :'MyApp' do
xcodeproj 'MyApp.xcodeproj'
end
end
用于从我的静态库中删除libPods.a的Ruby脚本:
require 'xcodeproj'
project = Xcodeproj::Project.open("StaticLib/StaticLib.xcodeproj")
project.targets.each do |target|
if target.display_name == 'MyStaticLib'
target.frameworks_build_phase.files_references.each do |file|
if file.path == "libPods.a"
file.build_files.each do |build_file|
build_file.remove_from_project
puts "Removed build file from project: #{build_file.display_name}"
end
file.remove_from_project
end
end
end
end
答案 0 :(得分:0)
没有调用project.save来保存文件删除 - 我只是将其添加为上述代码的最后一行
我需要将此作为TeamCity CI构建的一部分;所以我只是将这个脚本添加为"自定义脚本"构建步骤,甚至在调用xcodebuild之前运行,并且工作正常。
谢谢