首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xcframework的Pod lint失败

xcframework的Pod lint失败
EN

Stack Overflow用户
提问于 2021-11-16 11:30:23
回答 1查看 413关注 0票数 1

我有带有静态库和聚合解决方案的xcode项目,在构建阶段添加了多个平台脚本,这样我就可以创建xcframework:

代码语言:javascript
复制
SCHEME_NAME=${PROJECT_NAME}
FRAMEWORK_NAME=${PROJECT_NAME}
SIMULATOR_ARCHIVE_PATH="${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-iphonesimulator.xcarchive"
DEVICE_ARCHIVE_PATH="${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-iphoneos.xcarchive"
# Simulator xcarchieve
xcodebuild archive \
  -scheme ${SCHEME_NAME} \
  -archivePath ${SIMULATOR_ARCHIVE_PATH} \
  -sdk iphonesimulator \
  SKIP_INSTALL=NO \
  BUILD_LIBRARY_FOR_DISTRIBUTION=YES 
# Device xcarchieve
xcodebuild archive \
  -scheme ${SCHEME_NAME} \
  -archivePath ${DEVICE_ARCHIVE_PATH} \
  -sdk iphoneos \
  SKIP_INSTALL=NO \
  BUILD_LIBRARY_FOR_DISTRIBUTION=YES 
# Remove older version
rm -rf "${HOME}/Desktop/${FRAMEWORK_NAME}_${APPOXEE_SDK_VERSION}"

# Create Products && Documentation && SDK directories
mkdir -p "${HOME}/Desktop/${FRAMEWORK_NAME}_${APPOXEE_SDK_VERSION}/Documentation"
mkdir -p "${HOME}/Desktop/${FRAMEWORK_NAME}_${APPOXEE_SDK_VERSION}/SDK"

# Create xcframwork combine of all frameworks
xcodebuild -create-xcframework \
  -library ${SIMULATOR_ARCHIVE_PATH}/Products/usr/local/lib/lib${FRAMEWORK_NAME}.a -headers ${SIMULATOR_ARCHIVE_PATH}/Products/usr/local/lib/${FRAMEWORK_NAME}Headers \
  -library ${DEVICE_ARCHIVE_PATH}/Products/usr/local/lib/lib${FRAMEWORK_NAME}.a -headers ${DEVICE_ARCHIVE_PATH}/Products/usr/local/lib/${FRAMEWORK_NAME}Headers\
  -output ${HOME}/Desktop/${FRAMEWORK_NAME}_${APPOXEE_SDK_VERSION}/SDK/${FRAMEWORK_NAME}.xcframework

这就可以创建xcframework了。在xcframework内部有info.plist

表示所有的体系结构arm64、armv7和i386、x86_64都出现在xcfremework,这与我做lipo -info时得到的结果相同。

Podspec文件看起来如下:

代码语言:javascript
复制
Pod::Spec.new do |s|

  s.name         = "TestSDK"
  s.version      = "6.0.4"
  s.summary      = "Test SDK enables developers to harnest the full power of Test Engage Platform on their iOS applications."
  s.description  =  <<-DESC
                    Test SDK enables push notification in your iOS application, for engaging your application users and increasing retention.
                    DESC
  s.homepage     = "https://mapp.com"
  s.license      = { :type => "Custom", :file => "Licence.txt" }
  s.author       = { "Test Digital" => "https://test.com/contact-us/" }
  s.source       = { :git => "https://github.com/TestCloud/TestSDK.git", :tag => "6.0.4" }
  s.ios.framework = 'UserNotifications'
  s.platform     = :ios, "10.0"
  s.ios.vendored_frameworks = "SDK/TestSDK.xcframework"
  s.preserve_paths = 'SDK/TestSDK.xcframework'
  s.resource_bundle = { 'TestSDKResources' => 'SDK/TestSDKResources.bundle' }
  s.requires_arc = true

end

而pod lint返回一个错误:无法在'../../../../../../../../Users/ssad.ter/Desktop/private_pod/TestSDK/SDK/TestSDK.xcframework RwarSDK库ios-arm64_armv7 ios-i 386_ x86_64 -仿真器中找到当前构建体系结构(arm64 X86_64 i386)中的匹配.xcframework片。

但正如我所解释的,它包含了那些体系结构。

荚lib lint成功运行的唯一方法是我添加到pod lib lint =Debug中。

但是从脚本中可以看到,设置为YES,而忽略INSTALL,在XCode的构建设置中也是这样做的。当您在XCode上进入编辑方案选项时,存档被设置为释放模式。

有人能给我指一下这里有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2022-05-25 09:45:13

您的plist显示您只有x86_64i386体系结构可用于模拟器。您在M1 mac上运行命令吗?如果是,您也需要对模拟器提供arm64 arch支持,或者可以在rosetta仿真下运行pod lib lint,如下所示:

代码语言:javascript
复制
arch -x86_64 pod lib lint
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69988346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档