前提
-
由于歷史原因我們的UMengSDK使用的是本地庫(kù)的方式導(dǎo)入的,相關(guān)SDK放在我們項(xiàng)目根目錄下的UMengSDK目錄下:
如下圖:
-
Podfile中指定了UMengSDK的path,如下圖:
升級(jí)
- 由于Apple對(duì)隱私信息管控的升級(jí) , UMengSDK需要在其相應(yīng)SDK中添加
PrivacyInfo.xcprivacy文件, 接入U(xiǎn)MengSDK的App為了通過(guò)Apple審核,就需要升級(jí)UMengSDK到包含PrivacyInfo.xcprivacy文件的版本。 - 通常對(duì)于pod直接導(dǎo)入的三方庫(kù)我們,直接修改版本就行,對(duì)于使用pod導(dǎo)入本地庫(kù)的我們也是直接下載相應(yīng)版本的SDK然后直接將老的SDK替換掉就行。
- 為了迎合Apple審核,這次我們需要把使用的下圖中的版本
替換為包含PrivacyInfo.xcprivacy文件的下圖中的版本

- 我就是這么替換的
問(wèn)題
- 替換之后,打包后使用工具掃描,發(fā)現(xiàn)包里并沒(méi)有
PrivacyInfo.xcprivacy文件,也就是PrivacyInfo.xcprivacy并沒(méi)有打進(jìn)去。因?yàn)槲覀儽镜貛?kù)中的UMengSDK.podspec文件中并沒(méi)有將PrivacyInfo.xcprivacy文件pod進(jìn)去的配置
所以,PrivacyInfo.xcprivacy文件不會(huì)作為資源被pod導(dǎo)入,更不會(huì)打進(jìn)包里。
解決
-
我們需要在
UMengSDK.podspec文件中對(duì)PrivacyInfo.xcprivacy進(jìn)行配置,使其被pod導(dǎo)入我們的項(xiàng)目,進(jìn)而被打進(jìn)包里。
對(duì)其配置如下:
然后再執(zhí)行pod install,重新打開項(xiàng)目,就可以看到相應(yīng)的SDK中都導(dǎo)入了PrivacyInfo.xcprivacy文件
-
再次編譯項(xiàng)目招到打包產(chǎn)物,顯示包內(nèi)容就可以看到相應(yīng)的budle了。
通常我們可以在Xcode中左側(cè)導(dǎo)航欄中的product目錄下找到對(duì)應(yīng)的打包產(chǎn)物
對(duì)打包的產(chǎn)物進(jìn)行顯示包內(nèi)容就可以看到對(duì)應(yīng)的bundle
對(duì)bundle顯示包內(nèi)容,就可以看到PrivacyInfo.xcprivacy文件了
resource_bundle 和 resource_bundles 的使用
-
resource_bundle/s允許定義當(dāng)前 Pod 庫(kù)的資源包的名稱和文件。用 hash 的形式來(lái)聲明,key是bundle的名稱,value是需要包括的文件的通配patterns。
patterns中**/表示任何子孫目錄,*.文件格式表示任何名字的這種格式的文件 -
resource_bundle用來(lái)指定一個(gè)bundle -
resource_bundles可以指定多個(gè)bundle - 可以參考這篇文章的的講解








