把之前寫的一個帖子內容轉到這裏來,寫得比較亂,有時間再整理整理。
ios
cocos2d-x項目編譯太慢太長一直很讓人詬病,特別是Xcode中的archive,要是再出幾回錯,就忒折磨人了,小小研究了下把基礎庫生成靜態庫嵌入到工程裏面的方法,提升cocos2d-x項目編譯速度,但願對一些人有幫助吧。
把cocos2d-x的cocos2d_libs工程從xcode遊戲工程中刪掉,用xcode單獨打開ccocos2d_libs工程,其路徑爲YourApp/cocos2d/build/cocos2d_libs.xcodeproj
選 擇target爲「build all libs for iOS」, 在其右先選擇模擬器,編譯工程。等編譯完成後,應該是已經生成五個靜態庫文件,可是在xcode裏面看多是紅色的,這是xcode的bug,選中任意一 個靜態庫文件,在xcode的界面右側顯示其詳情,能夠看到其路徑,路徑的最後一項多是Debug,而實際值多是Debug-iphoneos或者 Debug-iphonesimulator,複製這個路徑,去掉最後面的Debug,而後在終端裏面用open命令打開,就能夠看到生成的靜態庫放在 Debug-iphonesimulator下面了,一樣地,再選擇iOS Device進行編譯,生成的靜態庫會放在Debug-iphoneos裏了
Debug- iphonesimulator裏面的靜態庫是適用於模擬器的, Debug-iphoneos裏面的靜態庫是適用於真機的,這能夠經過相似於lipo -info libPrint.a的命令進行查看,爲了通用起見能夠將這二者進行合併,這樣生成的靜態庫既能夠在模擬器下運行,也能夠在真機下運行,合併的命令相似於 下面的:
lipo -create ./Debug-iphonesimulator/libCocosDenshion\ iOS.a ./Debug-iphoneos/libCocosDenshion\ iOS.a -output $OUTPUTDIR_PATH/libCocosDenshion\ iOS.a
方便起見,最好是寫一個腳本將5個靜態庫進行合併。
將5個靜態庫單獨放入工程路徑下的某個文件夾下,最好是你遊戲工程的cocos2d目錄下,而後在Build Phase裏的Link Binary with Libraries中添加這5個靜態庫。接着在build setting裏的header search path里加上頭文件路徑,好比我用的就是:$(SRCROOT)/../cocos2d/cocos/platform/ios,這樣可讓它本身去找頭文件,而後編譯就沒問題了。git
特別說明的是:生成的靜態庫很大,最大的靜態庫會超過1G,若是不是多人合做的話不建議加入到git或svn中
可否跟進cocos2d-x源代碼中打斷點呢?
shell
不是不可能也是有辦法的:
首先在cocos2d-x的工程中打上斷點 ,而後點擊view ->navigators ->show breakpoint navigators 後 右擊選擇你剛打的斷點,首先選擇 share breakpoint 而後點擊 move breakpoint to後選擇你運行的項目(據我測試應該是User)後,而後轉到你運行的項目debug便可
參考:http://www.cocoachina.com/ask/questions/show/4537/
以上說的是Debug模式,要發佈App時須要從新生成Release模式下的靜態庫,再添加到你的項目中發佈。也能夠一開始就把Debug靜態庫和Release靜態庫所有生成,一勞永逸xcode
附:靜態庫合併shell腳本bash
#!/bin/bash CURRENT_PATH=`pwd` OUTPUTDIR_PATH=./staticlibrary echo $CURRENT_PATH echo $OUTPUTDIR_PATH cd $OUTPUTDIR_PATH rm -f ./*.a cd $CURRENT_PATH lipo -create ./Debug-iphonesimulator/libCocosDenshion\ iOS.a ./Debug-iphoneos/libCocosDenshion\ iOS.a -output $OUTPUTDIR_PATH/libCocosDenshion\ iOS.a lipo -create ./Debug-iphonesimulator/libchipmunk\ iOS.a ./Debug-iphoneos/libchipmunk\ iOS.a -output $OUTPUTDIR_PATH/libchipmunk\ iOS.a lipo -create ./Debug-iphonesimulator/libcocos2dx-extensions\ iOS.a ./Debug-iphoneos/libcocos2dx-extensions\ iOS.a -output $OUTPUTDIR_PATH/libcocos2dx-extensions\ iOS.a lipo -create ./Debug-iphonesimulator/libbox2d\ iOS.a ./Debug-iphoneos/libbox2d\ iOS.a -output $OUTPUTDIR_PATH/libbox2d\ iOS.a lipo -create ./Debug-iphonesimulator/libcocos2dx\ iOS.a ./Debug-iphoneos/libcocos2dx\ iOS.a -output $OUTPUTDIR_PATH/libcocos2dx\ iOS.a