01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
static void ExportiOSHFProject_Online ( ) {
getCMDArgs ( ) ;
PlayerSettings.defaultInterfaceOrientation = UIOrientation.AutoRotation;
PlayerSettings.productName = "xxxx" ; / / 设置韩服的Name
/ / 设置Deployment Target
PlayerSettings.SetScriptingDefineSymbolsForGroup ( BuildTargetGroup.iOS , "TWSDK;EXCLUDE_SHARESDK;KOREAN" ) ;
if ( OnlySetScriptingDefineSymbols )
{
Debug.Log ( "本次打开Unity只是设置全局宏,打包请再次调用" ) ;
return ;
}
string [] NeedToDel = { "" } ; / / 指定要删除的目录
doDelWithRelativePath ( NeedToDel ) ;
_LanguageBar.ToTraditionForAntBuild ( _LanguageBar.UNIRES_KOREA ) ; / / 切换语言版本
ExportProject ( ExportPath , BuildTarget.iOS , BuildOptions.None ) ;
}
static void ExportProject ( string path , BuildTarget target , BuildOptions options )
{
if ( path .Length ! = 0 )
{
foreach ( EditorBuildSettingsScene scene in EditorBuildSettings.scenes )
{
if ( !scene. enabled ) continue ;
levels.Add ( scene. path ) ;
}
float time = Time.realtimeSinceStartup;
AssetDatabase.Refresh ( ) ;
try
{
BuildPipeline.BuildPlayer ( levels.ToArray ( ) , path , target , options ) ;
}
catch ( System.Exception m )
{
Debug.LogError ( m.Message ) ;
}
time = Time.realtimeSinceStartup - time;
Debug.Log ( "打包完成,共计耗时" + time ) ;
}
}
|
插入FrameWork和Plis
接下来肯定是大家最关注的点了,我把代码直接贴出来吧,隐去了设置的的参数,宏因为是公司项目有些修改,可以根据自己的来修改。 ?001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
public class AntXcodeProjectProcess : MonoBehaviour {
[PostProcessScene]
public static void OnPostprocessScene ( )
{
#if UNITY_ADS
AdvertisementSettings. enabled = true ;
AdvertisementSettings.initializeOnStartup = false ;
#endif
}
[PostProcessBuild ( 100 ) ]
public static void OnPostprocessBuild ( BuildTarget buildTarget , string path )
{
if ( buildTarget = = BuildTarget.iOS )
{
/ / plist
string plistPath = Path.Combine ( path , "info.plist" ) ;
PlistDocument plist = new PlistDocument ( ) ;
plist.ReadFromFile ( plistPath ) ;
plist.root.SetString ( "CFBundleDevelopmentRegion" , "zh_CN" ) ;
plist.root.SetString ( "NSCameraUsageDescription" , "直播相关" ) ;
plist.root.SetString ( "NSAppleMusicUsageDescription" , "直播相关" ) ;
#if TWSDK && !KOREAN
plist.root.SetString ( "FacebookAppID" , "" ) ;
plist.root.SetString ( "FacebookDisplayName" , "" ) ;
plist.root.CreateArray ( "CFBundleURLTypes" ) .AddDict ( ) .CreateArray ( "CFBundleURLSchemes" ) .AddString ( "" ) ;
string [] LSApplicationQueriesSchemesValueList = { "starcoin" , "fbapi" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" } ;
PlistElementArray LSApplicationQueriesSchemesArray = plist.root.CreateArray ( "LSApplicationQueriesSchemes" ) ;
for ( int i = 0 ; i < LSApplicationQueriesSchemesValueList.Length; i + + ) {
LSApplicationQueriesSchemesArray.AddString ( LSApplicationQueriesSchemesValueList ) ;
}
plist.root.SetString ( "NSPhotoLibraryUsageDescription" , "允許授權后遊戲體驗會更豐富" ) ;
#elif TWSDK && KOREAN
plist.root.SetString ( "FacebookAppID" , "" ) ;
plist.root.SetString ( "FacebookDisplayName" , "" ) ;
plist.root.CreateArray ( "CFBundleURLTypes" ) .AddDict ( ) .CreateArray ( "CFBundleURLSchemes" ) .AddString ( "" ) ;
string [] LSApplicationQueriesSchemesValueList = { "starcoin" , "fbapi" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" , "" } ;
PlistElementArray LSApplicationQueriesSchemesArray = plist.root.CreateArray ( "LSApplicationQueriesSchemes" ) ;
for ( int i = 0 ; i < LSApplicationQueriesSchemesValueList.Length; i + + ) {
LSApplicationQueriesSchemesArray.AddString ( LSApplicationQueriesSchemesValueList ) ;
}
plist.root.SetString ( "NSPhotoLibraryUsageDescription" , "允許授權后遊戲體驗會更豐富" ) ;
#endif
PlistElementDict dictTransportSecurity = plist.root [ "NSAppTransportSecurity" ].AsDict ( ) ;
dictTransportSecurity.SetBoolean ( "NSAllowsArbitraryLoads" , true ) ;
#if !EXCLUDE_SHARESDK
plist.root.CreateArray ( "LSApplicationQueriesSchemes" ) .AddString ( "weixin" ) ; / / 微信分享
plist.root.CreateArray ( "CFBundleURLTypes" ) .AddDict ( ) .CreateArray ( "CFBundleURLSchemes" ) .AddString ( "" ) ;
#endif
plist.WriteToFile ( plistPath ) ;
/ / project
string projPath = PBXProject.GetPBXProjectPath ( path ) ;
PBXProject proj = new PBXProject ( ) ;
proj.ReadFromString ( File.ReadAllText ( projPath ) ) ;
string target = proj.TargetGuidByName ( "Unity-iPhone" ) ;
#if TWSDK && !KOREAN
proj.SetTargetAttributes ( "ProvisioningStyle" , "Manual" ) ; / / 关闭自动证书管理
#elif TWSDK && KOREAN
proj.SetTargetAttributes ( "ProvisioningStyle" , "Manual" ) ; / / 关闭自动证书管理
#endif
/ / add common framework start
proj.AddFrameworkToProject ( target , "ReplayKit.framework" , true ) ;
proj.AddFrameworkToProject ( target , "ImageIO.framework" , true ) ;
proj.AddFrameworkToProject ( target , "Storekit.framework" , false ) ;
proj.AddFrameworkToProject ( target , "JavaScriptCore.framework" , true ) ;
if ( proj.ContainsFramework ( target , "Metal.framework" ) ) {
proj.RemoveFrameworkFromProject ( target , "Metal.framework" ) ;
proj.AddFrameworkToProject ( target , "Metal.framework" , true ) ;
}
/ / add common framework end
proj.AddBuildProperty ( target , "FRAMEWORK_SEARCH_PATHS" , "$(SRCROOT)" ) ;
proj.AddBuildProperty ( target , "FRAMEWORK_SEARCH_PATHS" , "$(SRCROOT)/Libraries" ) ;
string [] addBuildProperty = { "$(SRCROOT)/Libraries" , "$(SRCROOT)" } ;
string [] removeBuildProperty = { "" $ ( SRCROOT ) / Libraries "" , "" $ ( SRCROOT )
"" } ;
proj.UpdateBuildProperty ( target , "LIBRARY_SEARCH_PATHS" , addBuildProperty , removeBuildProperty ) ;
proj.AddBuildProperty ( target , "OTHER_LDFLAGS" , "-ObjC" ) ;
/ / custom frameworl start
#if SDK
proj.AddFileToBuild ( target , proj.AddFile ( "/usr/bin/libsqlite3.tbd" , "Frameworks/libsqlite3.tbd" , PBXSourceTree.Sdk ) ) ;
proj.AddFileToBuild ( target , proj.AddFile ( "/usr/bin/libicucore.tbd" , "Frameworks/libicucore.tbd" , PBXSourceTree.Sdk ) ) ;
#endif
#if SDKSDK
proj.AddFrameworkToProject ( target , "Security.framework" , false ) ;
proj.AddFrameworkToProject ( target , "Storekit.framework" , false ) ;
proj.AddFrameworkToProject ( target , "SafariServices.framework" , false ) ;
proj.AddFrameworkToProject ( target , "CoreData.framework" , true ) ;
proj.AddFrameworkToProject ( target , "MobileCoreServices.framework" , true ) ;
proj.AddFrameworkToProject ( target , "EventKit.framework" , true ) ;
proj.AddFrameworkToProject ( target , "EventKitUI.framework" , true ) ;
proj.AddFrameworkToProject ( target , "Social.framework" , true ) ;
proj.AddFrameworkToProject ( target , "CoreTelephony.framework" , true ) ;
proj.AddFrameworkToProject ( target , "MessageUI.framework" , true ) ;
proj.AddFileToBuild ( target , proj.AddFile ( "/usr/bin/libsqlite3.tbd" , "Frameworks/libsqlite3.tbd" , PBXSourceTree.Sdk ) ) ;
proj.AddFileToBuild ( target , proj.AddFile ( "/usr/bin/libstdc++.tbd" , "Frameworks/libstdc++.tbd" , PBXSourceTree.Sdk ) ) ;
#endif
/ / custom frameworl end
/ / custom SDKFile start
#if SDK
XcodeDirectoryProcessor xdp = new XcodeDirectoryProcessor ( ) ;
xdp.CopyAndAddBuildToXcode ( proj , target , "XcodeFiles/SDK/" , path , "SDKFiles" ) ;
xdp.CopyAndReplace ( "XcodeFiles/SDK/Unity-iPhone/Images.xcassets/AppIcon.appiconset" , Path.Combine ( path , "Unity-iPhone/Images.xcassets/AppIcon.appiconset" ) ) ;
#endif
#if TXWYSDK && !KOREAN
Debug.Log ( "拷贝TXWYSDK文件夹" ) ;
XcodeDirectoryProcessor xdp = new XcodeDirectoryProcessor ( ) ;
xdp.CopyAndAddBuildToXcode ( proj , target , "XcodeFiles/TXWYSDK/" , path , "SDKFiles" ) ;
xdp.CopyAndReplace ( "XcodeFiles/TWSDK/Unity-iPhone/Images.xcassets/AppIcon.appiconset" , Path.Combine ( path , "Unity-iPhone/Images.xcassets/AppIcon.appiconset" ) ) ;
#elif TXWYSDK && KOREAN
XcodeDirectoryProcessor xdp = new XcodeDirectoryProcessor ( ) ;
xdp.CopyAndAddBuildToXcode ( proj , target , "XcodeFiles/KOREASDK/" , path , "SDKFiles" ) ;
xdp.CopyAndReplace ( "XcodeFiles/KOREASDK/Unity-iPhone/Images.xcassets/AppIcon.appiconset" , Path.Combine ( path , "Unity-iPhone/Images.xcassets/AppIcon.appiconset" ) ) ;
#endif
/ / custom SDKFile end
File.WriteAllText ( projPath , proj.WriteToString ( ) ) ;
}
}
}
|
相关下载 |
在游戏中打包机的作用顾名思义就是打包,给物品打包,那么异星探险家打包机怎么用呢?还不知道的玩家快来看小编带来的详细方法介绍吧。 在游戏中打包机的作用顾名思详情>>
原标题:《生化危机8》总监打包票玩家可在全平台享受无缝游玩 相信很多《生化危机》系列老粉丝依旧记得早期游戏每次开门动画的紧张感,虽然这只是读详情>>
和平精英:听说有人出不去G港?以后再也不敢打包票了!详情>>
原标题:注册消防工程师“挂证”凉了?需求减少、唯一社保……监管在“泼冷水”,培训机构却在打包票 每经记者:张钟尹 每经编辑:陈星 跟灭火有关的注册消详情>>
如何打包到手机里面进行安装呢攻略对象Android逆向助手WinHex,ApkIDE,C32Asm,apk编辑器mp3-ogg格式转换器步骤分解1我们找打修改过后的文件夹,然后选中里面的所有文件,如图2.以Z详情>>
有时我们会经常给一些人传一些文件或者照片已经各种资料等,可是由于数量多一次次传送很麻烦因此我们给这些文件整理在一个文件中进行打包处理,现在就交给你吧。攻略对象各种文详情>>
Android studio的签名打包不同于eclipse,比eclipse的简单多了,对于刚接触android studio的朋友们可能一下摸不清,android studio是通过Build工具进行签名打包,下面我简单介绍我详情>>
原标题:打包票这绝对是全网最到位的19版小鹰评测 附凉台沟攻略 19款小鹰OSPREY Kestrel 48初体验 在拿到1 详情>>
原标题:打包票这绝对是全网最到位的19版小鹰评测 附凉台沟攻略 19款小鹰OSPREY Kestrel 48初体验 在拿到1 详情>>
日前一位国外玩家“SteamLOL”将《GTA5》中的优秀车辆MOD汇聚到一起,打包带给了玩家... 虽然《GTA5》中有着许多让人眼花缭乱的车辆MOD,日前一位国外玩家“SteamLO... 详情>>
Game234问答中心有网友提出了一个比较有代表性的问题【征服服务器几点开?流星去找谁打包?】,小编觉得可能对其他网友也有帮助,所以将此问答整理出来了,希望对您有帮助。小编为您搜罗的答案1每天大约早上详情>>
《太吾绘卷》终极材料打包MOD补丁类型:游戏MOD补丁语言:简体中文更新时间:2018/12/1214:27:50补丁大小:3.0MB游戏标签:剧情冒险动作策略角色《太吾绘卷》终极材详情>>
《太吾绘卷》材料打包MOD补丁类型:游戏MOD补丁语言:简体中文更新时间:2018/11/2114:08:42补丁大小:2.0KB游戏标签:剧情冒险动作策略角色《太吾绘卷》材料打包M详情>>
中文名称:NBA2K11发布日期:2011-01-14更新日期:--文件大小:7.0M游戏语言:英文英文名称:NBA2K11游戏制作:2KSports游戏发行:2KSport详情>>
中文名称:太吾绘卷发布日期:2018-12-12更新日期:--文件大小:3.0M游戏语言:简体中文英文名称:TheScrollOfTaiwu游戏制作:ConchShipGame详情>>
原标题:RFRSH打包出售Heroic品牌及旗下选手导读:RFRSH宣布打包出售Heroic品牌及旗下选手。随着交易完成,以后Acilion和friberg将会继详情>>
HB商店《战争黎明3》以及另外两款游戏目前在进行打折促销,现在只需要12美元即可买下三款游戏。下面,我们就一... 详情>>
爱玩游戏:韦神,别打包啊,那是我的详情>>
导读DNF今年最后一个大版本-国庆版本即将在17号登陆国服,西海岸服务器已经可以...游久直播↙(▔^▔)↘↙(▔^▔)↘ 当前DNF观众最多的直播都在这↙(▔^▔)... 详情>>
小编为您搜罗的答案:我有《寻找》和其续集,还有流年转,血族新娘。请给邮箱~~详情>>
最近小编在负责一个苹果APP上线注册的工作项目,由于从来没做过,遇到了一系列的问题,在加上全是英文,更是雪上加霜,下面由文汇建站的菜鸟小编来分享一下工作中遇到的问题,有可能你也会遇到哦!打包不成功原详情>>
由网友游戏老板凳FTG电子竞技俱乐部经理提供的观点:毒中打包这个战术,本身并无槽点,我倒是觉得吐槽这个战术的人儿们的心态我有点弄不明白。导致毒中打包战术产生的原因?毒中打包战术大多数出现在正式比赛详情>>
小编为您搜罗的答案:小编为您搜罗的答案:childhoodtaste;TeaPoetryChantingburstsof curvaceousandsoft.Readth详情>>
小编为您搜罗的答案:[华盟][天才麻将少女-咲-Saki-][BDrip][1080P][17.57G]<br/><br/>下面的是115提取码,请复制到优蛋下载:&l详情>>
小编为您搜罗的答案:异界魅影逍遥.永.辰.战魂神尊.武邪神.详情>>
小编为您搜罗的答案:一场比赛的录像100M就算发到邮箱下下来也要很久的吧详情>>
在逆境中涅槃,展翼,翱翔!魔域是舞台,更是战场,舞动卡诺萨万里河山,商海里游刃,一切欺诈,似乎都躲不过他瞳仁闪熠。其间艰难的征程磨亮了他的信仰,志在高远,一... 详情>>
小编为您搜罗的答案:有个网站叫叫无名搜,在网上打一下就会出来,很酷的下载网哦。下载漫画须看一下此网站上的教程,但是很简单,下载一个软件后,可从此网上从别的漫画网站下载几乎任何漫画,而且全部,很方便,我详情>>
本周FAMI通杂志预览图消息,日本一原在PSV平台上推出的恐怖冒险游戏《夜廻》及其续作《深夜廻》,将打包详情>>
极速打包这款游戏在昨天正式登陆了IOS平台,游戏内容丰富,可玩性高,画面也更加的精致。详情>>
极速打包是一款画面很不错的休闲游戏,拥有非常有趣的游戏方式以及丰富的游戏内容,目前在安详情>>
>《我的世界》中自动打包机是比较重要的一个工具,但是相信还有不少玩家对于这个工具还是比较陌生的吧,接下来小编就为大家带来自动打包机制作视频攻略,一起来看看吧!详情>>
《我的世界》中自动打包机是比较重要的一个工具,但是相信还有不少玩家对于这个工具还是比较陌生的吧,接下来小编就为大家带来自动打包机制作视频攻略,一起来详情>>
在我的世界服务器生存后期,挂机刷石头总是爆箱,今天小编就为大家带来玩家“光头敌法僧”分享的我的世界潜影箱打包机制作方法一览,详情>>
《DOTA2》MOD安装必备vpk打包工具补丁类型:游戏工具补丁语言:简体中文更新时间:2017/06/2816:26:55补丁大小:1.0KB游戏标签:战斗挑战对战这是《DOTA2》详情>>
《模拟农场17》动力打包机MOD补丁类型:游戏MOD补丁语言:简体中文更新时间:2017/11/1516:16:17补丁大小:39.8MB游戏标签:模拟轻松趣味策略相关补丁专题:模拟详情>>
王者荣耀情人节限定皮肤来啦!致敬经典大话西游,王者荣耀情人节限定皮肤“至尊宝”元宵节上架!而情侣详情>>