使用XCode6.0.1將Cocos2d-x3.1工程打包ipa(支持iOS8)

據說iOS8需要使用XCode6.1打包,因爲還未升級,暫時研究了幾天,先把筆記整理下,以備以後使用方便,由於本人沒有iphone,沒有蘋果企業證書,所有的東西都是東拼西湊的,所以打包成的ipa沒有真機測試。如果失敗,那只有再研究了。

因爲需要升級之前3.1工程的項目支持iOS8,這兩天暫時研究了一下ipa的打包(之前都是別人弄的,第一次自己打包,還是很費勁)所有,就有了這篇文章,如果可能,讓大家少走彎路,把時間儘可能多得放在寫代碼上,不過還得吐槽一下:蘋果搞這一套真是費事費力。

1、問題1:3.1工程暫時不支持iOS8

因爲3.1的時候iOS8還未發佈,所以,3.1尚不支持iOS8,由於iOS8底層做了部分改動,可能在編譯3.1工程到模擬器或真機上時會遇到這篇文章中的問題,可參考這篇文章解決。

2、問題2:如何用企業證書打包成ipa

由於本人爲註冊蘋果開發者,企業賬號也是之前朋友給的,所以,這裏打包ipa可能步驟不是很正規,且沒有經過真機測試

1)首先,獲取證書和mobileprovision文件

證書需要雙擊,輸入證書的密碼,然後導入Mac下的工具,如下圖:

2)打開工程,導入證書

打擊XCode左側列表的工程名,顯示下面的界面,我們選擇TARGETS下的XXX  iOS,找到Code  Signing下的Code  Signing  Identity

在第一步上面,將active scheme設置爲iOS Device,只要選擇它纔可以打包
第四步是導入mobileprovision
第五步是導入證書,
經過上面2步,我們打開上圖中的General,如下圖所示

1、是包名
2、持有是企業證書的team
3、是mobileprovision的名稱
4、該證書對應的包名
問題就在第4步,證書與包名不符,那麼,怎麼解決,如果這個企業證書是你的,那麼點Fix  Issue重新簽名一個證書就好了,如果不是,那麼只能重新創建工程了。

3)重新創建與證書對應的包名工程,重複1)和2)

再次打開General發現包名還是不對,因爲XCode使用的包名是動態變量給賦值的,所以,我們直接修改就好了(不知道上一步直接修改包名好不好使,沒試過,有興趣的可以試試)。這個時候,需要打開上圖Info對應下的頁面,直接修改Bundle  identifier內容即可

可能只需要修改最後面的就可以了,不過,我使用的時候,後面默認有個-iOS灰色的,所以需要修改Bundle  identifier,沒有遇到這個問題的可以不用該,如果不懂的參考這裏
修改完了包名和導入證書,完事具備,那就開始打包吧!

4)修改Edit  scheme爲release


1、選擇Edit  scheme,並且後面的平臺選擇iOS  Device
2、Build  Configuration爲Release

5)選擇Product->Archive(必要的話,可以clean下工程)

接下來就是漫長的編譯過程,在此過程中可能還會遇到不支持arm64解決方案,部分錯誤碼如下:
[plain] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. Undefined symbols for architecture arm64:  
  2.           "_WebPGetFeaturesInternal", referenced from:  
  3.               WebPGetFeatures(unsigned char const*, unsigned long, WebPBitstreamFeatures*) in libcocos2dx iOS.a(CCImage-5287FE6734B2FA44.o)  
  4.           "_WebPInitDecoderConfigInternal", referenced from:  
  5.               WebPInitDecoderConfig(WebPDecoderConfig*) in libcocos2dx iOS.a(CCImage-5287FE6734B2FA44.o)  
  6.           "_png_get_io_ptr", referenced from:  
解決辦法是打開工程目錄,找到cocos2d/external,在此目錄下搜索_arm64.a的文件,然後將搜索到的文件拖到XCode工程目錄的FrameWorks中去,彈出的對話框選擇Copy  items  if  needed和Create  groups兩個選項;可參考這裏

6)重新clean執行Archive

如果順利的話,XCode已經幫我們生成了下面的xxx.xcarchive文件,還是那句話,如果你是企業證書持有者或者team成員,直接選擇導出即可,如果不是,那只有另尋它路了。cocoschina上找到一個方法,我就是按照這個方法做的,所以,不確定此法是不是好用。


這個頁面也可以通過XCode標題欄的Window->Organizer找到。
上圖中,就可以看到我們的xxx.xcarchive文件了,可以選擇Export導出ipa,這需要重新認證一下
cocoschina上的做法是:
1、右擊生成的Archive文件,即“name”下面那些文件,選擇Show  in  Finder
2、右擊xxx.xcarchive文件,顯示包內容,找到真正的xxx.app
3、將xxx.app拖到itunes中,此時就會在iTunes目錄下生成ipa文件了
4、在iTunes中右擊我們拖進去的xxx.app,在Finder中顯示,找到了生成的ipa文件了就。

3、總結

以上方法的可行性由於沒有真機測試,暫時無法獲得證實,不過步驟1-5都是總結網上的教程而成。
參考資料:
1)http://blog.csdn.net/yuxikuo_1/article/details/41278857
2)http://blog.csdn.net/justinjing0612/article/details/8758692
3)http://www.58player.com/blog-2527-123901.html
4)http://www.cocoachina.com/bbs/read.php?tid=234530

本人菜鳥一枚,以上方法可能並不正規,僅以總結學習過程記錄。如有更好的方法,歡迎交流。

----------------2014年11月21日17:11---------------------
真機測試打包的ipa卻是可以安裝上,但是不知運行過程中是否還會有其他問題。待觀察。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章