Xcode 15 报错处理

2023-10-08  本文已影响0人  游城十代2dai

在 podfile 中添加这段代码, 在 post_install 钩子函数中调用 fixWeakCPlus_Xcode15, 可以在 debug 下修改上面的第二个第三个错误

require 'xcodeproj'
  def fixWeakCPlus_Xcode15(installer)
    # 获取当前的 Xcode 版本
    current_xcode_version = `xcodebuild -version`.scan(/\d+.\d+/).first.to_f

    main_project = Xcodeproj::Project.open('Paperang.xcodeproj')
    # 获取主工程的主 target(一般是你的应用程序的 target)
    main_target = main_project.targets.first  # 假设主 target 是主工程的第一个 target
    # 获取主工程的 Build Settings
    build_settings = main_target.build_settings('Debug')  # 你可以根据需要获取特定配置的 Build Settings
    # 需要保存否
    needSave = 0
    # c++ weak 标识
    weak_flag = '-ld_classic'
    # 根据 Xcode 版本执行不同的处理
    if current_xcode_version >= 15.0
      if main_target
        needSave = 1
        # 修改版本号(目的是适配 Starscream NWProtocolTCP.Options() 报错)
        build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
        # 在这里使用 build_settings 来获取和操作 Build Settings 的值
        # 例如,获取特定设置的值:
        otherLink_setting_value = build_settings['OTHER_LDFLAGS']
        
        if otherLink_setting_value.include?(weak_flag) == false
          otherLink_setting_value.append(weak_flag)
          puts "OTHER_LDFLAGS Build Setting Value: #{otherLink_setting_value}"
        end
      end
    else
      if current_xcode_version != 11.0
        needSave = 1
        # 获取主工程的 Build Settings
        build_settings = main_target.build_settings('Debug')  # 你可以根据需要获取特定配置的 Build Settings
        # 修改版本号
        build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
        # 在这里使用 build_settings 来获取和操作 Build Settings 的值
        # 例如,获取特定设置的值:
        otherLink_setting_value = build_settings['OTHER_LDFLAGS']
        
        if otherLink_setting_value.include?(weak_flag)
          otherLink_setting_value.delete(weak_flag)
          puts "OTHER_LDFLAGS Build Setting Value: #{otherLink_setting_value}"
        end
        
      end
    end
    
    if needSave
      # 保存对主工程的任何修改(如果需要)
      main_project.save
    end
  end
上一篇 下一篇

猜你喜欢

热点阅读