使用静态库创建私有 cocoapod
Creating private cocoapods with static libs
我尝试构建一个新的私有 cocoapods 库,其中嵌入了一个静态库(由外部供应商提供)。静态库由两种文件组成:XX-libs-simulator.a 和 XX-libs.a.
当我运行
"pod spec lint . --verbose --use-libraries"
我明白了
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** BUILD FAILED **
The following build commands failed:
Ld /Users/damien/Library/Developer/Xcode/DerivedData/App-fvzzowxkmpidjrgpraveufngzgnl/Build/Intermediates/App.build/Release-iphonesimulator/App.build/Objects-normal/x86_64/App normal x86_64
(1 failure)
-> MyOwnLibrary (1.0.1)
- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code.
- NOTE | [iOS] xcodebuild: ld: warning: ignoring file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXX-1.1.5.a, missing required architecture i386 in file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXX-1.1.5.a (2 slices)
- NOTE | [iOS] xcodebuild: ld: warning: ignoring file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXXB-2.11.1.a, missing required architecture i386 in file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXXB-2.11.1.a (2 slices)
- NOTE | [iOS] xcodebuild: ld: warning: ignoring file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXX-1.1.5.a, missing required architecture x86_64 in file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXX-1.1.5.a (2 slices)
- NOTE | [iOS] xcodebuild: ld: warning: ignoring file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXXB-2.11.1.a, missing required architecture x86_64 in file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXXB-2.11.1.a (2 slices)
- NOTE | [iOS] xcodebuild: clang: error: linker command failed with exit code 1 (use -v to see invocation)
Analyzed 1 podspec.
当我用 Xcode 编译它时,我没有遇到任何问题。我已经尝试更改以下值:
"VALID ARCHITECTURES":armv7、arm64 和 x86_64、i386
"BUILD ONLY ACTIVE ARCHITECTURES" :两者(是/否)
供您参考,外部库的 lipo 输出是:
lipo -info libXX.a
libXX.a are: armv7 arm64
lipo -info libXX-simulator.a
libXX-simulator.a are i386 x86_64
如何让 pod 像 XCode 一样编译我的库?
我的问题没有答案,但为了避免这个问题,我选择创建自己的没有 cocoapods 的库。我认为当您需要特定配置时,使用老式方法手动完成它可能是最简单和最好的方法。
我尝试构建一个新的私有 cocoapods 库,其中嵌入了一个静态库(由外部供应商提供)。静态库由两种文件组成:XX-libs-simulator.a 和 XX-libs.a.
当我运行
"pod spec lint . --verbose --use-libraries"
我明白了
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** BUILD FAILED **
The following build commands failed:
Ld /Users/damien/Library/Developer/Xcode/DerivedData/App-fvzzowxkmpidjrgpraveufngzgnl/Build/Intermediates/App.build/Release-iphonesimulator/App.build/Objects-normal/x86_64/App normal x86_64
(1 failure)
-> MyOwnLibrary (1.0.1)
- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code.
- NOTE | [iOS] xcodebuild: ld: warning: ignoring file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXX-1.1.5.a, missing required architecture i386 in file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXX-1.1.5.a (2 slices)
- NOTE | [iOS] xcodebuild: ld: warning: ignoring file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXXB-2.11.1.a, missing required architecture i386 in file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXXB-2.11.1.a (2 slices)
- NOTE | [iOS] xcodebuild: ld: warning: ignoring file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXX-1.1.5.a, missing required architecture x86_64 in file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXX-1.1.5.a (2 slices)
- NOTE | [iOS] xcodebuild: ld: warning: ignoring file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXXB-2.11.1.a, missing required architecture x86_64 in file MyOwnLibrary/MyOwnLibrary/ExternalLibs/XX-libs/libXXB-2.11.1.a (2 slices)
- NOTE | [iOS] xcodebuild: clang: error: linker command failed with exit code 1 (use -v to see invocation)
Analyzed 1 podspec.
当我用 Xcode 编译它时,我没有遇到任何问题。我已经尝试更改以下值:
"VALID ARCHITECTURES":armv7、arm64 和 x86_64、i386
"BUILD ONLY ACTIVE ARCHITECTURES" :两者(是/否)
供您参考,外部库的 lipo 输出是:
lipo -info libXX.a
libXX.a are: armv7 arm64
lipo -info libXX-simulator.a
libXX-simulator.a are i386 x86_64
如何让 pod 像 XCode 一样编译我的库?
我的问题没有答案,但为了避免这个问题,我选择创建自己的没有 cocoapods 的库。我认为当您需要特定配置时,使用老式方法手动完成它可能是最简单和最好的方法。