gpt4 book ai didi

ios - Xcode 未使用 XCFrameworks 找到架构 x86_64 的符号

转载 作者:行者123 更新时间:2023-12-03 20:57:37 35 4
gpt4 key购买 nike

Xcode(11.2.1 和 11.3.1)在使用 XCFrameworks 时无法找到 x86_64 架构符号。问题在于架构在 XCFramework 内部,但首先让我向您展示该框架是如何创建的。

为了生成 XCFramework,我制作了两个文件:

  • 对于 iOS:
    xcodebuild archive -scheme MyPod -target MyPod -destination="iOS" -archivePath build/ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES
  • 对于 iOS 模拟器:
    xcodebuild archive -scheme MyPod -target MyPod -destination="iOS Simulator" -archivePath build/iossimulator.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

  • 然后我生成了 XCFramework:
    xcodebuild -create-xcframework -framework ./build/ios.xcarchive/Products/Library/Frameworks/MyPod.framework -framework ./build/iossimulator.xcarchive/Products/Library/Frameworks/MyPod.framework -output xcframework/MyPod.xcframework
    这是创建的 XCFramework,我们可以在其中看到两种架构:
    XCFramework preview

    创建后,我通过 Cocoapods (1.9.0.beta.3) 分发它。所以我的 .podspec 看起来像:
    s.subspec "Vendored" do |framework|
    framework.vendored_framework = 'xcframework/MyPod.xcframework'
    end

    然后我在另一个项目中使用了它,并且在编译时失败,因为它找不到模拟器的架构(在它工作的设备上)

    我得到的日志如下:
    ld: warning: ignoring file /Path/To/MyProject/Pods/MyPod/xcframework/MyPod.xcframework/ios-armv7_arm64/MyPod.framework/MyPod, missing required architecture x86_64 in file /Path/To/MyProject/Pods/MyPod/xcframework/MyPod.xcframework/ios-armv7_arm64/MyPod.framework/MyPod (2 slices)
    Undefined symbols for architecture x86_64:
    "_OBJC_CLASS_$MyPod", referenced from:
    objc-class-ref in SomeClass.o
    ld: symbol(s) not found for architecture x86_64

    看起来 xcodebuild 总是转到 ios-armv7_arm64文件夹而不是 ios-i386_x86_64-simulator一,有什么想法吗?

    谢谢!

    最佳答案

    嘿,请生成 -sdk用这个标志 combination :

    xcodebuild archive -workspace IVTNetworking.xcworkspace  -scheme IVTNetworking \
    -configuration Debug -sdk iphoneos \
    -archivePath '/Users/chitaranjans/Library/Developer/Xcode/Archives /IVTNetworking.framework-iphoneos.xcarchive' \
    SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
    这按预期工作正常。

    关于ios - Xcode 未使用 XCFrameworks 找到架构 x86_64 的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60116407/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com