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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容