Xcode打包ipa小結

一.拿到一個新的蘋果帳號之后,我之前的做法是直接去蘋果官網生成證書(包括生產和測試證書),后來發現直接用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里的那個詳情頁面下載


生成的PP文件:狀態可用

接下來回到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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,786評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,656評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,697評論 0 379
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,098評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,855評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,254評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,322評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,473評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,014評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,833評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,016評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,568評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,273評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,680評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,946評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,730評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,006評論 2 374

推薦閱讀更多精彩內容

  • 引言 關于開發證書配置(Certificates & Identifiers & Provisioning Pro...
    奮斗的蝸牛閱讀 7,466評論 2 20
  • 1.首先通過鑰匙串訪問——證書助理——從證書頒發機構請求證書——填寫證書信息(郵箱,常用名稱,存儲到磁盤)——存儲...
    DanDanC閱讀 7,976評論 5 15
  • 公司的帳號是企業帳號,開發的app不需要上傳到App store,而是直接打包成ipa包提供給公司內部使用。我參考...
    那個女孩_T閱讀 5,383評論 1 3
  • 昨晚我跟我愛人說,每次我都認為我正在經歷的狀況就是最糟糕的,以后會越來越好的。可是每次一個體驗結束,都會有更...
    安琪Sara閱讀 418評論 2 0
  • 我往北飛,向南說再見。 時間倒退到一年前,大家都還每天埋頭在各種模擬卷里,仍然在為月考的排名而苦惱,一邊背著單詞,...
    alma飯團閱讀 256評論 0 0