美文网首页
记一次pod本地库升级的问题

记一次pod本地库升级的问题

作者: 张_何 | 来源:发表于2024-04-15 17:53 被阅读0次

    前提

    • 由于历史原因我们的UMengSDK使用的是本地库的方式导入的,相关SDK放在我们项目根目录下的UMengSDK目录下:
      如下图:


    • Podfile中指定了UMengSDK的path,如下图:


    升级

    • 由于Apple对隐私信息管控的升级 , UMengSDK需要在其相应SDK中添加PrivacyInfo.xcprivacy文件, 接入UMengSDK的App为了通过Apple审核,就需要升级UMengSDK到包含PrivacyInfo.xcprivacy文件的版本。
    • 通常对于pod直接导入的三方库我们,直接修改版本就行,对于使用pod导入本地库的我们也是直接下载相应版本的SDK然后直接将老的SDK替换掉就行。
    • 为了迎合Apple审核,这次我们需要把使用的下图中的版本

      替换为包含PrivacyInfo.xcprivacy文件的下图中的版本
    • 我就是这么替换的

    问题

    • 替换之后,打包后使用工具扫描,发现包里并没有PrivacyInfo.xcprivacy文件,也就是PrivacyInfo.xcprivacy并没有打进去。因为我们本地库中的UMengSDK.podspec文件中并没有将PrivacyInfo.xcprivacy文件pod进去的配置

      所以,PrivacyInfo.xcprivacy文件不会作为资源被pod导入,更不会打进包里。

    解决

    • 我们需要在UMengSDK.podspec文件中对PrivacyInfo.xcprivacy进行配置,使其被pod导入我们的项目,进而被打进包里。
      对其配置如下:


      然后再执行pod install,重新打开项目,就可以看到相应的SDK中都导入了PrivacyInfo.xcprivacy文件
    • 再次编译项目招到打包产物,显示包内容就可以看到相应的budle了。
      通常我们可以在Xcode中左侧导航栏中的product目录下找到对应的打包产物


      对打包的产物进行显示包内容就可以看到对应的bundle

      对bundle显示包内容,就可以看到PrivacyInfo.xcprivacy文件了

    resource_bundle 和 resource_bundles 的使用

    • resource_bundle/s 允许定义当前 Pod 库的资源包的名称和文件。用 hash 的形式来声明,keybundle 的名称,value 是需要包括的文件的通配 patterns
      patterns**/表示任何子孙目录,*.文件格式表示任何名字的这种格式的文件
    • resource_bundle 用来指定一个bundle
    • resource_bundles 可以指定多个bundle
    • 可以参考这篇文章的的讲解

    相关文章

      网友评论

          本文标题:记一次pod本地库升级的问题

          本文链接:https://www.haomeiwen.com/subject/kmvdxjtx.html