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)
网友评论