Unity导出工程到xcode(xcodeproj.projmods配置说明)
xcodeproj.projmods配置文件工程设置配置文件说明
- 主要是使用Unity自带的PBXProject来完成xcode导出xcode工程的设置,示例配置如下
{
"buildProperty":[
{"key":"identifier", "value":"com.xxx.xxxx"},
{"key":"ProvisioningStyle", "value":"Manual"},
{"key":"CODE_SIGN_ENTITLEMENTS", "value":"entitlements.entitlements"},
{"key":"CODE_SIGN_IDENTITY", "value":"iPhone Developer: xxx xx (xxxxx)"},
{"key":"CODE_SIGN_IDENTITY[sdk=iphoneos*]", "value":"iPhone Developer: xxx xx (xxxx)"},
{"key":"PROVISIONING_PROFILE_SPECIFIER", "value":"xx_dev_v1"}
],
"teamId":"xxxxxxx",
"capabilitys":["SignInWithApple", "InAppPurchase"],
"sourceCodes" : [
"example/WeChatSDK/WechatAuthSDK.h",
"example/WeChatSDK/WXApi.h",
"example/WeChatSDK/WXApiObject.h"
],
"copyBundles" : [
"example/QQSDK/TencentOpenApi_IOS_Bundle.bundle"
],
"libs": ["libz.tbd", "libsqlite3.0.tbd", "libc++.tbd"],
"libsCust": [
"example/WeChatSDK/libWeChatSDK.a"
],
"frameworks": [
"StoreKit.framework",
"AuthenticationServices.framework"
],
"frameworksCust": [
"example/QQSDK/TencentOpenAPI.framework"
],
"buildSettings": [
{"key":"OTHER_LDFLAGS", "values":[ "-ObjC",
"-lsqlite3.0",
"-lz",
"-licucore" ]},
{"key":"ENABLE_BITCODE", "values":["NO"]}
]
}
- ${UNITY_PROJ_PATH}/BuildConf/xcodeproj.projmods该文件配置导出xcode工程的配置。${UNITY_PROJ_PATH}为unity工程目录(Assets的父目录)。
- CODE_SIGN_IDENTITY跟identifier配置要对应。
- buildProperty 为key-value数组,会调用pbxProject.SetBuildProperty(target, key, value)对工程属性设置,典型的设置选项可以对比生成的pbxproj文件查看结构跟例子一样的字段应该是都支持的。
- PROVISIONING_PROFILE_SPECIFIER签名证书要跟teamId匹配,不然不生效。
- capabilitys里面的功能有些要依赖entitlements描述文件。打包处理可以默认生成一些。有些需要参数的不支持可以先手动配置一次工程 然后从工程中拷贝出来放在Unity工程目下 ${UNITY_PROJ_PATH}/BuildConf/entitlements.entitlements,entitlements.entitlements文件名固定,打包时候自动引用,不再动态生成。不支持的有Wallet,PushNotifications,KeychainSharing,Maps,iCloud,BackgroundModes,AssociatedDomains,AppGroups。
- libs,frameworks是系统自带的库,直接写库名字就可以。
- sourceCodes,copyBundles,libsCust,frameworksCust是打包需要复制添加到工程的oc源代码文件或者资源文件,依赖库目录配置。BuildConf/buildenv.txt中配置sdk_repo目录到sdk仓库的根目录,具体根目录为${GIT_SDK_PATH}/ws_ios/libs;
- 打包编译选项,有其它选项也可以根据pbxproj文件查看结构增加。
- 如果BuildConf/Info.plist存在则直接复制改文件到工程。