Appearance
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)"]
}
]
}
}
}参数配置说明:
| 字段名 | 参数说明 | 参考值 |
|---|---|---|
| serverUrl | UGSDK服务端的API URL地址,对应UGSDK_Images.bundle/ug_config.plist中的ug.server.url | http://ugapi.bytesdk.com |
| orientation | 游戏横竖屏配置,对应UGSDK_Images.bundle/ug_config.plist中的ug.orientation | 横屏:landscape;竖屏:portrait |
| ios/sdk/appID | SDK后台iOS平台游戏的AppID | 3 |
| ios/sdk/appKey | SDK后台iOS平台游戏的AppKey | 982d9834774b48c5bc4933116aa9db4b |
| ios/sdk/ug.google.ios.clientid | Google登录组件初始化需要用到的iOS client ID | google cloud console后台创建iOS客户端凭据后生成的Client ID |
| ios/sdk/plugins | SDK中接入的插件配置,这里开启的插件,才会生效 | 比如: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 |
| embedFrameworks | SDK需要的所有库文件都存在UGSDK/Plugins/iOS/libs目录下,这里填写需要设为embeded的库 | 填写库在libs下的相对路径 |
| buildSettings/unityMainTarget | Unity-iPhone这个target上的build settings配置 | other link flags等 |
| buildSettings/unityFrameworkTarget | UnityFramework这个target上的build settings配置 | other link flags等 |
| swift | 开启swift支持 | 第三方SDK中用到swift,必须开启 |
| plist/base | 写入到最终Unity-iPhone这个target的plist文件中的配置 | NSCameraUsageDescription等 |
| plist/allowArbitraryLoads | 是否允许http | true或false |
导出XCode工程
上述配置完成后,即可导出xcode工程并运行调试了。 在导出配置中, 需要注意包名、版本信息的配置。
