1. 程式人生 > >Unity 釋出到IOS,Android的各種坑

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就能釋出過去。很坑.