首先,Unity打包IOS必須條件:ios
Unity3D下載了IOS平臺
下載了XCode軟件(必須是MacOS 系統)
在蘋果開發者中心註冊了開發者賬號服務器
第一步:註冊蘋果開發者賬號;app
Unity3D下載IOS平臺和XCode下載就不介紹了,直接開始開發者賬號申請
注意:賬號是收費的,一個是我的版或者公司版,一個是企業版(瞭解到APPLE的政策是,要發佈到APP STORE必須用99美圓的我的版或公司版Apple Developer Programs,要在非商店外下載只能使用299美圓的企業版iOS Developer Enterprise)ide
註冊地址:https://developer.apple.com/membercenter/index.action
註冊說明:https://developer.apple.com/cn/support/app-account/測試
註冊前準備:ui
- 2個郵箱(299美圓的必須是公司域名郵箱)
- 鄧白氏編碼DUNS
註冊流程:
註冊APPLE ID → 註冊鄧白氏編碼 → 獲取鄧白氏編碼後繼續驗證APPLE ID的公司信息 → 等待APPLE官方審覈資料 → 審覈經過,繳費 → 收工 編碼關於鄧白氏編碼3d
- 一個鄧白氏編碼能夠註冊多個APPLE 開發者帳號
- 經過APPLE的連接申請鄧白氏編碼,基本上一週左右就可得到。其中鄧白氏那邊會打電話給你覈實身份,而後發郵件給你要補充公司信息,這個公司信息到時候APPLE驗證DUNS編碼時會用到,兩邊最好一致,不然修改麻煩。
- 新的鄧白氏編碼,請注意嘗試次數不要超過3次,超過次數編碼會被鎖住,解鎖及註冊方面問題請找蘋果客服
第二步:註冊完成後調試
注意一下幾點:code
- appID,這是每個應用的獨立標識,在設置項中能夠配置該應用的權限,好比是否用到了PassBook,GameCenter,以及更常見的push服務,若是選中了push服務,那麼就能夠建立生成下面第3條所提到的推送證書,因此,在全部和推送相關的配置中,首先要作的就是先開通支持推送服務的appID;
- 推送證書(分爲開發和發佈兩種,類型分別爲APNs Development ios,APNs Distribution ios),該證書在appID配置中建立生成,和開發者證書同樣,安裝到開發電腦上;
- Provisioning Profiles,這個東西是頗有蘋果特點的一個東西,我通常稱之爲PP文件,該文件將appID,開發者證書,硬件Device綁定到一起,在開發者中心配置好後能夠添加到Xcode上,也能夠直接在Xcode上鍊接開發者中心生成,真機調試時須要在PP文件中添加真機的udid;是真機調試和必架必備之珍品;
- 日常咱們的製做流程通常都是按以上序列進行,先利用開發者賬號登錄開發者中心,建立開發者證書,appID,在appID中開通推送服務,在開通推送服務的選項下面建立推送證書(服務器端的推送證書見下文),以後在PP文件中綁定全部的證書id,添加調試真機等;
*CRS文件建立:
或者
進入
CRS文件已經生成好了
3.進入開發者設置界面
* certificates(證書)
選中All,接着點擊右上角的加號,咱們先來建立開發者(真機調試)證書,提交證書和調試證書建立步驟幾乎同樣
這裏咱們Development類型證書,(用於真機調試)。選中以後進入下一個頁面:
這裏會提示你選擇建立好的CRS文件,選擇上面建立好的CRS文件,點擊continue提交,就生成證書
下載下來保存到你對應得文件夾就行了,暫且不要雙擊安裝,後面會講解安裝證書和配置文件
注意:證書最好不要建立多個,不易於管理
* identifiers(App ID)
配置App的Bundle ID,就是和XCode中對應的那個Bundle ID, 點擊左邊的視圖identifiers下面的App IDs
點擊標記2,添加AppID,設置AppID名稱
設置Bundle ID
生成Bundle ID 的設置
App ID建立好以後,不須要去動它,也會在後面用到
* Devices(設備ID)**
添加你要真機調試的設備ID
設置手機名稱和UDID,UDID獲取經過手機鏈接電腦,打開iTunes軟件,點擊序列號字母處,顯示的就是UDID
* profiles(配置文件)**
配置證書的最後一步,生成profiles,這個profiles其實最終是安裝到Xcode裏的,它關聯證書、App ID、和Device ID,把前三者結合起來,生成一個可安裝的配置文件,用於Xcode進行真機調試,用於發佈應用也同樣,在進行App打包生成ipa文件時,也會去驗證你的證書和profiles,這也是你可否打包成功的關鍵。
點擊第四個模塊(profiles)下面的All選項,建立profiles:
開發者證書的配置完成。
注意:最終配置完成後只需下載兩個文件:一個就是第一個模塊裏面的開發者真機調試證書、而後就是第四個模塊裏的profiles文件,把這兩個文件下載下來,保存好避免遺失,以便接下來在Xcode中配置和使用。(PS 放好這兩個文件,記住他們的位置)
第三步:Unity打包;
切換到IOS平臺,進行設置
點擊Player Settings ->Other settings 設置
第四步:用你打包時候選的Xcode版本打開你剛纔Build的包
其實,Xcode已經幫咱們作了不少配置,只須要咱們設置如下配置:
1.點擊 Product->Scheme->Edit Scheme 或者進入下面界面,並點擊Archive,確保Build Configuration 爲 你在Unity中的選擇保持一致
- Display Name:設置你的App名字
- Bundle Identifier:設置Build ID,來自你在註冊蘋果開發者賬號時Bundle ID保持一致。而且與Unity保持一致
- Version:App版本(與Unity設置保持一致)
- Build:版本號(與Unity設置保持一致)
2.TARGETS->Identity->Team Team選擇你註冊時對應的App ID 賬號。
PS:能夠不用選擇註冊相應證書時對應的 Apple ID 賬號,並且選擇別的對應/非對應賬號也都沒問題。
3.TARGETS->Build Setting->Code Signing
基本不用設置,默認配置好的,若有須要可更改設置
其中下方的 Provisioning Profile 可使用默認的 Automatic,也能夠指定對應的描述文件。(通常咱們使用Automatic)
注意:若是用USB將手機鏈接到電腦,手機端打開開發者模式,選擇鏈接的手機,直接點擊Xcode運行,就會打包到你鏈接的手機上,後續步驟可省略。
4.Archive設置;只能選擇iOS Device,選擇其餘模擬器是不能Archive的
等會,Archive會彈出
5.Export 導出;點擊上圖中的「Export」,以下所示,很顯然第一個選項是發佈app的,不要點,那是我的開發者帳號能夠乾的事情。
上圖四種選項:
- Save for iOS App Store Deployment:保存到本地 準備上傳App Store 或者在越獄的iOS設備上使用
- Save for Ad Hoc Deployment:保存到本地 準備在帳號添加的可以使用設備上使用(具體爲在開發者帳戶下添加可用設備的udid),該app包是發佈證書編譯的(The app will be code signed with the distribution certificate.)
- Save for Enterprise Deployment:這種主要針對企業級帳戶下 準備本地服務器分發的app
- Save for Development Deployment:針對內部測試使用,主要給開發者的設備(具體也爲在開發者帳戶下添加可用設備的udid)。該app包是開發證書編譯的(The app will be code signed with your development certificate)
點擊Next,繼續,選擇存放路徑,繼續
點擊Next,IPA就打包成功了。
附:app須要使用手機的某些功能或者應用的時候,須要受權才能夠訪問,下面將展現一些info.plist上經常使用的一些受權。
bool類型是YES的,這個是容許訪問http的網址下面是以上受權的代碼形式,能夠直接拷貝到info.plist文件中:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> <key>NSContactsUsageDescription</key> <string>請求訪問通信錄</string> <key>NSMicrophoneUsageDescription</key> <string>請求訪問麥克風</string> <key>NSPhotoLibraryUsageDescription</key> <string>請求訪問相冊</string> <key>NSCameraUsageDescription</key> <string>請求訪問相機</string> <key>NSLocationAlwaysUsageDescription</key> <string>始終訪問地理位置</string> <key>NSLocationWhenInUseUsageDescription</key> <string>在使用期間訪問地理位置</string> <key>NSCalendarsUsageDescription</key> <string>請求訪問日曆</string> <key>NSRemindersUsageDescription</key> <string>請求訪問注意事項</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>請求訪問藍牙</string> <key>ITSAppUsesNonExemptEncryption</key><false/>
注:至於TestFlight測試和上線,後續再介紹。