gpt4 book ai didi

swift - 具有依赖项 cocoapods 链接错误的供应商框架

转载 作者:行者123 更新时间:2023-12-04 04:11:49 25 4
gpt4 key购买 nike

我需要发布一个编译过的框架——我们称之为 Abc.framework with cocoapods。

这个框架有一些依赖——假设我需要 NomosiKeychainSwift .

播客文件:

platform :ios, '10.0'
use_frameworks!

target 'Abc' do
pod "Nomosi", "0.1.2"
pod "KeychainSwift", "18.0"
end

我能够使用脚本构建一个胖框架 like this .

播客规范:

Pod::Spec.new do |s|
s.name = 'Abc'
s.version = '0.0.1'
s.summary = 'Abc description.'
s.description = 'Abc looong description.'
s.homepage = 'https://test.com'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'Author' => 'me@test-email.com' }
s.source = { :git => 'https://github.com/test/this-is-not-a-repo.git', :tag => s.version.to_s }
s.ios.deployment_target = '10.0'
s.public_header_files = "Build/Abc.framework/Headers/*.h"
s.source_files = "Build/Abc.framework/Headers/*.h"
s.vendored_frameworks = 'Build/Abc.framework'
s.dependency 'KeychainSwift', '18.0'
s.dependency 'Nomosi', '0.1.2'
end


现在,如果我使用本地 pod 创建一个演示项目,它会编译但会出现运行时崩溃:
dyld: Symbol not found: _$s6Nomosi15ServiceResponseP5parse4dataxSg10Foundation4DataV_tKFZTq
Referenced from: /Users/mario/Library/Developer/CoreSimulator/Devices/DFF39FE4-F274-4E4E-9710-AB24B043CFB0/data/Containers/Bundle/Application/A9C811DE-19D6-4535-996B-B5F2D142D691/AbcDemo.app/Frameworks/Abc.framework/Abc

如果 podspec 指向实际的源代码(而不是传送编译好的胖框架),应用程序就不会崩溃。

这可能与框架中的一些链接错误(@rpath?)有关,但我真的不知道如何修复它。

最佳答案

构建脚本可能需要选项 BUILD_LIBRARY_FOR_DISTRIBUTION=YES我只能在 https://xcodebuildsettings.com/ 找到最少的文档:

Ensures that your libraries are built for distribution. For Swift,this enables support for library evolution and generation of a moduleinterface file.


我假设该选项还应该确保任何随机客户端库或应用程序可以使用的所有符号都被正确导出。

关于swift - 具有依赖项 cocoapods 链接错误的供应商框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61589903/

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