2013-10-25 23 views
2

我正在使用Cocoapods以及包含我自己的靜態庫以及使用靜態庫的主項目的工作空間。構建之前自動執行靜態庫刪除以防止Cocoapods重複出現符號錯誤

靜態庫和主應用程序共享相同的窗格。

問題是在構建主應用程序時,'pod install'後創建的鏈接會導致重複的符號錯誤。

我已經研究了通過腳本構建階段從靜態lib目標中移除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 

而且Ruby腳本從我的靜態庫中刪除libPods.a:


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

豐益國際的劇本是我用什麼;但它有兩個問題:

  1. project.save不叫堅持的文件刪除 - 我只是說這是上面的代碼

  2. 我需要以此爲TeamCity的一部分的最後一行CI構建;所以我只是添加這個腳本作爲「自定義腳本」構建步驟來運行,甚至在調用xcodebuild之前,並且工作。

謝謝