问题标签 [swift-custom-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 将框架和应用程序扩展目标添加到 IOS 应用程序项目中,我做对了吗?
我正在研究 IOS/Swift 开发,我想构建一个 IOS 应用程序,将来会有自己的 Today Extension。我读过最好将应用程序及其扩展之间的通用逻辑(例如访问 Internet 资源、对结果执行某些工作等的逻辑)放入自定义框架中。因为我认为我需要在开发应用程序期间更改框架和应用程序代码,我想避免在单独的项目中构建框架,而不是使用 Show In Finder 功能来定位框架包,然后将其拖放到应用程序中项目..所以我想知道这是否是使用应用程序设置工作区的正确方法,它使用的框架和应用程序的今日扩展:
- 使用 IOS App 目标创建一个新项目
- 在 Project Navigator 中选择项目,然后选择Editor->Add Target...并指定一个Cocoa Touch Framework
- Editor->Add Target...并指定Today Extension
- 在链接框架和库中添加框架
通过这种方式,我看到对框架源的更改不需要重新编译框架目标,可能是因为即使我只构建和运行使用该框架的 IOS App 目标,项目也知道需要重新编译框架源?我做对了吗?我已经看到,以这种方式创建的 Today Extension 没有在 IOS App 的Build Phases -> Target Dependencies中列出框架,但是当我更新它时,它们都正确地使用了框架的更新代码。
然后,我在编译项目时注意到以下警告,但我不知道它是否与我设置项目的方式有关:
顺便说一句,产品文件夹中的条目总是红色是否正常?是不是因为我没有为 IOS 设备构建的付费开发者帐户,所以我只为 IOS 模拟器构建?这是否会阻止我构建一个可以为其他项目导出的框架,因为我无法通过右键单击框架产品并选择在 Finder 中显示来找到框架包(因此我无法拖放它到另一个项目)?
我希望我已经足够清楚了,你会指出我正确的方向,以了解开始我的新项目的建议方式是什么:)
ios - 创建自定义框架ios时如何删除警告?
我创建了自定义框架,它工作得也很好,但在日志中显示警告。我在自定义框架类中导入了 GoogleMobileAds 框架。
GAD_GTMStringEncoding 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
GADSKStoreProductViewControllerDelegate 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
GADProductsRequestDelegate 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
GADActiveViewMonitor 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
GADActiveViewGMSGHandler 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
GADCachedFile 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
GADMAdNetworkAdapter 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
GADTiming 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
GADTimingManager 类在 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/LinTestApp.app 中实现/Frameworks/LinOneSDK.framework/LinOneSDK 和 /Users/vivek/Library/Developer/CoreSimulator/Devices/535B731F-791C-465A-BC4D-AF9473F73FAD/data/Containers/Bundle/Application/27D53836-5514-49BA-8DDE-4B26A4C64D25/ LinTestApp.app/LinTestApp。将使用两者之一。哪一个是未定义的。
ios - 是否可以在 ios 的自定义框架中使用 NSStreamDelegate 方法?
我正在尝试创建一个将与外部附件对话的自定义框架工作
我试过这样,streamDelegate 只会崩溃。没有此代码 _session?.inputStream?.delegate = self 它工作正常。
我怀疑是否可以在创建自定义框架时使用 ios 委托方法。如果不是,使用什么程序??
谢谢
swift - 使用 Swift 和 SpriteKit 的自定义框架:无法访问自定义类
我创建了我的自定义框架swift
,让我们说MyCustomFramework
。
在这个项目中,我添加了一个新的swift 文件:XYZCustomClass
它看起来像这样:
我将我的项目构建为iOS Generic Device
并获取我的MyCustomFramework.framework
位置。
然后我MyCustomFramework.framework
在个人项目中导入,并将其导入到好的文件中:
我终于得到以下错误:
“路径”/MyProject/GameScene.swift:44:20: XYZCustomClass' 不可用:找不到此类的 Swift 声明
作为附加信息,该项目已使用SpriteKit
语言swift
构建。
先感谢您,
ios - 使用 swift 创建 iOS 框架
我正在尝试使用 swift 创建一个 iOS 框架。我关注这个博客以及其他一些博客,但输出不是我想要的方式。
下面是我的原始源文件
将框架添加到我的项目中后,它会创建一个TestFramwork-Swift.h
你可以看到它不包含我的描述。我想要像 Apple 这样的框架头文件。
谁能帮我弄清楚这一点。我无法理解我在哪里做错了。我也无法在我的框架中添加更多 swift 文件。
ios - 自定义 ios 框架(静态框架)会在另一个线程中运行还是在 UI 线程中运行?
我对在 ios 中创建自定义框架非常陌生。我想在新的自定义线程中运行自定义框架,我该怎么做?
ios - 如何在 ios/swift 的自定义框架中使用 struct?
我需要在我的自定义框架中使用 struct,如何执行以下操作?
这是我的框架:
MyFramework.framework
这是我的应用程序:
我想要的是我的应用程序将数据发送到结构和我的框架以填充结构并完成功能。
如何做到这一点?
ios - 错误 ITMS-90206 无效的捆绑包包含不允许的文件“框架”
我通过 Xcode 将我的应用程序上传到商店时遇到问题,尤其是这个。
我看到很多关于这个错误的帖子,但都在谈论Extension App
,我不使用。
我正在使用Custom framework
和Cocoapods
。
你可以在这里看到我的树:
- XXX是我的项目应用名称
- SharedXXX是我的
custom framework
- Pods是由创建的项目
cocoa pods
这是我的可可podFile
:
custom framework
( SharedXXX )的构建设置:
我将 Embedded 属性设置为Yes
custom framework
( SharedXXX )的常规设置:
Cocoapods 提供的框架是链接的。
最后,
主项目的常规设置(应用程序项目:在树上称为XXX )
任何想法 ?
ios - iOS 框架互操作性
我目前正在重构一个包含大量类的 iOS 应用程序,并且根据要求,我制作了一些 CocoaTouch 框架(同样,根据要求,不是静态库)来根据它们的目的(模型、请求等)包含这些类. 但是,框架 A包含我需要在框架 B中使用的类,我想问是否有人知道如何“连接”这两个框架?像某种链接,也许?