美文网首页iOS精英班首页投稿(暂停使用,暂停投稿)iOS Developer
第三方库使用 Framework,用 Jenkins 打包时报错

第三方库使用 Framework,用 Jenkins 打包时报错

作者: 碧霄问鼎 | 来源:发表于2016-08-11 17:07 被阅读492次

    现在想必大多数公司都开始进行持续集成(CI)了。毕竟手工打包,重复劳动真的是太累。业内有很多持续集成的工具,我们公司用的是 Jenkins。然而使用过程中遇到了一个问题,花了我很长时间去解决,记录一下,也方便当别人遇到时,快速解决。

    本来项目用的是静态库,即.a 文件,如下:

    静态库

    但考虑到要和 Swift 混编,而 Swift 只能用 Framework,所以在Podfile文件加了use_frameworks!这样一行,改成了使用 Framework。然后测试妹子对我说,Jenkins 不能打包了,我看了下,报错信息大致如下:

    No valid signing identities (i.e. certificate and private key pair) matching...
    

    大致意思是:CocoaPods 要对每一个 Framework 进行证书签名,而每个 Framework 的 bundleID 都是不一样的。那就要换成通配证书。但通配证书会让极光推送,地图等功能失效,只能找其它的解决方案,最后在 CocoaPods 的 issues 里找到了解决方案。

    Podfile 中添加如下代码:

      post_install do |installer|
        installer.pods_project.targets.each do |target|
          target.build_configurations.each do |config|
            config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
            config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
            config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
          end
        end
      end
    

    完成后的 Podfile 大致如下:

    # Podfile
    platform :ios, '8.0'
    
    use_frameworks!
    
      post_install do |installer|
        installer.pods_project.targets.each do |target|
          target.build_configurations.each do |config|
            config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
            config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
            config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
          end
        end
      end
    
    target 'TargetName' do
      pod 'AFNetworking'
      pod 'SDWebImage'
    end
    

    EOF~

    相关文章

      网友评论

      • 飞舞的麻雀:我这边是swift + oc + cocoapods + jenkins结果打出的包无法安装。看了一下pod里面的framework编译后,identifier都变的和工程一样了,导致idetifier重复了,请问有没有方法解决呀,谢谢大神

      本文标题:第三方库使用 Framework,用 Jenkins 打包时报错

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