美文网首页
XCodeproj自动编辑xcodeproj工程文件用于unit

XCodeproj自动编辑xcodeproj工程文件用于unit

作者: typedef708 | 来源:发表于2016-11-26 20:44 被阅读461次

    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工程文件用于unit

          本文链接:https://www.haomeiwen.com/subject/diegpttx.html