我正在尝试创建一个Flutter插件来使用一个本地库。我正在尝试使用的这个库存储在一个私有库中,可以与Swift Dependency Manager一起使用。
这让我很头疼,因为我不能在我的插件中添加一个私有仓库依赖项(我找不到一种方法在.podspec文件中做到这一点),所以我所做的:
1.我已经使用Swift Package Manager将插件添加到Example项目中
1.手动将MyDependency.xcframework
文件夹复制到MyPlugin/ios
文件夹
1.在podspec文件中引用它,如下所示:
s.preserve_paths = 'MyDependency.xcframework'
s.xcconfig = { 'OTHER_LDFLAGS' => '-framework MyDependency' }
s.vendored_frameworks = 'MyDependency.xcframework'
这样我就可以在插件的源代码中使用MyDependency。
我目前的问题是:这仅在模拟器中有效。
在此之前,该项目在实际设备中运行时没有任何问题。
这是我每次尝试在真实设备中运行时收到的错误消息:
另外,我已经直接从Swift Dependency Manager中使用依赖项做了一个测试,运行良好。我认为问题是我将框架添加到插件的方式。
3条答案
按热度按时间dbf7pr2w1#
我通过在
xxx.podspec
中添加以下代码行来使我的代码工作:请注意
s.preserve_paths
末尾的/**/*
下面是完整的
xxx.podspec
文件:确保将
xxxxxx.xcframework
目录复制到.../xxx/ios/xxxxxx.xcframework
(您的xxx.podspec
插件所在的位置)将
xxxxxx.xcframework
添加到Pods
方案以便能够导入它运行flutter命令创建插件ie时,
Frameworks
目录应该在Pods
方案下。flutter create --org com.xxx --template=plugin --platforms=android,ios -a java -i swift xxx
个来源:开发软件包和插件
1.导航到
Pods
方案,然后右键单击Frameworks
1.单击
Add Files to "Pods"...
1.导航到
xxxxxx.xcframework
所在的ios
目录的根目录1.取消选中
Copy items if needed
1.选择
Create folder references
1.检查
Pods-Runner
1.检查您的插件ie.
xxx
1.单击
Add
将
xxxxxx.xcframework
嵌入到项目中1.点击
Pods
方案1.在
TARGETS
中选择Pods-Runner
1.单击
General
选项卡1.确保
xxxxx.xcframework
位于Frameworks and Libraries
下方(如果没有,请单击+添加)1.将
Embed
更改为Embed & Sign
1.点击你的插件,即
xxx
1.确保
Frameworks and Libraries
下面有xxxxx.xcframework
1.将
Embed
更改为Embed & Sign
x1c4d 1x指令集
1.同样,对于
Pods
scheme下面的两个目标,接下来的步骤应该已经很好了,但只需检查一下1.单击
Build Phases
1.单击
Link Binary With Libraries
1.确保
xxxxx.xcframework
存在,如果不存在,请单击+添加xxxxx.xcframework
,并将Status
设置为Required
现在,您应该能够导入框架并在代码中引用它,并且还应该可以完美地发布。
希望这能有所帮助,祝你好运。我希望这不会很快再次改变
eqfvzcg82#
在做了一些研究之后,我发现some links给了我一个关于真正问题的想法...
为了解决这个问题,我在主项目的构建过程中添加了一个简单的脚本。
此脚本将代码签名添加到内部
.framework
文件。vqlkdk9b3#
如果以上修复都不起作用,但仍然出现类似“framework xxx not found”的错误,请验证
xxx.xcframework
和xxx.framework
文件夹是否同名。我花了几天时间未能将
.xcframework
添加到Flutter插件中,结果发现命名不匹配。