如何在podspec上支持不同的架构?

 大师傅放放风_769 发布于 2023-01-18 09:21

在我的公司,我们正在使用一些带有"包装"类的第三方静态库,我想为它创建一个pod.我们有两个版本的静态库,用于模拟器和设备.包含我要包含在pod中的文件的文件夹如下所示:

Engine
|
|- libEngine.a
|
|- libEngine-Simulator.a
|
|- Engine.h
|
|- EngineWrapper.h
|
|- EngineWrapper.mm
|
|- SomeOtherFile.bin

现在,因为:

该库仅支持 armv7

EngineWrapper.mm使用ARC

需要设置CLANG_CXX_LIBRARYlibstdc++

SomeOtherFile.bin需要"看到" Engine.h,

我的podspec的相关部分看起来像这样:

s.requires_arc = false
s.source_files = 'Classes/ios/Engine'
s.preserve_path = 'Classes/ios/Engine/SomeOtherFile.bin', 'Classes/ios/Engine/libEngine-Simulator.a', 'Classes/ios/Engine/libEngine.a'
s.vendored_libraries = 'Classes/ios/Engine/libEngine-Simulator.a', 'Classes/ios/Engine/libEngine.a'
s.xcconfig  =  { 'CLANG_CXX_LIBRARY' => 'libstdc++', 'VALID_ARCHS' => 'armv7' }

这只是我尝试过的数百种组合/不同设置中的一种.如果你愿意,我可以提供更多的例子.但是,无论我尝试什么,我在尝试构建时都会收到以下错误:

架构armv7的未定义符号

我试图通过所有的设置,Pods.xcodeproj但我看不到可疑的东西(但同时我不熟悉Cocoapods的工作方式).

其中,我试图:

保持平面文件夹层次结构(而不​​是Classes/ios/Engine路径)

使用库代替vendored_libraries

删除其中一个静态库

创建一个胖二进制文件而不是两个

将所有文件压缩在一起(就像TestFlight在podspec中所做的那样)

删除该VALID_ARCHS设置

我还看到了几个使用静态库的不同podspec示例,但没有任何运气..

我正在使用Cocoapods ver 0.32.1.

如果您对可能出现的问题有所了解,请在我失去理智之前告诉我.谢谢!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有