1. 程式人生 > >Xcode打包遇到的坑

Xcode打包遇到的坑

一、file was built for archive which is not the architecture being linked (armv7s)

專案是基於cocos2d-x繫結lua進行開發的,需要引用liblua.a靜態庫,編譯的時候報上面的錯。需要將liblua專案中的build Settings配置項中的“Build Active Architecture Only”改為YES  (是否只編譯當前適用的指令集)

這個屬性設定為yes,是為了debug的時候編譯速度更快,它只編譯當前的architecture版本。
而設定為no時,會編譯所有的版本。
這個是裝置對應的architecture:
armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5, iPod5

編譯出的版本是向下相容的,比如你設定此值為yes,用iphone4編譯出來的是armv7版本的,iphone5也可以執行,但是armv6的裝置就不能執行。

目前IOS的指令集

armv6    iPhone、iPhone2、iPhone3G、第一代和第二代iPod Touch

armv7    iPhone4、iPhone4S

armv7s   iPhone5、iPhone5C

arm64    iPhone5S

二、巨集定義

c++程式碼中很多地方是通過巨集控制的,所有對於巨集的檢查要很仔細。Debug、Release二個版本的巨集定義是不一樣的,要注意有所區別。所以這裡定義出了問題,那自然build測試時跟預期的不一樣,而且很難定位問題

三、Search Path

這裡很容易出錯,比如接入第三方SDK時需要引入相應的.framework檔案。這裡的路徑最好使用相對路徑(比如使用${SRCROOT}),以避免切換另外一臺mac時使用者名稱不一致導致無法編譯,需要重新修改路徑的問題。

標頭檔案,這裡記得補全,不然編譯時就會報找不到標頭檔案…

最後一個Library Search Paths比較坑,被這個坑了比較長時間。我使用workspace跟直接開啟xcodeproject生成的靜態連結庫路徑不一樣,然後切換的時候,在這裡並未刪除相應的路徑,導致一直優先從舊的.a庫中檢視,結果可想而知。無論我怎麼去清理、重新編譯,都無法看到改動後的效果

…/xx.a

../xx/xx.a

它會優先找上面的xx.a,然後再找xx下的xx.a。如果在xx.a中找到對應的方法,就不再往下查找了,所以這裡就有坑了…

一般這裡會按照這樣的格式輸入路徑“$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)”

$(SRCROOT)巨集代表您的工程檔案目錄,$(EFFECTIVE_PLATFORM_NAME)巨集代表當前配置是OS還是simulator

四、LLVM的編譯引數

 

一般都採用預設的,有一些特殊的SDK,則需要修改相應的選項。

還有一個就是Other Linker Flags的引數設定,根據需要進行設定(點選檢視Other Linker Flags詳解>>)

五、向工程中新增檔案時的選擇

Create groups for any added folders 與 Create folder references for any added folders

Copy items into destination group’s folder一般在debug時是不會選中的,多數情況下我們使用"references”較為,建立組的方式,新增的檔案(如cpp)會被編譯。

暫時就想到這幾個坑了,還有很多坑,有空再一併整理出來。新手上路,總歸遇到的問題會比較多

相關推薦

Xcode打包遇到的

一、file was built for archive which is not the architecture being linked (armv7s) 專案是基於cocos2d-x繫結lua進行開發的,需要引用liblua.a靜態庫,編譯的時候報上面的錯。需要將liblua專案中的build S

win7下react-native安卓打包

util 根目錄 2.x exce com tco 解決 研究 sig 都說工具使我們使用更加方便,然而最近研究React-native打包還有webpack這些工具,真是一把心酸一把淚。感覺這些開發工具對window系統十分不友好,外國佬都是都在用mac系統的土豪。 言歸

xcode打包測試

內存 style 一個 develop 剛才 文件的 xpl cpu 是否 模擬器的內存cpu網絡,都是電腦的。xcode可以查看。 Xcode7之前是限制人,限制電腦,限制app,限制真機調試的。 Xcode7之後,做真機測試只需要apple id即可,會自動生成證書

升級mac xcode打包證書報錯 git 報錯

name btn ada ssh-key pbc man local follow hat reset tryAgain git 在鑰匙串中找不到指定的項 重新配置公鑰撕咬 SSH keys An SSH key allows you to establish a s

Xcode9.0+appium1.6.5真機環境運行app及知多少

xc0de9.0 appium1.6.5 真機測試app ios app真機測試 ios app自動化測試 Mac下把appium自動化環境搭建好後,進行真機測試時會碰到相當多的坑, 下面給大家一一列出來並附上解決方法。 一、selenium.common.exceptions.WebDr

桌面應用“標註器”打包

環境 的確 變量 標註 imp sci 技術 報錯 編寫 昨天(2018/4/6)花了幾乎一天的時間打包我的桌面應用“標註器”。下午3點完成最後的編寫之後,準備在女朋友雅喻的電腦上配環境打包(我的電腦不能用pyinstaller打包,重裝也不行,玄學錯誤。)。雅喻的電腦上缺

Xcode 打包證書創建流程

鑰匙串 登錄 註意 vision strong r文件 導出 chain 點擊 - 創建CSR證書點擊spotlight輸入keychain打開鑰匙串 生成CSR文件註意: - 創建Cer證書登錄[https://developer.apple.com/acco

python記錄-json.loads() :JSONDecodeError: Invalid escape

key 結果 sys ref pen ket cape sel port 環境:python3.6 json文件: { "src_dir" : "C:\\Users\\admin\\Desktop\\99\\apkobb", "buc

Android項目打包com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

com 通過 pre 聲明 highlight -m and -o exception 原文:Android項目打包遇com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs f

ionic3 ion-slides

www info 網上 ets https sets 切換頁面 官網 頁面 不想吐槽 ionic-slides 的組件,是個巨坑。。。切換頁面以後再返回當前頁面, 不能自動播放,網上的解決方案都是沒用的(親測,後臺獲取的數據) ... 不信邪的寶寶們可以去試試。。建議

SpringBoot | 總結 | JPA

null 文件中 ces pla exceptio cannot style pan jdbc 1.   Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot

Xcode打包ipa

發現一個很好的生成證書和描述檔案的工具:Appuploader 打包的詳細步驟可參考以下文件,寫的很詳細: http://www.applicationloader.net/blog/zh/877.html PS: 1.因為是個人賬戶未付費,所以不能進入蘋果開發者中心的證書介面。但是

建立第一個Fabric創世快,Failed to generate orderer genesis block

按上篇步驟到了建立創世區塊了,然後失敗了,報錯如下 /Users/yiyunyue/fabric/demo1/fabric-samples/first-network/../bin/configtxgen ###########################################

iOS 開發之 內購 續篇

之前弄過一個內購買專案,然後總結了一些心得,最近又弄內購的過程中有發現了一些新問題, 就當時對之前的文章做個續篇吧. 之前的內購心得連結: http://blog.csdn.net/jesse0308/article/details/78458823 最近弄的內購專案是提供給接入方的

自動化測試隨筆一

     混跡測試圈三年,一直做功能測試心理說不出的悲涼,自學了下(真心好上手~)python,曾經斷斷續續的寫過介面測試和web的自動化;但是後來由於版本迭代太快,平臺重寫,自己學藝不精等各方面原因,剛見到希望就擱淺了;現在打算重拾,先好好寫一下介面自動化的程式碼,立帖為證!

你租的房子” 了麼?

你租的房子遇 “坑” 了麼? 前段時間真的是太忙了,出差了一週,另外還有自己的一堆事兒,忙成狗,幾乎每天也就睡 5、6 個小時,現在終於不忙了,然後就可以安安靜靜地寫文章了,好久沒更了,讓大家久等了。最近這段時間我身邊發生了好多事情,有欠錢不還的,有租房被中介坑的,有公司裁員

跨域圖片使用toDataURL記。(最終還是解決了)

    這兩天接到一個需求,需要做一個圖片裁剪功能。找到了cropper.js,使用起來算是順手,在做到將截好的圖片以base64的形式上傳儲存的時候,突然遇到了一個之前沒有碰到過的問題,沒錯就是:圖片跨域問題。     網上搜鎖了一下跨域圖片使用toDat

記react中antd打包體積太大和className命名

前端使用antd的時後打包體積太大, 如圖1.6M還是挺大的,把antd所有的資源都載入進入了 根據antd 官網的推薦,按需載入方式居於.babel配置 這樣再來看看打包分析的 按需載入打包了button和layout 在src檔案下也只引用了這個兩個元件

愛奇藝QSV轉換MP4

一個學妹給個短連結,說他們校長上課要用的素材,讓我給拖下來。開啟連結一看是愛奇藝的,不想費事,下個他的客戶端,順利把資源拉下來,但是副檔名卻不是flv或mp4,而是什麼鬼QSV,猜想應該是QiYi Standard Video幾個字母縮寫,這玩意直接用普通播放器還放不了,這樣給人家還不行,然後就

Xcode打包ipa的步驟

一、打包(生成ipa測試包)步驟  第1步:配置釋出證書和AdHoc描述檔案  第2步:配置Xcode 方法1:(前提是已經用開發者帳號,註冊過相應的證書)  (1)Xcode->Preferences->Accounts,登入你註冊過相應證書的 Apple