Skip to content

Unity接入-iOS平台配置

WARNING

在完成Unity层API调用之后, 如果要出xcode工程,还需要做一些额外的配置。

UGSDK目录介绍

Assets/UGSDK目录下文件说明:

1、 UGSDK/Config:  SDK相关参数配置文件存放的目录;

2、 UGSDK/Editor:  Unity打包时,通过UGSDKIOSBuildProcessor打包后处理接口注入系统库配置、plist配置、参数文件配置等;

3、 UGSDK/Plugins: 存放Android和iOS平台的原生平台的依赖库; UGSDK/Plugins/iOS/xcode/build.json中可以调整iOS打包时相关的配置。

4、 UGSDK/Runtime: C#运行时脚本文件,封装了SDK相关的C#层API接口。

iOS SDK参数配置

1、SDK参数配置

SDK相关的基础参数配置都放在了UGSDK/Config/sdk_config.json文件中。打开UGSDK/Config/sdk_config.json,内容如下:

WARNING

Unity打包时,会通过UGSDK/Editor/iOS/UGSDKIOSBuildProcessor脚本,读取该参数文件,将参数写入到最终xcode工程中。

json
{
    "serverUrl": "http://ugapi.bytesdk.com",
    "orientation": "portrait",

    "ios": {
        "sdk": {
            "appID": "3",
            "appKey": "982d9834774b48c5bc4933116aa9db4b",
            "ug.google.ios.clientid": "976037278824-icimes2m5c8c11n444mf5n25ros4nr62.apps.googleusercontent.com",
            "plugins": [
                {
                    "name": "UG_Plugin_Firebase"
                }
            ]
        },

        "plist": {
            "GIDClientID": "976037278824-icimes2m5c8c11n444mf5n25ros4nr62.apps.googleusercontent.com",
            "GIDServerClientID": "976037278824-1nb88s7tefieah8ctqf3prqvshei06ri.apps.googleusercontent.com",
            "GADApplicationIdentifier": "ca-app-pub-3940256099942544~1458002511",
            "FacebookAppID": "860643017941356",
            "FacebookAutoLogAppEventsEnabled": true,
            "FacebookClientToken": "e02c4c168f005146f8423df9aaba7011",
            "FacebookDisplayName": "TTP",
            "LSApplicationQueriesSchemes": ["fbapi", "fbapi20130214", "fbapi20130410", "fbapi20130702", "fbapi20131010", "fbapi20131219", "fbapi20140410", "fbapi20140116", "fbapi20150313", "fbapi20150629", "fbapi20160328", "fbauth", "fb-messenger-share-api", "fbauth2", "fbshareextension", "lineauth2"],
            "CFBundleURLTypes": [
                {
                    "CFBundleIdentifier":"",
                    "CFBundleTypeRole": "Editor",
                    "CFBundleURLSchemes": ["fb860643017941356"]
                },
                {
                    "CFBundleIdentifier":"",
                    "CFBundleTypeRole": "Editor",
                    "CFBundleURLSchemes": ["com.googleusercontent.apps.976037278824-icimes2m5c8c11n444mf5n25ros4nr62"]                    
                },
                {
                    "CFBundleIdentifier":"",
                    "CFBundleTypeRole": "Editor",
                    "CFBundleURLSchemes": ["line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)"]                    
                }                
            ]
        }
    }
}

参数配置说明:

字段名参数说明参考值
serverUrlUGSDK服务端的API URL地址,对应UGSDK_Images.bundle/ug_config.plist中的ug.server.urlhttp://ugapi.bytesdk.com
orientation游戏横竖屏配置,对应UGSDK_Images.bundle/ug_config.plist中的ug.orientation横屏:landscape;竖屏:portrait
ios/sdk/appIDSDK后台iOS平台游戏的AppID3
ios/sdk/appKeySDK后台iOS平台游戏的AppKey982d9834774b48c5bc4933116aa9db4b
ios/sdk/ug.google.ios.clientidGoogle登录组件初始化需要用到的iOS client IDgoogle cloud console后台创建iOS客户端凭据后生成的Client ID
ios/sdk/pluginsSDK中接入的插件配置,这里开启的插件,才会生效比如:UG_Plugin_Firebase, 具体可以参考:插件接口
ios/sdk/plist里面的所有参数,都将原封不动写入最终Xcode工程的Info.plist文件中比如Google登录、Facebook登录等需要配置的参数,具体参数含义可以参考:iOS配置

2、Firebase参数文件配置

UGSDK/Config/iOS/GoogleService-Info.plist是Firebase SDK需要的配置文件,从Firebase开发者控制台下载,下载后内容不用改动,放该目录下即可,最终会放在生成的Xcode工程根目录下。

iOS 打包配置

UGSDK通过UGSDKIOSBuildProcessor后处理方式,在Unity打包时注入系统库、build settings配置等。 SDK所需的构建配置,统一放在UGSDK/Plugins/iOS/xcode/build.json文件中。 该文件内容如下:

json
{
  "systemFrameworks": [
    "Accelerate.framework",
    "AdServices.framework",
    "AdSupport.framework",
    "AVFoundation.framework",
    "AppTrackingTransparency.framework",
    "CFNetwork.framework",
    "CoreData.framework",
    "CoreFoundation.framework",
    "CoreGraphics.framework",
    "CoreTelephony.framework",
    "JavaScriptCore.framework",
    "QuartzCore.framework",
    "WebKit.framework",
    "Security.framework",
    "StoreKit.framework",
    "SystemConfiguration.framework"
  ],

  "systemLibraries": [
    "libc++.tbd"
  ],

  "embedFrameworks": [
    "Google/AppAuth/AppAuth.framework",
    "Google/AppCheckCore/AppCheckCore.framework",
    "Google/GoogleSignIn/GoogleSignIn.framework",
    "Google/GoogleUtilities/GoogleUtilities.framework",
    "Google/GTMAppAuth/GTMAppAuth.framework",
    "Google/GTMSessionFetcher/GTMSessionFetcher.framework",
    "Google/PromisesObjC/FBLPromises.framework",
    "LINE/LineSDK.framework",
    "LINE/LineSDKObjC.framework"
  ],
  "buildSettings": {
    "unityMainTarget": {
      "OTHER_LDFLAGS": [
        "$(inherited)",
        "-ObjC"
      ],
      "LD_RUNPATH_SEARCH_PATHS": [
        "$(inherited)",
        "@executable_path/Frameworks"
      ],
      "SWIFT_VERSION": "5.0",
      "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "YES"
    },

    "unityFrameworkTarget": {
      "OTHER_LDFLAGS": [
        "$(inherited)",
        "-ObjC"
      ],
      "SWIFT_VERSION": "5.0",
      "CLANG_ENABLE_MODULES": "YES"      
    }
  },

  "swift": {
    "enabled": true,
    "generateSupportFile": true
  },

  "plist": {
    "base": {
      "NSCameraUsageDescription": "是否允许此APP访问您的相机",
      "NSPhotoLibraryUsageDescription": "是否允许此APP访问您的相册",
      "NSPhotoLibraryAddUsageDescription": "是否允许此APP访问您的相册",
      "NSUserTrackingUsageDescription": "是否允许此APP记录您的广告偏好",
      "UIUserInterfaceStyle": "Light"
    },

    "allowArbitraryLoads": true
  }
}

配置参数项说明:

字段名参数说明值说明
systemFrameworks需要添加的iOS系统库比如:AdSupport.framework
systemLibraries需要添加的iOS系统库比如:libc++.tbd
embedFrameworksSDK需要的所有库文件都存在UGSDK/Plugins/iOS/libs目录下,这里填写需要设为embeded的库填写库在libs下的相对路径
buildSettings/unityMainTargetUnity-iPhone这个target上的build settings配置other link flags等
buildSettings/unityFrameworkTargetUnityFramework这个target上的build settings配置other link flags等
swift开启swift支持第三方SDK中用到swift,必须开启
plist/base写入到最终Unity-iPhone这个target的plist文件中的配置NSCameraUsageDescription等
plist/allowArbitraryLoads是否允许httptrue或false

导出XCode工程

上述配置完成后,即可导出xcode工程并运行调试了。 在导出配置中, 需要注意包名、版本信息的配置。

Unity导出APK

版权所有© 2021-2030 上海丞诺网络科技有限公司