菜鸟教程小白 发表于 2022-12-12 16:12:55

ios - Cocoapods 没有正确链接第三、第四个目标(Xcode 7 beta 6)


                                            <p><p>我在使用 Cocoapods 和 Xcode 7 beta 6 时遇到问题:我有一个包含三个不同测试目标(测试、UITests、IntegrationTests)的项目。我的 pod 似乎在第一个目标(“测试”)上工作得很好,但其他目标有问题:</p>

<ul>
<li>如果我在后两个目标中不引用任何 Cocoapod,一切都会正常构建。</li>
<li>但是,当我尝试使用其中一个 pod(在本例中为 XCGLogger)时,出现链接器错误。</li>
<li>我检查了构建阶段,发现两个目标都缺少 <code>Embed Pods Frameworks</code>,所以我手动添加了它。</li>
<li>执行此操作并清理、删除派生数据后,问题仍然存在。</li>
</ul>

<p>附上显示链接器错误的屏幕截图。同样,只有在我尝试在后两个目标中使用 XCGLogger 时才会发生这种情况。它在第一个目标中运行良好。</p>

<p> <a href="/image/7AVrd.jpg" rel="noreferrer noopener nofollow"><img src="/image/7AVrd.jpg" alt="Linker error on some targets"/></a> </p>

<p>为了彻底……这是我正在使用的 Podfile:</p>

<pre><code>platform :ios, &#34;8.0&#34;
use_frameworks!

target &#39;Glimpulse&#39; do
pod &#34;SwiftSpinner&#34;, :git =&gt; &#39;https://github.com/zbeckman/SwiftSpinner.git&#39;
pod &#39;XCGLogger&#39;, :git =&gt; &#39;https://github.com/DaveWoodCom/XCGLogger.git&#39;, :branch =&gt; &#39;swift_2.0&#39;
pod &#39;GRValidation&#39;, &#39;~&gt; 0.2&#39;
end

target &#39;GlimpulseTests&#39; do
pod &#34;SwiftSpinner&#34;, :git =&gt; &#39;https://github.com/zbeckman/SwiftSpinner.git&#39;
pod &#39;XCGLogger&#39;, :git =&gt; &#39;https://github.com/DaveWoodCom/XCGLogger.git&#39;, :branch =&gt; &#39;swift_2.0&#39;
pod &#34;Nimble&#34;, :git =&gt; &#39;https://github.com/Quick/Nimble.git&#39;, :branch =&gt; &#39;swift-2.0&#39;
pod &#34;Quick&#34;, :git =&gt; &#39;https://github.com/zbeckman/Quick.git&#39;, :branch =&gt; &#39;swift-2.0&#39;
pod &#39;GRValidation&#39;, &#39;~&gt; 0.2&#39;
#pod &#34;SwiftCheck&#34;, :git =&gt; &#39;https://github.com/zbeckman/SwiftCheck.git&#39;, :branch =&gt; &#39;swift-develop&#39;
end

target &#39;GlimpulseUITests&#39; do
pod &#34;SwiftSpinner&#34;, :git =&gt; &#39;https://github.com/zbeckman/SwiftSpinner.git&#39;
pod &#39;XCGLogger&#39;, :git =&gt; &#39;https://github.com/DaveWoodCom/XCGLogger.git&#39;, :branch =&gt; &#39;swift_2.0&#39;
pod &#34;Nimble&#34;, :git =&gt; &#39;https://github.com/Quick/Nimble.git&#39;, :branch =&gt; &#39;swift-2.0&#39;
pod &#34;Quick&#34;, :git =&gt; &#39;https://github.com/zbeckman/Quick.git&#39;, :branch =&gt; &#39;swift-2.0&#39;
pod &#39;GRValidation&#39;, &#39;~&gt; 0.2&#39;
#pod &#34;SwiftCheck&#34;, :git =&gt; &#39;https://github.com/zbeckman/SwiftCheck.git&#39;, :branch =&gt; &#39;swift-develop&#39;
end

target &#39;GlimpulseIntegrationTests&#39; do
pod &#34;SwiftSpinner&#34;, :git =&gt; &#39;https://github.com/zbeckman/SwiftSpinner.git&#39;
pod &#39;XCGLogger&#39;, :git =&gt; &#39;https://github.com/DaveWoodCom/XCGLogger.git&#39;, :branch =&gt; &#39;swift_2.0&#39;
pod &#34;Nimble&#34;, :git =&gt; &#39;https://github.com/Quick/Nimble.git&#39;, :branch =&gt; &#39;swift-2.0&#39;
pod &#34;Quick&#34;, :git =&gt; &#39;https://github.com/zbeckman/Quick.git&#39;, :branch =&gt; &#39;swift-2.0&#39;
pod &#39;GRValidation&#39;, &#39;~&gt; 0.2&#39;
#pod &#34;SwiftCheck&#34;, :git =&gt; &#39;https://github.com/zbeckman/SwiftCheck.git&#39;, :branch =&gt; &#39;swift-develop&#39;
end

link_with &#39;GlimpulseUITests&#39;
link_with &#39;GlimpulseIntegrationTests&#39;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>啊哈。好的,我想我想通了,在经历了删除、重新创建、<code>pod install</code>ing 和重复......以及摆弄 Xcode 目标的痛苦和折磨之后。我的发现:</p>

<p><strong>Cocoapods 0.38.2 不喜欢 Xcode 7 beta 6 的新“iOS UI 测试包”目标类型。</strong></p>

<p>在设置新目标并运行 <code>pod install</code> 时,主要问题很明显。安装似乎运行良好,但如果您查看构建阶段,则缺少 <code>Embed pods frameworks</code> 阶段。但是,如果我手动创建此阶段(根据目标调整路径),它确实会构建。</p>

<p><strong>但是...</strong>奇怪的事情仍然发生。上面显示的错误(关于当前架构的链接)<em>仍然会发生。</em>这是最奇怪的部分:如果我将目标更改为使用“仅为事件架构构建:<strong>否</strong> ' 然后一切正常。我没有得到最后一点,因为 pod 应该只为当前架构构建。但是...如果集成失败了...好吧,谁知道呢,也许它会在下一个 Cocoapods 版本中得到修复。</p>

<p>另一个令人失望的发现:新的 UI 测试目标类型<em>不</em> 似乎支持 <code>@testable</code> 功能。真可惜。希望他们将其添加到 Xcode 7 的最终版本中...</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Cocoapods 没有正确链接第三、第四个目标(Xcode 7 beta 6),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32368665/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32368665/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Cocoapods 没有正确链接第三、第四个目标(Xcode 7 beta 6)