古詩詞大全網 - 個性簽名 - Xcode5如何生成ipa包

Xcode5如何生成ipa包

前提:

眾所周知,在Xcode上開發的程序只能在模擬器上運行,如果要放到真機上,需要花99美元購買開發者證書iDP。本文介紹的是上壹代Xcode4.6.3上的演示,為什麽要用上壹代版本?很簡單,ios7沒有實現流行越獄,所以很少有人用越獄ios7系統(大神除外)。為了運行Xcode5,既然沒有開發者證書,也沒有越獄,如果想在真機上免費運行自己的ipa文件,只有ios7越獄是唯壹的出路。所以,在沒有iDP的情況下,如果想在iPhone上調試程序,最終發布ipa進行共享,需要以下步驟:

1.為自己頒發證書,對生成的程序進行簽名;

2.修改工程配置和Xcode的配置文件和二進制文件,防止其驗證和簽名;

3.通過自定義生成步驟用偽造的證書對應用程序進行簽名;

4.用壹點技巧生成ipa文件;

5.妳需要越獄妳的ios6系統的設備,通過Cydia安裝ios4/5/6的AppSync。

工具:iphone4 6.1.2已經完美越獄,MacBook Pro13inch,Xcode4.6.3,plist編輯器(用於編輯Plist文件)。

正式進入正題:

首先,創建壹個證書

打開實用工具-鑰匙串訪問。然後單擊菜單欄中的“鑰匙串訪問”-“證書助理”-“創建證書”,打開向導。第壹步更重要。您必須將名稱命名為iPhone Developer,將類型設置為代碼簽名,並選擇“讓我覆蓋這些默認值”。以下步驟無需更改,只需壹直單擊“確定”和“繼續”即可完成該向導!

其次,修改Xcode的配置文件

1.請先按Command+Q完全關閉Xcode。

2.修改配置文件:

沿著此路徑找到SDKSettings.plist並編輯它:

/Applications/xcode . app/Contents/Developer/Platforms/iphone OS . platform/Developer/SDKs/iphone OS 6.1 . SDK/SDK settings . plist

在以下兩段中,將“是”替換為“否”。

& ltkey & gtCODE _ SIGNING _ REQUIRED & lt/key & gt;

& lt字符串& gt是& lt/string & gt;

& ltkey & gt授權_必需的& lt/key & gt;

& lt字符串& gt是& lt/string & gt;

3.按如下方式修改另壹個文件:

沿著此路徑找到Info.plist並編輯它:

applications/xcode . app/Contents/Developer/Platforms/iphone OS . platform/info . plist

將Info.plist中的所有XCiPhoneOSCodeSignContext修改為XCCodeSignContext,分別位於DefaultProperties分支、OverrideProperties分支和RuntimeRequirements分支下。

4.添加文件:

連接到互聯網後,在終端執行:

mkdir/Applications/xcode . app/Contents/Developer/iphone授權

CD/Applications/xcode . app/Contents/開發者/iphone授權

curl-O/iphone/gen _ entitlements . txt

mv gen _ entitlements . txt gen _ entitlements . py

chmod 777 gen_entitlements.py

如果沒有互聯網連接,可以在文件夾/applications/xcode . app/contents/developer下創建壹個iphoneentitlements文件夾,然後在這個文件夾中手動創建壹個gen_entitlements.py文件,並授予其執行權限(命令:sudo)。該文件的內容如下:

#!/usr/bin/env python

導入系統

導入結構

if len(sys.argv)!= 3:

print "用法:% s appname dest _ file . xcent“% sys . argv[0]

sys.exit(-1)

APPNAME = sys.argv[1]

DEST = sys.argv[2]

if not DEST.endswith('。xml ')和notDEST.endswith('。xcent’):

打印“目的地必須是。xml(對於ldid)或. xcent(對於codesign)"

sys.exit(-1)

權利= " " "

& lt?xml版本="1.0 "編碼="UTF-8 "?& gt

& lt!DOCTYPE PLIST PUBLIC "-//Apple//DTD PLIST 1.0//EN " "/DTDs/property list-1.0 . DTD " & gt;

& ltplist version="1.0 " >

& ltdict & gt

& ltkey & gt應用程序標識符& lt/key & gt;

& lt字符串& gt% s & lt/string & gt;

& ltkey & gt獲取任務允許& lt/key & gt;

& lttrue/>;

& lt/dict & gt;

& lt/plist & gt;

" " " % APPNAME

f =打開(DEST,“w”)

if DEST.endswith('。xcent’):

f . write(" \ xfa \ xde \ x 71 \ x 71 ")

f . write(struct . pack(' & gt;l ',len(權利)+ 8))

f .寫(權利)

f.close()

三、修改工程設置(真機調試閃回,請仔細看這壹步,這壹步是關鍵問題)

特別說明:在這個階段之前,您只需要修改配置文件並準備壹次腳本。但是這個階段的操作應該是每個需要真機調試的項目都要做的。

這壹步的主要作用是支持真機調試。如果不做這壹步,仍然可以通過step 5生成ipa運行在真機上,但是不能用Xcode內置的調試器壹步跟蹤運行在真機上的程序。如果您的程序點擊運行調試秒的時間,請檢查這壹步是否正確完成。

1.停用Xcode自動簽名操作。

將項目配置中的所有代碼簽名選項設置為不進行代碼簽名,如圖所示。您可能需要先單擊“全部”來顯示此選項。

2.添加自定義的後期生成腳本

在構建階段中添加壹個階段,在右下角添加構建階段,然後點擊添加運行腳本,進入如下腳本:

export CODESIGN _ ALLOCATE =/Applications/xcode . app/Contents/Developer/Platforms/iphone OS . platform/Developer/usr/bin/CODESIGN _ ALLOCATE

if[" $ {平臺名稱} " = = " iphone OS "]| |[" $ {平臺名稱} " = = " IP ados "];然後

/Applications/xcode . app/Contents/Developer/iphone entitlements/gen _ entitlements . py " my . company . $ { PROJECT _ NAME } " " $ { build _ PRODUCTS _ DIR }/$ { WRAPPER _ NAME }/$ { PROJECT _ NAME }。xcent ";

code sign-f-s“iPhone開發人員”-權利" $ { build _ PRODUCTS _ DIR }/$ { WRAPPER _ NAME }/$ { PROJECT _ NAME }。xcent " " $ { build _ PRODUCTS _ DIR }/$ { WRAPPER _ NAME }/"

船方不負擔裝貨費用

如圖所示:

現在配置完成,可以插上iPhone,重新選擇生成目標,測試在線調試了!如果是第壹次使用此設備進行調試,請在管理器中將設備切換到開發模式(iPhone右側的小綠燈亮起)。

第四,生成IPA文件

如果我的程序調試好了,怎麽發給別人?正常情況下,ipa文件是從Xcode的Organizer導出的,但是我們沒有證書,所以輸出會產生錯誤。我們只能用壹點技巧來完成這個操作。

首先生成作為發布目標的代碼,然後打開項目的輸出文件夾。通常這個目錄是以項目名/build/products/release-iPhone OS開頭的/Users/用戶名/library/developer/xcode/derived data/folder。這個目錄下有壹個xxx.app文件,就是生成的程序。把這個xxx.app拖到iTunes裏,它會出現在應用列表裏,再拖到iTunes列表外(比如拖到桌面),它就變成xxx.ipa了!發送這個。ipa給別人,每個人都可以和妳分享這個程序。