一.拿到一個新的蘋果帳號之后,我之前的做法是直接去蘋果官網生成證書(包括生產和測試證書),后來發現直接用xcode進行證書的生成也挺方便,而不用再去官網了。直接開始吧 ?O(∩_∩)O~~
1.xcode->preference->account->點擊左下角的加號添加appid。
2.添加成功之后在你對應的appid右下角->view Details->
進入到詳細頁面
點擊create 就可以創建這個蘋果帳號下面的開發證書和發布證書,這時候你的證書在蘋果官網其實也已經生成了,這時候你回到官網去,會發現你剛剛創建的兩個證書
這時候你會發現下面是空的,因為PP(Provisioning Profile)文件還沒有生成,而要生成PP文件就要去官網生成了,以上就生成了證書。
二.這個步驟來生成identifier
? ? ? ?進入官網
選擇APP IDs->點擊右上角加號->填寫name 和 bundle id
name一般可以根據自己的項目起,這個是自己規定,bundle id 注意要和自己xcode 中的保持一致這個很重要,如果有推送功能,這個頁面的下面要把那個推送選項打勾。這一步就完成了identifier的配置
三. 這一步添加自己的設備uuid。
? ? ? 根據官網提示,輸入一個你的設備名稱,再通過xcode查看你的設備的UUID,粘貼過來,然后直接點擊Register 設備就注冊好了。
四. 生成PP文件(重要)
? ? ?這一步的作用是把前幾步生成的證書,id,設備,這三個要素進行關聯,當然如果是生成發布用的PP文件的話就沒設備什么事情,點擊進入操作頁面后點擊后上角的加號,然后根據需要選擇開發或發布
第1步將id綁定進入PP文件,選擇自己的APP ID。
第2步將證書綁定進入PP文件。
第3步選擇設備。(這一步驟在生產PP的生成過程中不用,因為生產面向所有用戶)
第4步給PP文件起名,就好了這個名字要起的有意義,最好根據自己的應用來取。
第5步點擊完成。當然也可以下載,我一般是不下載直接去xcode里的那個詳情頁面下載
接下來回到Xcode中,在Xcode里進行PP文件的下載,一般點擊左下角的Download All(如果你新添加了一個設備,那么就要在官網中重新編輯一下PP文件,添加所有的設備信息進入PP文件,在下圖中就會出現最新的PP文件,你直接Download All 就好了),當上面 Action那一列的Download消失后就說明下載好了然后點擊Done就可以了
至此,證書和配置文件都已經準備妥當接下來就可以打包成ipa文件或者直接在真機上運行了當然xcode7之后可以用免費的個人帳號來運行,這里只是一種方式都可以
五. 做好了上面的準備工作就可以進行打包了這里以打成ipa的包為例來簡單說明一下
? ? ? ? ?Xcode->Targets->General->Identity中進行填寫,填寫你的bundle id ,注意要和官網上剛剛填寫的一致,并在Team中選擇對應的賬戶,然后進入Build settings->Code Signing
選擇如圖所示(注意Provisioning Profile 選擇 Automatic,當然這里如果沒有選擇自動,而是選擇了你生成的具體的PP文件名稱,那么上面的Code Signing Identity 也要和這個寫成一致,否則在general界面會有報錯 ),就可以了,然后進行最后一步,打包ipa,如圖
以上操作就是完整的一個證書配置和打包的過程,最后說明一下下圖
第一個是上傳到App Store 要選這個,我們一般開發階段是選第四個,第二個本人測試和第四個是一樣的(發現第二個打包的時候你無論是用發布證書還是用測試證書都可以正常打包,而且可以安裝到手機),都可以成功安裝到手機上,第三個是企業帳號打包時候的選項
一步一步next,最后起名字,導出就圓滿結束了。
如果感覺對你有用,就給個愛心吧, 呵呵。
小點:xcode8推出了證書自動管理功能(默認是生成開發模式的不是生產模式的),開發環境打包都OK,就是過了一段時間準備上線的時候,打生產包出現問題,上到蘋果官網查看,兩個配置文件都已經失效,很奇怪,就重新編輯生成了配置文件,然后改用手動管理方式才解決。
附:
初次打包時可能會遇到的問題:no identity found 感謝原作者
二.小記
打包的過程很瑣碎,一段時間不打包就會忘記一些流程,特記錄最近打包的一次流程以便后續查閱。
1.證書按價格分2種,99和299,99是公司或個人的,分發方式是appstore,299是企業的,適用于大企業,比如內部辦公軟件,不公開的,而且299的不允許上appstore。
2.按組織形式來說,個人,公司,企業證書打包流程基本一致,開發證書都是需要進行設備注冊的,上限都是100臺,否則無法安裝到手機上,而發布證書是不需要進行設備注冊的。
3.打包具體步驟,文章第一部分已經寫了通過xcode進行證書生成,但是有個問題,網速慢的時候會發現證書生成頁面總是加載不了,可以切換成通過官網的形式來執行整個流程,大致流程為:官網證書頁面從上到下依次執行,首先創建證書,三種形式的創建方式一樣,本步需要上傳自己電腦生成的Csr文件,第二步創建id,包括填寫name,和bundle id (本步需要注意開發證書一般要進行多個設備的調試,可以選擇寫個通賠符的,即那個wizard,而發布證書則要是唯一的那個),第一步certificate和第二步identifier之間不存在聯系,他們是獨立的,證書的作用到底是什么,推測是蘋果為了進行設備綁定,讓一個證書不能多個人使用,后續會提到。第三步設備注冊只有開發證書需要,第四步配置文件,就是將前幾步進行串接,整合成profile文件,可以發現生成配置文件的步驟正是前幾步的組合。
4.將生成的配置文件和證書下載,點擊打開(文件閃一下證明已打開)在xcode中配置時首先寫對你剛才第二步填寫的bundle id,然后再選擇組織,當然xcode8之后證書可以自動管理,建議開發中可以選擇自動模式,發布時選擇手動,便于控制,之前遇到過一些問題發現的,如果是手動的話要在xcode設置中的code signing中選擇你的證書和配置文件。
5.如果證書是別人在管理,我們去蘋果官網上生成時會發現證書生成第一步是灰度不可選,暴力的方式是把別人的刪除掉,昨天剛剛在299的賬號上發現開發證書只能生成一個,然后就做了一回壞人,把其他的證書都刪除了,當然僅僅是開發證書,生產證書萬萬使不得,如果證書不是自己管理又不能刪除呢?就只有讓證書管理者,即第一次生成證書的那個人將證書導出成.p12 文件(反正開發中或者發布的時候,直接從蘋果官網下載的別人生成的證書是不用不了的,是自己曾經踏過的坑,直接下載了別人已經生成好的證書,自己只是生成了一個新的配置文件,這種情況xcode中會報錯,例如:No certificate matching 'iPhone Distribution:冒號后面是某某公司的名字,并且你會發現,你點擊開Provisioning Profile那個下拉框的時候,發現你生成的那個配置文件也是Ineligible(不可用)原因就是沒有與之匹配的證書,解決辦法就是要么自己從頭生成證書(如果你是證書管理者),要么讓證書管理者提供打包好的P12文件(鑰匙串文件以及證書文件)和描述文件(mobileprovision)),這樣需要用到的人就可以直接在自己電腦上進行打包了。等想到了再寫吧,腳蹲麻了。
問題(只有p12文件)和場景(299的發布證書)
1.證書有專人管理時,最好的辦法是證書管理者將p12和配置文件一起提供,如果只提供了p12文件,怎么辦?
其實p12相當于是個共享模式的證書,也就是證書已經有了,不用再自己生成了,那么就可以在蘋果官網中直接進行第二步,創建 APP ID ,這個和證書是獨立的,沒有任何的關系,各是各,注意發布證書的bundle id要是唯一的,而不能是通配符形式的。
生成APP ID后,如果是發布證書(和設備就沒有任何關系了)就直接去生成配置文件,根據提示一步步操作就好了。
企業證書(299)的發布證書在生成ipa時,不能進行validation ,提示帳號沒有權限,如圖:
查了一下,stackoverflow上說的蘋果目前不支持這種,后來就不進行validate,直接進行ipa打包,然后上傳到蒲公英,就可以了。
用命令行自動打包
我們的工程名為 CDesk
首先打開終端進入指定文件夾:CDesk.xcodeproject? 所在的文件夾,然后輸入命令:
1.? ? xcodebuild -project CDesk.xcodeproj -target CDesk -configuration Release
** BUILD SUCCEEDED ** ? (看到這個字樣證明打包成功)
?2.利用xcrun 命令進行簽名相關操作 ? ?直接打包后將ipa包放在桌面,如果執行成功,會發現桌面生成了 .ipa
xcrun -sdk iphoneos -v xcodebuild -exportArchive ./build/Release-iphoneos/CDesk.app -o ~/Desktop/CDesk.ipa