近期在做一個(gè)積分墻項(xiàng)目,里面集成了趣米的積分墻,通過真機(jī)調(diào)試一直沒問題育拨,但通過模擬器卻一直報(bào)錯(cuò),錯(cuò)誤如下:
ld: warning: ignoring file /Users/mac/duomipu/duomipu/QumiADLib/libQumiAdSDK.a, missing required architecture i386 in file /Users/mac/duomipu/duomipu/QumiADLib/libQumiAdSDK.a (3 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_QumiConfigTool", referenced from:
objc-class-ref in QuMiRecommenderViewController-54438B5CF44A1B46.o
"_OBJC_CLASS_$_QumiOperationApp", referenced from:
objc-class-ref in QuMiRecommenderViewController-54438B5CF44A1B46.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
嘗試了網(wǎng)上給出的幾種方法欢摄,比如在Compile Sources里面把相關(guān)文件導(dǎo)入熬丧、在Search Path里面把路徑配好、重新導(dǎo)入sdk等怀挠,但都不見效果析蝴。
通過與趣米官方sdk中demo的比較,發(fā)現(xiàn)Build Active Architecture Only選項(xiàng)中唆香,我的設(shè)置是debug和release均為NO 嫌变,而范例的配置是:debug為YES,release為NO躬它。于是腾啥,將我自己的配置也調(diào)成這樣,重新編譯冯吓,成功倘待。
這個(gè)屬性設(shè)置為yes,是為了debug的時(shí)候編譯速度更快组贺,它只編譯當(dāng)前的architecture版本凸舵。
而設(shè)置為no時(shí),會(huì)編譯所有的版本失尖。
這個(gè)是設(shè)備對(duì)應(yīng)的architecture:
armv6:iPhone 2G/3G啊奄,iPod 1G/2G
armv7:iPhone 3GS/4/4s渐苏,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5, iPod5
編譯出的版本是向下兼容的菇夸,比如你設(shè)置此值為yes琼富,用iphone4編譯出來(lái)的是armv7版本的,iphone5也可以運(yùn)行庄新,但是armv6的設(shè)備就不能運(yùn)行鞠眉。
所以,一般debug的時(shí)候可以選擇設(shè)置為yes择诈,release的時(shí)候要改為no械蹋,以適應(yīng)不同設(shè)備。