菜鸟教程小白 发表于 2022-12-11 19:13:03

ios - Xcode 9.1 : module compiled with Swift 4. 0 不能在 Swift 3.2.2 中导入


                                            <p><p>我将 xCode 从 9.0.1 更新到 9.1。以前一切正常,但现在,当我尝试构建我的项目(使用 Carthage)时出现此错误:</p>

<p><code>使用 Swift 4.0 编译的模块无法导入 Swift 3.2.2</code>(或 SWIFT 4 用户的 4.0.2)</p>

<p>不需要让你知道这个模块,因为它不依赖它(因为当我注释相关的导入行时,错误他放错地方到下一个导入,所以对于另一个模块)。</p>

<p>我尝试了我所看到的一切:</p>

<ul>
<li>清理项目</li>
<li>清理 Carthage 文件夹</li>
<li>清理派生数据文件夹:<br/>
<code>rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData</code></li>
<li>使用 Carthage 更新:<code>carthage update --platform iOS</code>(使用或不使用 <code>--no-use-binaries</code>)</li>
<li>更新模块</li>
<li>重新构建</li>
<li>关闭并重新打开 Xcode</li>
<li>祈祷</li>
</ul>

<p>Carthage (0.26.2) 和 MacOS (High Sierra) 是最新的。</p>

<p>所以,我的最后一个假设(据我所知)是 Xcode 9.1 不允许我们使用不是用 Xcode 9.1 构建的模块。所以我可以回到 Xcode 9.0.1 但我无法将我的项目交付给 Xcode 9.1 用户。我无法想象要等待所有模块的更新。那么你有什么想法吗?</p>

<p>谢谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>是的,您必须将您使用的每个框架升级到 9.1。</p>

<p><strong>“正如我所说,它不依赖于模块,因为如果我评论一个导入,那就是另一个有问题的导入”</strong></p>

<p>那是因为下一个有完全相同的问题。只需将“嵌入式二进制文件”中的所有框架替换为已用 9.1 编译的版本即可。为了向自己证明这一点,在它提示的第一个上做,然后 Xcode 会告诉你第二个现在是问题,等等。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Xcode 9.1 : module compiled with Swift 4. 0 不能在 Swift 3.2.2 中导入,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47142216/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47142216/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Xcode 9.1 : module compiled with Swift 4. 0 不能在 Swift 3.2.2 中导入