- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有这个代码库,我决定把它变成一个框架,以便在我 future 的应用程序中重用。
所以我继续为 Cocoa Touch Framework 创建了一个 Xcode 项目。
为了让事情简单化(和工作区无关,至少在我掌握框架的基础知识之前),我创建了一个“测试平台”iOS 应用程序,它嵌入/依赖于/链接到框架作为一个 其他目标到同一项目(不是一个单独的项目)。当然,我的想法是在添加或修改框架时使用此应用程序测试我的框架功能。
所以我的项目有两个目标:
...当然还有两个方案(每个方案构建一个):
我还在修改代码,使其在 iOS 和 macOS 上都能正常工作。警告:未找到目标“MyFramework (macOS)”的伞头,将不会生成模块映射。
此外,我还在修改代码,使其在 iOS 和 macOS 上都能正常工作。
所以我又添加了两个目标:
...aslo 设置,以便应用程序目标依赖、链接到并嵌入框架。
接下来,我决定进行一些清理和文件重新排列,以在文件数量开始进一步增长之前保持整洁和有意义。
经过反复试验,我发现了一些事情:
1) 如果我更改 iOS 框架的目标名称并尝试构建 iOS 应用程序,我会收到以下警告:
/Users/Me/Projects/MyFramework/Code/MyFramework/:1:1: Umbrella header for module 'MyFramework' does not include header 'PublicHeaderXX.h'
...对于包含在我的主 header 中的每个公共(public) header :
// In this header, you should import all the public headers of your framework
// using statements like #import <MyFramework/PublicHeader.h>
#import <MyFramework/PublicHeader01.h>
#import <MyFramework/PublicHeader02.h>
#import <MyFramework/PublicHeader03.h>
...
2) 如果我在build设置中更改 iOS 框架的产品名称,我会得到错误:
Lexical or Preprocessor Issue | 'MyFramework/MyFramework.h' file not found
...指向我在应用程序源代码中导入它的位置:
#import <MyFramework/MyFramework.h>
对于 Mac 框架目标,我可以更改目标名称,但如果我更改产品名称,我会收到警告:
Warning: no umbrella header found for target 'MyFrameworkMacRenamed', module map will not be generated
所以我问...
有没有办法为每个框架目标设置我想要的目标名称和产品名称?
我确定一定有什么地方我应该“修改以匹配”并消除一些差异,但我是框架的新手并且无法弄清楚......(什么是'伞头'无论如何?)
最佳答案
事实证明,“umbrella header”只不过是框架的“主” header ,它是在您首次创建项目或框架目标时由 Xcode 自动创建的,并且它必须与目标(如解释的那样,例如 here )。
至于为什么两个目标和产品必须命名相同,我只能猜测这与保持链接不太复杂有关(应用程序未“链接”反对',所以我想产品名称是任何你想要的都没有损害)。
我试图用单一 header 来控制所有(平台),使用 TargetConditionals.h 等来导入 Cocoa.h 或 UIKit.h,这是不可能的,因为Xcode 不允许您对两个目标使用相同的名称,并且它们必须与它们的 header 名称相匹配!
所以,我决定:
<MyFramework/MyFramework.h>
: 经典。接受无替代品。专为 iOS 和
<MyFrameworkMac/MyFrameworkMac.h>
: 现在也可在 Mac 上使用! - 来自为您带来 MyFramework 的人
关于ios - 更改框架的目标名称或产品名称时找不到伞头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39467844/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!