【发布时间】:2020-05-04 10:17:45
【问题描述】:
我需要发布一个已编译的框架 - 我们称之为 Abc.framework with cocoapods。
这个框架有一些依赖——假设我需要Nomosi 和KeychainSwift。
Pod 文件:
platform :ios, '10.0'
use_frameworks!
target 'Abc' do
pod "Nomosi", "0.1.2"
pod "KeychainSwift", "18.0"
end
我能够使用脚本like this 构建一个胖框架。
Pod 规格:
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 指向实际源代码(而不是提供已编译的 fat 框架),则应用不会崩溃。
这可能与框架中的一些链接错误有关(@rpath?),但我真的不知道如何修复它。
【问题讨论】:
-
我遇到了非常相似的问题。这对我有帮助:stackoverflow.com/questions/64657668/…
标签: swift xcode frameworks cocoapods