Go to file
Blank 04c865d8c7 [增加]1. 增加使用说明 2024-09-21 15:43:52 +08:00
.github/workflows [增加]1. 增加同步到镜像 2024-09-21 15:16:33 +08:00
Editor [删除]1. 删除自带的文件。避免出现配置文件干扰 2024-09-21 15:41:59 +08:00
.gitignore [增加]1. 增加初版 2024-09-21 13:27:07 +08:00
Editor.meta [增加]1. 增加初版 2024-09-21 13:27:07 +08:00
LICENSE.md [增加]1. 增加初版 2024-09-21 13:27:07 +08:00
LICENSE.md.meta [增加]1. 增加初版 2024-09-21 13:27:07 +08:00
README.md [增加]1. 增加使用说明 2024-09-21 15:43:52 +08:00
README.md.meta [增加]1. 增加说明文件 2024-09-21 15:39:42 +08:00
package.json [增加]1. 增加初版 2024-09-21 13:27:07 +08:00
package.json.meta [增加]1. 增加初版 2024-09-21 13:27:07 +08:00

README.md

HOMEPAGE

GameFrameX 的 Xcode 导出项目配置

使用文档(文档编写于GPT4)

  1. 请将包内的 XCodeConfigDemo.json 复制到项目中修改为 XCodeConfig.json
  2. 按需修改自己的参数配置

参数解析

  • plist plist配置
    • Key 是属性名Value 是属性值
  • environmentVariables Xcode 中的XcScheme Run的环境变量
    • Key 是属性名Value 是属性值
  • launcherArgs Xcode 中的XcScheme Run 的启动参数
    • 值是一个字符串列表
  • podSource 当使用pod的时候该参数替换默认的源内容可以配置多个源
    • 值是一个字符串列表
  • unityFramework UnityFramework的配置参数
  • unityMain Unity Iphone 的配置参数
    • libs 需要添加的库

      • + 需要添加的库名称
      • - 需要移除的库名称
      • 值是一个字符串列表
    • frameworks 需要添加的框架

      • = 需要设置的框架名称
      • + 需要添加的框架名称
      • - 需要移除的框架名称
      • 值是一个字符串列表
    • properties 需要添加的属性

      • = 需要设置的属性
      • + 需要添加的属性
      • - 需要移除的属性
      • Key 是属性名Value 是属性值
    • filesCompileFlag 需要添加的文件编译标志

      • Key 是文件在Xcode项目中的路径Value 是需要添加的文件编译标志
    • otherLinkerFlag 需要添加的链接器标志

      • Key 是文件在Xcode项目中的路径Value 是需要添加的链接器标志
    • folders 需要添加的文件夹

      • Key是文件夹在工程的相对于项目的路径Assets目录同级别Value是复制到XCode 项目的相对路径。如果已经存在则会报错
    • files 需要添加的文件

      • Key是文件在工程的相对于项目的路径Assets目录同级别Value是复制到XCode 项目的相对路径。如果已经存在则会删除,然后复制

示例配置

{
  "plist": {
    "CFBundleURLTypes": [
      {
        "CFBundleTypeRole": "Editor",
        "CFBundleURLSchemes": [
          "bbqgame"
        ],
        "CFBundleURLName": "com.smartdogx.bbq"
      },
      {
        "CFBundleTypeRole": "Editor",
        "CFBundleURLSchemes": [
          "wx5dfe430e96b395a6"
        ]
      },
      {
        "CFBundleTypeRole": "Editor",
        "CFBundleURLSchemes": [
          "QQ41E77C8B"
        ]
      }
    ],
    "LSApplicationQueriesSchemes": [
      "weixin",
      "wechat",
      "mqqapi",
      "mqqopensdkapiV2",
      "mqqopensdkapiV3",
      "mqqOpensdkSSoLogin",
      "mqqwpa",
      "mqq"
    ],
    "NSAppTransportSecurity": {
      "NSAllowsArbitraryLoads": true,
      "NSExceptionDomains": {
        "qq.com": {
          "NSIncludesSubdomains": true,
          "NSThirdPartyExceptionAllowsInsecureHTTPLoads": true,
          "NSThirdPartyExceptionRequiresForwardSecrecy": false
        }
      }
    },
    "NSCameraUsageDescription": "需要您的相机权限,APP才能识别图书",
    "NSLocationWhenInUseUsageDescription": "需要您的位置权限,APP才能确定您的所属位置",
    "NSMicrophoneUsageDescription": "需要您的麦克风权限,APP才能正常使用部分功能",
    "NSPhotoLibraryAddUsageDescription": "需要您的相册权限,APP才能保存照片到相册",
    "NSPhotoLibraryUsageDescription": "需要您的相册权限,APP才能保存照片到相册",
    "ITSAppUsesNonExemptEncryption": false,
    "NSUserTrackingUsageDescription": "此标识符将用于向您推荐个性化广告"
  },
  "environmentVariables": {
    "IDEPreferLogStreaming": "YES",
    "OS_ACTIVITY_MODE": "disable"
  },
  "launcherArgs": [
    "xx",
    "aaaa",
    "bbbbb"
  ],
  "podSource": [
    "https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git"
  ],
  "unityFramework": {
    "libs": {
      "+": [
        "libicucore.tbd",
        "libz.tbd",
        "libstdc++.tbd",
        "libsqlite3.tbd"
      ],
      "-": []
    },
    "frameworks": {
      "+": [
        "JavaScriptCore.framework",
        "AdServices.framework",
        "Security.framework",
        "CoreVideo.framework",
        "SystemConfiguration.framework",
        "AdSupport.framework",
        "WebKit.framework",
        "UserNotifications.framework",
        "AppTrackingTransparency.framework",
        "AssetsLibrary.framework"
      ],
      "-": []
    },
    "properties": {
      "=": {
        "ENABLE_BITCODE": "NO",
        "GCC_ENABLE_OBJC_EXCEPTIONS": true,
        "GCC_ENABLE_CPP_EXCEPTIONS": true,
        "CLANG_ENABLE_OBJC_ARC": true
      },
      "+": {},
      "-": {}
    },
    "filesCompileFlag": {
      "Classes/PluginBase/UnityViewControllerListener.mm": "-hjdaj",
      "Classes/PluginBase/LifeCycleListener.mm": "-dsacz-dasdsa-dzxcxz-dsadsa"
    },
    "otherLinkerFlag": {
      "OTHER_LDFLAGS": "-ObjC"
    },
    "files": {
      "ios_libs.txt": "Classes/ios_libs.txt"
    },
    "folders": {
      "XC": "Classes/XC"
    }
  },
  "unityMain": {
    "libs": {
      "+": [
        "libicucore.tbd",
        "libz.tbd",
        "libstdc++.tbd",
        "libsqlite3.tbd"
      ],
      "-": []
    },
    "frameworks": {
      "+": [
        "JavaScriptCore.framework",
        "AdServices.framework",
        "Security.framework",
        "CoreVideo.framework",
        "SystemConfiguration.framework",
        "AdSupport.framework",
        "WebKit.framework",
        "UserNotifications.framework",
        "AppTrackingTransparency.framework",
        "AssetsLibrary.framework"
      ],
      "-": []
    },
    "properties": {
      "=": {
        "ENABLE_BITCODE": "NO",
        "GCC_ENABLE_OBJC_EXCEPTIONS": true
      },
      "+": {},
      "-": {}
    },
    "filesCompileFlag": {},
    "otherLinkerFlag": {
      "OTHER_LDFLAGS": "-ObjC"
    },
    "files": {
      "ios_libsM.txt": "Classes/ios_libsM.txt"
    },
    "folders": {
      "XCM": "Classes/XCM"
    }
  }
}

注意事项

  • 配置文件的名称必须为 XCodeConfig.json

使用方式(任选其一)

  1. 直接在 manifest.json 的文件中的 dependencies 节点下添加以下内容

       {"com.gameframex.unity.xcode": "https://github.com/gameframex/com.gameframex.unity.xcode.git"}
    
  2. 在Unity 的Packages Manager 中使用Git URL 的方式添加库,地址为:https://github.com/gameframex/com.gameframex.unity.xcode.git

  3. 直接下载仓库放置到Unity 项目的Packages 目录下。会自动加载识别