Unity 發布到IOS,Android的各種坑


Unity 發布到IOS的注意事項1.開發環境
MAC環境:Xcode環境 7.2.1
Unity環境:Unity5.3
2.基本說明
首先,我說一下,這是我在對Unity發布到IOS的實際使用中,總結出來的經驗!如果你想一次就發布成功,如果你想少走彎路,請仔細看我的說明。因為坑比較多!
由於Unity發布到IOS,是以Xcode工程的形式發布到MAC中,所以,在發布的時候需要注意以下幾點:
1. 發布的工程,需要以真機進行調試
(我發布的時候,選擇發布unity到模擬器版本,發布后無法用模擬器運行)
2. Unity發布真機:Build Settings->Player Settings->Other Settings->SDKVersion 選擇真機(不知道是哪個,可以有道翻譯一下)
3. Build Settings->Player Settings->Other Settings->ScriptingBackend 選擇IL2CPP支持64位
4. Build Settings->Player Settings->Other Settings->TargetDevice(這個如果只支持Iphone就選擇只有Iphone,如果支持Ipad,則發布到Itunes的時候,需要提交Ipad的相關信息如ipad截圖等。否則無法上線)
5. Build Settings->Player Settings->OtherSettings->Optmization->Api Compatibility Level 如果使用了文件一系列的操作,選擇.NET 2.0
6. Build Settings->Player Settings->Company Name 與Product Name的名字不要胡寫,審核不通過不要抱怨!!!!
7. Build Settings->Player Settings->Other Settings->BundleIdentifier不要胡寫,審核不通過不要抱怨!!!!
8. 發布前,注意需要把ICON與Splash Image設置好。要不發布后,還得重新發布,很麻煩。(Build Settings->Player Settings->Default Icon也要設置好)
發布到IOS中后,是一個Xcode工程!
現在,發布完成后,我們需要注意:
1. 這個程序只有真機可以調試。(如果發布為模擬器版本,那么在模擬器下應該是無法運行的)
2. 如果發布為模擬器版本,則該工程無法在真機上運行!
3. 如果沒有開發者賬號的童鞋,此刻可以百度(Xcode7 無證書真機調試)按照其中的方法,真機調試Unity程序
4. 如果有開發者賬號的童鞋,可以在蘋果開發者平台,導出真機調試證書進行真機調試
證書有很多,需要注意:
真機調試證書 (下載證書的時候,需要把測試設備的UDID加入進去)
沙盒測試證書 (該證書沙盒測試測試成功,至於是否可以提交審核上線,沒測試)
發布證書(該證書用於上線)
其中每個證書都不一樣,需要注意的就是,一個證書,請在自己電腦下申請一個鑰匙串再上傳生成證書。不要一個鑰匙串生成很多證書。
如何生成證書,以及如何使用,百度一下具體的操作。這里只講坑!!!!
坑1:有些童鞋的證書,生成后,下載到電腦里就是過期的,那么請點擊一下系統跟證書,其中有一個系統證書是過期的,這是因為蘋果在2016年2月份以后,需要所有的設備都支持64位系統,所以,如果你的電腦只有一個這個過期的證書,那么百度這個證書名字,下載新的證書。 如果你電腦有兩個相同的證書,一個過期,一個沒過期,那么直接刪除那個過期的證書。這個證書的名字是:apple worldwide developer relations vertification authority
坑2:程序寫完,測試完成,上傳到APP Story的時候,使用 XCODE上傳工程,則,顯示上傳成功,其實根本就沒有上傳成功
解決方案:使用Application Loader 打包IPA后上傳。(具體方法度娘)
坑3:Unity不要使用prime31 storekit 破解版的內購插件!
原因:因為這個插件,現在網上最新的也就是2014年的。 那時候,蘋果還不要求你的程序必須都支持64位系統。所以,如果你使用這個插件,沙盒測試是可以測試成功的,但是你就是提交不上去。!! 使用64位編譯器編譯,這個插件怎么折騰 也無法編譯過去。除非你是土豪,70美金買這個付費版。那我沒話說。
這里我推薦一個蘋果內購插件:免費的,而且可以用。
具體下載鏈接:http://pan.baidu.com/s/1pLUXLGn
使用方法:將AppStore預置件拖入到場景中,在你要購買的按鈕上綁定BuyBtn腳本
Iap ID 輸入你內購的ID(在ITunes中添加的id) ObjName (購買成功后通知的物體名)
Fun Name(購買成功要通知的方法) 其實這就是一個SendMessage
看到這里,你還要注意:
發布到Xcode后,使用這個插件還是無法編譯通過? 為什么呢 因為這個插件是使用的手動ARC釋放,不是使用蘋果的自動ARC釋放,所以,你需要在Xcode中設置這個插件中的類為不使用ARC釋放
這里需要注意:只對3個文件不使用ARC 如果你對整個工程都不使用ARC,那么,這個程序直接崩潰
在Xcode中 選擇項目的Tagets->選中BuildPhases,在Complie Sources中選擇SKProduct LocalizedPrice 與InAppPurchaseManager雙擊他們,在后方輸入-fno-objc-arc(如果找不到這個文件可以手動將這兩個文件添加進Complie Sources,或者直接編譯,不成功后,這里就出現這兩個文件了)

內購測試:
坑1:一定要填寫好銀行信息,才能內購測試,否則,無法測試 銀行信息需要咨詢銀行你的聯行號!
坑2:你的信用卡 包括你購買開發者賬號,在中國,必須是雙幣種信用卡,全幣種的不能付費與收款
坑3:內購添加沙盒測試賬號!(土豪請無視)
發布注意:
隱私政策網址:百度文庫找一篇然后輸入連接就可以
公司網址:填寫你個人博客的地址就可以
UnityADS廣告:
這東西吧,你添加進來以后,就不好刪了,如果添加后,輸入好在unity中的ID就可以了 發布的時候,把測試按鈕點擊false

Unity 發布到Android的注意事項開發環境
Unity端 Unity5.3
Android端 eclipse
廣告SDK:百度廣告SDK
總體說明
首先,我說一下,這是我在對Unity發布到android的實際使用中,總結出來的經驗!如果你想一次就發布成功,如果你想少走彎路,請仔細看我的說明。因為坑比較多!
由於Unity發布到andorid如果你不接廣告,那么直接發布就可以,如果你要接其他SDK或者是廣告,那么需要以google android project方式發布成android工程:
1. Build Settings->Player Settings->Other Settings->ScriptingBackend 選擇Monox
2. Build Settings->Player Settings->OtherSettings->Optmization->Api Compatibility Level 如果使用了文件一系列的操作,選擇.NET 2.0
3. Build Settings->Player Settings->Company Name 與Product Name的名字不要胡寫,審核不通過不要抱怨.
4. Build Settings->Player Settings->Other Settings->BundleIdentifier不要胡寫,審核不通過不要抱怨.
5. 發布前,注意需要把ICON與Splash Image設置好。要不發布后,還得重新發布,很麻煩。(Build Settings->Player Settings->Default Icon也要設置好)
6. Build Settings->Player Settings->PublishingSettings->Keystore設置好,不設置的話是debug模式,很多平台無法發布。當然,也可以在eclipse中進行包簽名
7. 64為的unity好像無法設置Splash Image 當然也有可能是我機器的問題
8. 廣告啊,付費什么的,不要使用第三方 unity包.(因為第三方包,打包的時候,包名與你的工程名稱並不對應,你發布后,icon與splash也會無法顯示,這個你需要修改AndroidManifest .xml的設置,有很大可能SDK中的功能也無法使用)
Eclipse中的坑
1.Android SDK與Andorid開發插件的版本需要一致.
如果不一致,你新建的工程,src中與res-> layout中沒有文件(百度下載一致的工程文件也可以,不過需要注意不要太舊,要不與unity發布的SDK版本不對應)
2.Unity調用Android的包, 你寫了一個SDK想讓Unity調用,需要注意的是:打成Jar包的時候,只打src 與res文件夾! 因為5.0以后版本的unity 如果你全打包,那么會有很多.classes文件,unity是無法編譯通過的
3.android的包名需要與Unity中的一致.
4.android-support-v4 需要與sdk中的一致,否則eclipse無法編譯通過
5. 注意第三方SDK:
這點需要特別說明,我第一次調用百度SDK的時候,廣告都介入完畢,怎么都調用不出來。起初我還懷疑是UnityPlayerActivity修改了Activity的方法,所以無法調用。后來仔細觀察,發現百度的Demo中,將顯示廣告的方法寫在了 Print Log方法中,特別的坑。所以大家需要注意!
6. 360平台你必須使用它的廣告SDK,而且還不能帶其他廣告的SDK.包括ADS,ADS關閉很麻煩,需要刪除編譯器中的ads模塊 unity也是坑
7. Unity有可能出毛病,有時候,你總發布,總發布不過去,你重啟下unity就能發布過去。很坑.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM