标签: lipo

Xcode 12.3:为 iOS 模拟器构建,但链接和嵌入式框架是为 iOS + iOS 模拟器构建的

我有一个使用链接和嵌入式自定义框架的应用程序。该应用程序在 Xcode 12.2 之前为 iOS 设备和模拟器正确构建。但是,从 Xcode 12.3 开始,我收到以下错误:

Building for iOS Simulator, but the linked and embedded framework 'My.framework' was built for iOS + iOS Simulator.

该框架是为设备和模拟器构建的(正如错误所说的那样)并使用 合并lipo,因此它应该能够在任何地方运行而不会出现问题。

我在这里错过了什么吗?Xcode 12.3 是否有任何相关更改?

ios lipo xcode12

152
推荐指数
4
解决办法
7万
查看次数

如何检查是否为64位构建静态库?

我刚刚为iOS构建了一个静态库,并将Architectures的构建设置设置为$(ARCHS_STANDARD_INCLUDING_64_BIT).

我想确保.a库正确包含该体系结构,但是当我运行lipo -info它时,我看到:

fat文件中的体系结构:library.a是:armv7 armv7s(cputype(16777228)cpusubtype(0))

这是否意味着不包括arm64?如果lipo命令无法告诉我,还有另一种说法吗?

我正在安装最新的Command Line Tools运行Xcode 5.

objective-c static-libraries ios lipo

73
推荐指数
3
解决办法
5万
查看次数

Lipo错误!! 无法打开输入文件

我的应用程序工作得非常好,然后我开始集成SDK用于推送通知并停止其间的集成.我甚至从我的项目中删除了SDK并试图存档或运行应用程序,它给了我错误:

lipo错误!! 无法打开输入文件.

任何帮助都会受到很多的赞赏,我已经给了足够的时间来解决这个问题,但失败了.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo:无法打开输入文件:/ Users/XYZ/Library/Developer/Xcode/DerivedData/MyAPP-hjbmqpnmsoruqxbwlayqkjsojccv/Build /Intermediates/MyAPP.build/Debug-iphoneos/MyAPP.build/Objects-normal/armv7s/MyAPP(没有这样的文件或目录)

objective-c ios lipo

48
推荐指数
4
解决办法
4万
查看次数

xcrun/lipo与OS X Mavericks和XCode 4.x冻结

一直试图用easy_install或pip安装psycopg2,终端卡在xcrun和lipo之间的循环中.

sidwyn$ sudo easy_install psycopg2
Searching for psycopg2
Reading https://pypi.python.org/simple/psycopg2/
Reading http://initd.org/psycopg/
Reading http://initd.org/projects/psycopg2
Best match: psycopg2 2.5.1
Downloading https://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.5.1.tar.gz#md5=1b433f83d50d1bc61e09026e906d84c7
Processing psycopg2-2.5.1.tar.gz
Writing /tmp/easy_install-dTk7cd/psycopg2-2.5.1/setup.cfg
Running psycopg2-2.5.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dTk7cd/psycopg2-2.5.1/egg-dist-tmp-4jaXas
clang: warning: argument unused during compilation: '-mno-fused-madd'
Run Code Online (Sandbox Code Playgroud)

它在xcrun和lipo之间反弹,并永远停留在这个循环中.希望对此有一些见解.

我是OS X Mavericks 10.9,最新版本.

python xcode psycopg2 lipo osx-mavericks

26
推荐指数
2
解决办法
7057
查看次数

创建胖文件:libtool vs lipo(我应该更喜欢lipo吗?)

我想知道使用时会有什么不同:

lipo -create i386/libAwesome.a armv7/libAwesome.a -o fat/libAwesome.a
Run Code Online (Sandbox Code Playgroud)

libtool -static i386/libAwesome.a armv7/libAwesome.a -o fat/libAwesome.a
Run Code Online (Sandbox Code Playgroud)

我的印象lipo更为通用,它只会粘贴来自不同架构的两个文件,而libtool特定于库,这是真的吗?

在什么情况下我应该更喜欢Lipo而不是Libtool?

iphone macos ios libtool-xcode lipo

13
推荐指数
0
解决办法
1320
查看次数

iOS 14,为设备和模拟器创建库时出现 lipo 错误

我们一直在使用 lipo 命令创建一个框架,当集成到其他项目中时,该框架可在设备和模拟器上运行。以下是用于生成设备和模拟器构建的构建命令

xcodebuild -target SampleSDK ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" OBJROOT="${OBJROOT}/DependentBuilds"
xcodebuild -target SampleSDK ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" OBJROOT="${OBJROOT}/DependentBuilds"
Run Code Online (Sandbox Code Playgroud)

在此之后,我们将 iphonesimulator(如果存在)中的 swift 模块复制到复制的框架目录

cp -R "$BUILD_DIR/${CONFIGURATION}-iphonesimulator/${PRODUCT_NAME}/Modules/SampleSDK.swiftmodule/" "${UNIVERSAL_OUTPUTFOLDER}/${PRODUCT_NAME}/Modules/${PROJECT_NAME}.swiftmodule/"
Run Code Online (Sandbox Code Playgroud)

然后 lipo 命令

lipo -create "$BUILD_DIR/${CONFIGURATION}-iphonesimulator/${PRODUCT_NAME}/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PRODUCT_NAME}/${PROJECT_NAME}" -output "${UNIVERSAL_OUTPUTFOLDER}/${PRODUCT_NAME}/${PROJECT_NAME}"
Run Code Online (Sandbox Code Playgroud)

上面的命令失败并出现以下错误

fatal error: lipo: /path/to/Library/Developer/Xcode/DerivedData/Sample-bhfmlauxsdympmdjkjyvujaljevg/Build/Products/Debug-iphonesimulator/SampleSDK.framework/SampleSDK and /Users/rramshettysiddaraju/Library/Developer/Xcode/DerivedData/Sample-bhfmlauxsdympmdjkjyvujaljevg/Build/Products/Debug-iphoneos/SampleSDK.framework/SampleSDK have the same architectures (arm64) and can't be in the same fat output file
Run Code Online (Sandbox Code Playgroud)

我尝试了 stackoverflow 中的答案之一,关于添加用户定义的设置 VALID_ARCHS 然后将其删除。但这没有用

xcodebuild lipo ios14 xcode12

9
推荐指数
2
解决办法
4348
查看次数

创建通用Objective-C框架,LIPO无法映射输入文件

过去一天一直在研究这个没有成功,希望有人可以提供一些关于这个的指针。

我继承了一个旧的 objC 静态库项目,我正在尝试将其转换为动态的通用框架。

为框架创建了一个新目标,编译无问题(经过一些构建设置调整后)创建一个新聚合,添加一个运行脚本阶段:

    ######################
    # Options
    ######################

    REVEAL_ARCHIVE_IN_FINDER=true

    FRAMEWORK_NAME="MyUniversalFramework"

    SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"

    DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework"

    UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal"

    FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework"


    ######################
    # Build Frameworks
    ######################

    xcodebuild -project ${FRAMEWORK_NAME}.xcodeproj -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos  BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build

    xcodebuild -project ${FRAMEWORK_NAME}.xcodeproj -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build

    ######################
    # Create directory for universal
    ######################

    rm -rf "${UNIVERSAL_LIBRARY_DIR}"

    mkdir "${UNIVERSAL_LIBRARY_DIR}"

    mkdir "${FRAMEWORK}"


    ######################
    # Copy files Framework
    ######################
    cp -R "${SIMULATOR_LIBRARY_PATH}" "${FRAMEWORK}"

    cp -R "${DEVICE_LIBRARY_PATH}" "${FRAMEWORK}"


    ######################
    # Make an …
Run Code Online (Sandbox Code Playgroud)

frameworks objective-c ios lipo ios-universal-framework

8
推荐指数
1
解决办法
1662
查看次数

将iOS项目转换为ARC时出现Lipo错误

我正在尝试将我的iOs项目转换为使用ARC,但是下面收到一个lipo错误是命令和错误

命令:

CreateUniversalBinary /Users/samichaudry/Library/Developer/Xcode/DerivedData/CartoonQuiz-bqmbxfcdkldmbqawgrfmjtebypuk/Build/Products/Debug-iphoneos/CartoonQuiz.app/CartoonQuiz normal "armv7 armv7s"
cd "/Users/samichaudry/Projetcs/CartoonQuiz/Application/V1.01 New Design Universal/Application"
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
lipo -create /Users/samichaudry/Library/Developer/Xcode/DerivedData/CartoonQuiz-bqmbxfcdkldmbqawgrfmjtebypuk/Build/Intermediates/CartoonQuiz.build/Debug-iphoneos/CartoonQuiz.build/Objects-normal/armv7/CartoonQuiz /Users/samichaudry/Library/Developer/Xcode/DerivedData/CartoonQuiz-bqmbxfcdkldmbqawgrfmjtebypuk/Build/Intermediates/CartoonQuiz.build/Debug-iphoneos/CartoonQuiz.build/Objects-normal/armv7s/CartoonQuiz -output /Users/samichaudry/Library/Developer/Xcode/DerivedData/CartoonQuiz-bqmbxfcdkldmbqawgrfmjtebypuk/Build/Products/Debug-iphoneos/CartoonQuiz.app/CartoonQuiz
Run Code Online (Sandbox Code Playgroud)

错误:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo: can't figure out the architecture type of: /Users/samichaudry/Library/Developer/Xcode/DerivedData/CartoonQuiz-bqmbxfcdkldmbqawgrfmjtebypuk/Build/Intermediates/CartoonQuiz.build/Debug-iphoneos/CartoonQuiz.build/Objects-normal/armv7/CartoonQuizCommand /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

architecture xcode automatic-ref-counting xcode4.6 lipo

7
推荐指数
1
解决办法
3819
查看次数

苹果推荐使用“lipo”命令吗?

当我们开发一个动态框架并将其分发以供重用时。我们将模拟器(i386 和 x86_64)和设备(arm7、arm7s 和 arm64)架构合二为一。这样开发人员就可以轻松地在模拟器和设备上运行应用程序而不会出现任何错误。

如果我们尝试提交通用框架,AppStore 会拒绝它。为了修复这个错误,我们使用 lipo 命令删除模拟器架构。

我的问题是 Apple 推荐使用“lipo”命令吗?

xcode appstore-approval ios lipo

7
推荐指数
1
解决办法
6331
查看次数

为模拟器和包含arm64的设备构建一个.a(也针对M1模拟器)可能吗?

当尝试为模拟器和设备构建胖静态库时,我们遇到了 lipo/libtool 的问题。在 M1 arm64 之前,设备的 armv7/arm64 切片和模拟器的 x86_64 切片都运行良好。现在 lipo 无法识别模拟器的 arm64 构建和设备的 arm64 构建之间的差异,并且拒绝添加 2 个 arm64 切片。

  1. 有没有办法构建“通用”arm64 lib 切片(因为我们 lib 中的代码与平台无关)

  2. 是否有其他工具可以实现将 2 个 arm64 切片打包到 .a 中,或者我们现在需要为模拟器和设备构建 2 个单独的静态库吗?(请注意,我们不使用 Xcode 进行构建,因此我们只是在命令行上进行链接)。

  3. 有趣的是,当链接动态标准库(例如 libxml)时,无论平台如何, -lxml 就足够了,但这适用于动态库,而不是静态库。静态库是否存在类似的机制?

objective-c clang ios lipo

6
推荐指数
1
解决办法
837
查看次数