<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Cocopods on 编程技术记录</title>
    <link>https://blog.z6z8.cn/tags/cocopods/</link>
    <description>Recent content in Cocopods on 编程技术记录</description>
    <generator>Hugo</generator>
    <language>zh-Hans</language>
    <lastBuildDate>Mon, 29 Mar 2021 08:36:52 +0000</lastBuildDate>
    <atom:link href="https://blog.z6z8.cn/tags/cocopods/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CocoaPod 指定动态或者静态链接framework</title>
      <link>https://blog.z6z8.cn/2021/03/29/cocoapod-%E6%8C%87%E5%AE%9A%E5%8A%A8%E6%80%81%E6%88%96%E8%80%85%E9%9D%99%E6%80%81%E9%93%BE%E6%8E%A5framework/</link>
      <pubDate>Mon, 29 Mar 2021 08:36:52 +0000</pubDate>
       <guid isPermaLink="false">http://blog.z6z8.cn/?p=977</guid> 
      <description>&lt;p&gt;当在 &lt;code&gt;podfile&lt;/code&gt; 文件中使用 &lt;code&gt;use_frameworks!&lt;/code&gt; 指令时，CocoaPod在安装Pod时，会用framework方式组织资源（默认使用lib方式），同时该指令还提供扩展选项，指定动态framework或者静态framework&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;use_frameworks!  #使用默认值，根据pod类型自行设置static或者dynamic
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;use_frameworks! :linkage =&amp;gt; :static # 使用静态链接
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;use_frameworks! :linkage =&amp;gt; :dynamic #使用动态链接
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果在 &lt;code&gt;podfile&lt;/code&gt; 中设置 &lt;code&gt;use_frameworks! &lt;/code&gt;，又没有指定 &lt;code&gt;linkage =&amp;gt; :static&lt;/code&gt; 或 &lt;code&gt;linkage =&amp;gt; :dynamic&lt;/code&gt; 时，则会根据 &lt;code&gt;podspec&lt;/code&gt; 文件中的根配置 &lt;code&gt;static_framework = true/false&lt;/code&gt; 来设置。&lt;/p&gt;
&lt;p&gt;另外， &lt;code&gt;linkage =&amp;gt; :static&lt;/code&gt; 或 &lt;code&gt;linkage =&amp;gt; :dynamic&lt;/code&gt; 只对源码Pod有效，对已经是framework的pod不起作用。而且，如果pod中的framework是动态库，那么在 &lt;code&gt;pod install&lt;/code&gt; 后，会在相应的target的 &lt;code&gt;Build Phases&lt;/code&gt; 设置中添加 &lt;code&gt;[cp] Embed Pods Frameworks&lt;/code&gt; 脚本，以动态库的方式将framework输出到最终产物中。&lt;/p&gt;</description>
    </item>
    <item>
      <title>引入私有CocoaPod编译报错include of non-modular header inside framework module</title>
      <link>https://blog.z6z8.cn/2021/01/27/%E5%BC%95%E5%85%A5%E7%A7%81%E6%9C%89cocoapod%E7%BC%96%E8%AF%91%E6%8A%A5%E9%94%99include-of-non-modular-header-inside-framework-module/</link>
      <pubDate>Wed, 27 Jan 2021 14:10:28 +0000</pubDate>
       <guid isPermaLink="false">http://blog.z6z8.cn/?p=967</guid> 
      <description>&lt;p&gt;原因是引入的CocoaPod仓库，编译后缺少 &lt;code&gt;module.modulemap&lt;/code&gt; 文件；通常是因为私有CocoaPod仓库只有声明文件，没有定义实现文件&amp;mdash;&amp;ndash;只有 &lt;code&gt;.h &lt;/code&gt; 文件，没有 &lt;code&gt;.m&lt;/code&gt; &lt;code&gt;.mm&lt;/code&gt; 等文件。
简单的解决办法是在私有仓库添加一个空的 &lt;code&gt;.m&lt;/code&gt; 文件，例如添加 &lt;code&gt;cocoapod.m&lt;/code&gt; 文件(名字随意)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-objc&#34; data-lang=&#34;objc&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;/// cocoapod.m
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#import
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后在 &lt;code&gt;podspec&lt;/code&gt; 文件中，将这个文件添加到 &lt;code&gt;source_files&lt;/code&gt; 属性里&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;public_header_files &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;公开的头文件&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;source_files &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;已有的源文件&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cocoapod.m&amp;#39;&lt;/span&gt;   &lt;span style=&#34;color:#75715e&#34;&gt;#也可使用通配符写法 ，如 **/*.{h,m}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;再次 &lt;code&gt;pod install&lt;/code&gt; 即可生成 &lt;code&gt;module.modulemap&lt;/code&gt; 文件&lt;/p&gt;</description>
    </item>
    <item>
      <title>安装指定版本的CocoaPods</title>
      <link>https://blog.z6z8.cn/2019/10/31/%E5%AE%89%E8%A3%85%E6%8C%87%E5%AE%9A%E7%89%88%E6%9C%AC%E7%9A%84cocoapods/</link>
      <pubDate>Thu, 31 Oct 2019 09:41:11 +0000</pubDate>
       <guid isPermaLink="false">http://blog.z6z8.cn/?p=540</guid> 
      <description>&lt;p&gt;因为一些编译构建问题，我需要降级CocoaPods
过程如下:&lt;/p&gt;
&lt;h1 id=&#34;卸载当前版本的cocoapods&#34;&gt;卸载当前版本的CocoaPods&lt;/h1&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo gem uninstall cocoapods
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;下载指定版本的cocoapods编译gem包&#34;&gt;下载指定版本的CocoaPods，编译gem包&lt;/h1&gt;
&lt;p&gt;下载地址https://github.com/CocoaPods/CocoaPods/releases
将源码下载后解压，进入源码目录，编译gem包&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gem build cocopods.gemspec
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;编译产物是 cocopods-版本号.gem&lt;/p&gt;
&lt;h1 id=&#34;使用本地gem包安装cocoapods&#34;&gt;使用本地gem包安装CocoaPods&lt;/h1&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo gem install cocopods-版本号.gem
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
