美文网首页iOS Tips
pod repo push / pod lib lint i3

pod repo push / pod lib lint i3

作者: ZJ_偶尔上路 | 来源:发表于2020-01-07 23:08 被阅读0次

    产生背景:在制作自己私有库的时候依赖了某SDK,该SDK只能在真机编译,即只支持真机指令集不支持模拟器指令集。

    pod repo push / pod lib lint 提示如下错误导致podspec验证不通过。

        - NOTE  | [iOS] xcodebuild:  ld: warning: ignoring file xxx/xx/x.a, missing required architecture x86_64 in file xxx/xx/x.a (2 slices)
        - NOTE  | [iOS] xcodebuild:  ld: warning: ignoring file xxx/xx/x.a, missing required architecture i386 in file xxx/xx/x.a (2 slices)
    

    这个错误的原因是依赖的x.a静态包只支持真机指令集(arm64 armv7 armv7s),不支持模拟器指令集(i386 x86_64),而在pod repo push / pod lib lint验证的时候会验证模拟器指令集(i386 x86_64)。
    官方说法 CocoaPods/issues

    通过 lipo -info + SDK路径 命令查看 SDK 支持的指令集

    解决办法两个:
    1. x.a支持模拟器指令集,这个一般是难以实现的,毕竟很大可能性是第三方的SDK。
    2. pod repo push / pod lib lint 跳过对模拟器指令集的验证

    针对方案2具体操作如下:

    1. 设置VALID_ARCHS在 podspec 文件中添加
    s.pod_target_xcconfig = { 'VALID_ARCHS[sdk=iphonesimulator*]' => '' }
    或
    s.pod_target_xcconfig = { 'VALID_ARCHS' => 'arm64 armv7 armv7s ' }
    

    如果项目已经设置 pod_target_xcconfig,添加到已有值的后面,设置此处将在 模拟器编译时不产生二进制文件。

    1. 验证时跳过验证
      pod repo lint 命令添加 --skip-import-validation

    2. 发布更新跳过验证
      pod repo push 命令添加 --skip-import-validation

    相关文章

      网友评论

        本文标题:pod repo push / pod lib lint i3

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