最近,SDK支付等接入差很少了,就從Unity3D生成IPA (企業版License), 然,須要手動執行的PostEvents居然多大10項+, 這些我默默的承受了1周時間,每次約浪費20分鐘-額外的。ios
週末用了2天時間,研究一下官方的例子和雨鬆的相關博客2篇,總算是搞定了這件事情,開心!git
Unity3D導出爲XCode工程後,有以下任務須要作github
Plist 文件中api
<key>CFBundleDevelopmentRegion</key> 中文xcode
<string>zh_CN</string>微信
<key>CFBundleIdentifier</key> AppIDide
<string>com.aaa.${PRODUCT_NAME}</string>函數
<key>CFBundleShortVersionString</key> 版源碼分析
<string>1.0</string>學習
<key></key> 白名單
<array>
<string>weixin</string>
</array>
URL Schema
Build Setting
證書
FrameWorks
Header search
AppDelegate文件:
#import header.h
DoFinish
OpenURL
首先在Unity3D官方社區一番搜索、學習,大體明白要搞定這些繁瑣的事情,我不是一我的在戰鬥,有不少國際友人也頭疼於此,呵呵。
方案1: Unity3D官方的 開源的 XcodeAPI
方案2: 社區火熱的XUPorter 方案,連雨鬆都力挺(Unity3D研究院之IOS全自動編輯framework、plist、oc代碼(六十七))。
我這裏用了微信IOS支付、支付寶微信支付、調用IOS照相機、蒲公英 應用內測SDK,故要經過PostEvents完成之。
https://bitbucket.org/Unity-Technologies/xcodeapi/src/ 下載,註冊帳號,或者點擊左下角的Downloads。
把XcodeAPi源碼,放在Editor文件夾下
新建一個文件IOSPostBuildProcessor.cs ,添加[PostProcessBuild]標籤函數
[PostProcessBuild] public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject)
proj.AddFrameworkToProject(target, "StoreKit.framework", true);
proj.AddBuildProperty(target, "HEADER_SEARCH_PATHS", "$(SRCROOT)/Libraries/Plugins/iOS/AliPay/AliPaySDK/");
rootDict.SetString("CFBundleDevelopmentRegion","China"); //change en=>chinese
PlistElementArray array = rootDict.CreateArray("LSApplicationQueriesSchemes"); array.AddString("weixin");
OpenURL添加 PlistElementArray array1 = rootDict.CreateArray("CFBundleURLTypes"); PlistElementDict dic = array1.AddDict(); dic.SetString("CFBundleTypeRole", "Editor");
dic.SetString("CFBundleURLName", "weixin"); PlistElementArray array2 = dic.CreateArray("CFBundleURLSchemes");
array2.AddString("wx666662196cb2222"); //weixin
讀取UnityAppController.mm文件,謝謝雨鬆的啓發–XClass 類庫 XClass UnityAppController = new XClass(filePath + "/Classes/UnityAppController.mm");
//在指定代碼後面增長一行代碼: import "header.h"
UnityAppController.WriteBelow("#include \"PluginBase/AppDelegateListener.h\"","#import \"WeixinPayIOSWrap.h\" \r #import <AlipaySDK/AlipaySDK.h> \r #import <PgySDK/PgyManager.h>");
如今執行Unity3D生成XCode工程,在生成XCode工程完成後,會自動調用Editor下面的[PostProcessBuild]標籤,執行代碼(可Debug調試)。
http://git.oschina.net/xifarm/
如今,我僅僅須要Unity3D導出爲XCode工程,而後選擇企業證書,便可:Product–Archive–export了。輕鬆了許多;代碼雖然僅僅100多行,可是對工做的改進,的確能每次少浪費20分鐘時間,這是一次極好的經過業餘實踐,改善工做流程,從而減小無效加班的事情,開心。 下次再見到雨鬆的話,好得請他喝一杯–大杯,謝謝XClass 源碼。