菜鸟教程小白 发表于 2022-12-13 05:01:10

ios - 通过 CocoaPods 将 .a 文件添加到项目中


                                            <p><p>我目前正在开发一个使用 CocoaPods 的项目。这是我第一次使用它们,希望能帮助我们解决我们遇到的问题。 </p>

<p>我们有多个使用相同数据模型的应用。我们没有重复代码,而是创建了一个单独的项目,该项目作为 pod 文件添加到每个子项目中。在这个项目中,我们还有很多第三方库(Facebook SDK、GoogleAnalytics 等),因为它们在我们的多个应用程序中使用。我们使用的 2 个库是 Flurry 5.4.0 和 Appsflyer。不幸的是,这些家伙是 .a 文件,而不是其他返回 .h 文件的 pod 文件。 </p>

<p> <img src="/image/t47d4.png" alt="enter image description here"/> </p>

<p>我们拥有的基础项目将毫无问题地清理和编译。但是当我们尝试通过 pod 将该项目添加到任何子项目时,会导致编译错误:</p>

<pre><code>Undefined symbols for architecture i386:
&#34;_OBJC_CLASS_$_AppsFlyerTracker&#34;, referenced from:
objc-class-ref in libPods.a(SHAnalyticsUtility.o)
&#34;_OBJC_CLASS_$_Flurry&#34;, referenced from:
objc-class-ref in libPods.a(SHAnalyticsUtility.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
</code></pre>

<p>我尝试了所有不同的方法来更新 Podfile( <a href="https://github.com/CocoaPods/CocoaPods/issues/2018" rel="noreferrer noopener nofollow">https://github.com/CocoaPods/CocoaPods/issues/2018</a> ) 和 PodSpec( <a href="https://github.com/CocoaPods/Specs/issues/1483" rel="noreferrer noopener nofollow">https://github.com/CocoaPods/Specs/issues/1483</a> ) 文件,但到目前为止没有任何效果。欢迎任何和所有建议:)
<strong>PODSPEC</strong></p>

<pre><code>Pod::Spec.new do |s|


s.name   = &#39;company-framework-ios&#39;
s.version= &#39;1.13.16&#39;
s.platform = :ios
s.license= &#39;MIT&#39;
s.summary= &#39;Framework for all the iOS apps&#39;

s.source_files = &#39;CompanyFramework/CompanyFramework/*.{h,m}&#39;,&#39;CompanyFramework/CompanyFramework/**/*.{h,m}&#39;

s.frameworks = &#39;QuartzCore&#39;, &#39;CoreLocation&#39;
s.dependency &#39;Masonry&#39;
s.dependency &#39;Mixpanel&#39;
s.dependency &#39;GoogleAnalytics-iOS-SDK&#39;
s.dependency &#39;AFNetworking&#39;, &#39;2.4.1&#39;
s.dependency &#39;NSDate+Calendar&#39;
s.dependency &#39;RXPromise&#39;
s.dependency &#39;SAMCategories&#39;
s.dependency &#39;FlurrySDK&#39;
s.dependency &#39;AppsFlyer-SDK&#39;
s.dependency &#39;Facebook-iOS-SDK&#39;, &#39;3.18.2&#39;

s.ios.deployment_target = &#34;7.1&#34;

s.requires_arc = true
s.ios.vendored_library = &#39;Pods/FlurrySDK/Flurry/libFlurry_5.4.0.a&#39;
s.ios.vendored_library = &#39;Pods/AppsFlyer-SDK/libAppsFlyerLib.a&#39;

end
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>所以这个问题的答案是,当您将 .a 文件添加到自定义 pod 时,您还必须在安装自定义 pod 后将 .a 文件添加到您的项目中。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 通过 CocoaPods 将 .a 文件添加到项目中,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/28160123/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/28160123/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 通过 CocoaPods 将 .a 文件添加到项目中