2

我正在使用Cocoapods以及一个包含我自己的静态库以及使用静态库的主项目的工作区。

静态库和主应用程序共享相同的 pod。

问题是在“pod install”之后创建的链接在构建主应用程序时会导致重复符号错误。

我已经研究过通过脚本构建阶段以及方案构建预操作从我的静态库目标中删除 libPods.a 静态库。两者似乎都没有达到预期的效果。

这是我的 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
4

1 回答 1

0

我使用的是 Wilmar 的脚本;除了它有两个问题:

  1. 没有调用 project.save 来持久删除文件 - 我只是将其添加为上述代码的最后一行

  2. 我需要它作为 TeamCity CI 构建的一部分;所以我只是在调用 xcodebuild 之前将此脚本添加为“自定义脚本”构建步骤来运行,这很有效。

谢谢

于 2014-06-20T05:42:35.933 回答