Unity导出工程到xcode(xcodeproj.projmods配置说明)

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"]}
    ] 
}

  1. ${UNITY_PROJ_PATH}/BuildConf/xcodeproj.projmods该文件配置导出xcode工程的配置。${UNITY_PROJ_PATH}为unity工程目录(Assets的父目录)。
  2. CODE_SIGN_IDENTITY跟identifier配置要对应。
  3. buildProperty 为key-value数组,会调用pbxProject.SetBuildProperty(target, key, value)对工程属性设置,典型的设置选项可以对比生成的pbxproj文件查看结构跟例子一样的字段应该是都支持的。
  4. PROVISIONING_PROFILE_SPECIFIER签名证书要跟teamId匹配,不然不生效。
  5. capabilitys里面的功能有些要依赖entitlements描述文件。打包处理可以默认生成一些。有些需要参数的不支持可以先手动配置一次工程 然后从工程中拷贝出来放在Unity工程目下 ${UNITY_PROJ_PATH}/BuildConf/entitlements.entitlements,entitlements.entitlements文件名固定,打包时候自动引用,不再动态生成。不支持的有Wallet,PushNotifications,KeychainSharing,Maps,iCloud,BackgroundModes,AssociatedDomains,AppGroups。
  6. libs,frameworks是系统自带的库,直接写库名字就可以。
  7. sourceCodes,copyBundles,libsCust,frameworksCust是打包需要复制添加到工程的oc源代码文件或者资源文件,依赖库目录配置。BuildConf/buildenv.txt中配置sdk_repo目录到sdk仓库的根目录,具体根目录为${GIT_SDK_PATH}/ws_ios/libs;
  8. 打包编译选项,有其它选项也可以根据pbxproj文件查看结构增加。
  9. 如果BuildConf/Info.plist存在则直接复制改文件到工程。
posted @ 2021-12-06 17:58  搬山码农  阅读(717)  评论(0)    收藏  举报