XCodeproj自动编辑xcodeproj工程文件用于unity3d 打包ios时需要编辑工程文件

commond line add frameworks 、library and tbd (text-based stub libraries

XCode 7之后apple有了一种新的动态库tbd;有些新的项目中需要添加比如,GotyAPI该工程就需要添加stdc++.6.0.9.tbd
为了可以在jenkins中能自动构建,就需要自动编辑xcodeproj中BuildPhase中Framework添加需要应用的库
原来的XCodeproj是可以直接支持Framework 和 dylib 两类文件。
操作方法可以见 下面具体代码
对于系统级引用的接口分别为:
add_system_framework
add_system_library
但是新的tbd类型的文件,是没有接口支持的

为了能达到目的,就新增加一个接口 add_system_tbd 实现参考了library
https://github.com/typedef/Xcodeproj/commit/925280230c8d591d9b3e02ed9d1b0438b8d1e413

关于xcodeproj的了解还不够,就先用这种笨办法解决了。里面的绝对路径还是有点问题。不过能解决眼前的问题。
先记录下,作为备忘。

#!/usr/bin/env ruby

require 'rubygems'

# The lower version of xcodeproj is not available because the API has changed.

gem "xcodeproj", ">=0.14.0"

require 'xcodeproj'

projpath = ARGV[0] + "/Unity-iPhone.xcodeproj"

proj = Xcodeproj::Project.open(projpath)

proj.targets.each do |target|

next unless target.name == "Unity-iPhone"

# Add Frameworks
    target.add_system_framework("MessageUI")
    target.add_system_library("stdc++")
    target.add_system_tbs("stdc++.6.0.9")
    # Add Other Linker Flags
    target.build_settings("Debug")["OTHER_LDFLAGS"] << "-ObjC"
    target.build_settings("Release")["OTHER_LDFLAGS"] << "-ObjC"
end
end

proj.save(projpath)

你可能感兴趣的:(XCodeproj自动编辑xcodeproj工程文件用于unity3d 打包ios时需要编辑工程文件)