Tag: 框架

“embedded式dylib /框架只能在iOS 8或更高版本上运行”警告的后果

使用Xcode 6.x,我们可以使用CocoaTouch Framework模板来构build一个框架库,当我们构build时,Xcode将为我们创build.framework,这非常棒。 在我们的框架中,我们希望支持iOS 7.1及更高版本,因此对于Deployment Target(在我们的框架中),我们指定了7.1。 现在,当我们构build时,我们看到一个警告:“embedded式dylib /框架只能在iOS 8或更高版本上运行”。 我已经阅读了一些关于这个主题的博客文章,至于在iOS 7.1上运行它,这个警告可以被忽略,因为它会运行良好(仍然需要testing以确保)。 我所关心的是,我在Stack Overflow上阅读了一篇文章,说苹果可能会在App Store中拒绝一个应用程序(请参阅: iOS8中仅支持Xcode 6和Embedded Frameworks ) 它只适用于在Xcode的应用程序链接到它在通用>embedded式库? 我们希望我们的客户链接到我们的框架的方式是: 通过CocoaPods 通过在构build阶段>链接二进制库中引用.framework 我需要了解App Store在什么情况下会拒绝使用我们的CocoaTouch框架并支持7.x iOS的应用程序。

如何在iOS应用程序中更新框架?

我正在使用Nuance的SpeechKit框架编写一个应用程序。 我刚刚下载了一个新版本的框架,其中包含一些类中的新方法。 为了升级,我删除了框架并重新添加了新的框架。 当我在Xcode上右键单击框架并单击“显示在finder中”时,它将显示新的框架。 当我在Xcode中打开框架的“Headers”子文件夹时,我看到了新的方法。 问题是我的类似乎仍旧引用旧位置的头文件,因为新的方法在我的应用程序中是不可见的。 如何正确升级框架? Xcode中是否还有其他地方包含SDK的path引用?

无法从自定义dynamic框架(Swift)访问类

我的testingdynamiciOS框架XYZFramework包含一个类XYZ 。 但是,即使在声明之后: import XYZFramework 我无法访问这个类,任何尝试产生以下错误: Use of unresolved identifier 'XYZ' 我该如何解决这个问题?

错误:iPhone私人框架“没有这样的文件或目录”

我已经添加了私人框架到我的项目。 当我build立在DEVICE | RELEASE一切工作正常,我能够ldid -S应用程序,并成功启动我的设备上。 但是,在模拟器中尝试编译和执行时,出现如下所示的“没有这样的文件或目录”的错误:(我也得到两次错误,这也是奇怪的。) Line Location HomeProfileViewController.h:10: error: BluetoothManager/BluetoothManager.h: No such file or directory 下面是我现在有的项目和构build设置,也许有人可以find一个错误,让我知道,这将是太棒了! 项目设置: PRIVATE_HEADERS_FOLDER_PATH = "/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include" PUBLIC_HEADERS_FOLDER_PATH = "/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include" USER_HEADER_SEARCH_PATHS = "/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include" OTHER_CFLAGS = "-I/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include-I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include-I/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/arm-apple-darwin9/4.0.1/include-F/System/Library/Frameworks-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks-DMAC_OS_X_VERSION_MAX_ALLOWED=1050" 目标build设设置: PRIVATE_HEADERS_FOLDER_PATH = "/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks" FRAMEWORK_SEARCH_PATHS = "$(inherited) $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks" USER_HEADER_SEARCH_PATHS = "/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include/**" OTHER_CFLAGS = "-I/Developer/SDKs/iPhoneOS.sdk/Versions/iPhoneOS3.0.sdk/include-I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include-I/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/arm-apple-darwin9/4.0.1/include-F/System/Library/Frameworks-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks-DMAC_OS_X_VERSION_MAX_ALLOWED=1050" 注意:path中的引号实际上并不在我的项目中,所以我把它们放在网站中,这样网站将会更好地语法化它们。 苹果蠹

如何在应用程序项目中使用Cocoa Touch框架

我很熟悉构build单一的iOS应用程序,但我坚持使用Cocoa Touch Framework来共享多个应用程序的通用代码。 问题: 框架的头文件不可见 /不可链接到消费的应用程序项目。 我做了什么: 1.我创build了一个名为“libTestFramework”的项目“Cocoa Touch Framework” 用一个方法添加一个“GoodMorning.h / m”类 class级从“项目”改为“公共” 成功build立项目并最终closures它 2.我创build了一个名为“FrameworkTester”的单一视图应用程序 然后,我将Finder中的文件“libTestFramework.xcodeproj”拖放到项目导航器根节点下的XCode项目“FrameworkTester”中(请参见下面的截图) 在目标“FrameworkTester”中,我添加了“Target Dependencies”下的libTestFramework和“Link Binary With Libraries”下的“libTestFramework.framework”。 3.在App项目中: 我试图在ViewController.h中从框架中导入“libTestFramework.h”文件,但是它不会被find。 我误解了什么? 我创build了一个公共的github-Repository包含两个项目来重现: https : //github.com/itinance/testCocoaTouchFramework 一些截图如下:

iOS崩溃:库未加载mremap_encrypted

应用程序审查小组说,我的应用程序始终在启动时崩溃,他们给我一些崩溃日志,看起来像这样: Dyld Error Message: Dyld Message: Library not loaded: @rpath/RestKit.framework/RestKit Referenced from: /var/mobile/Containers/Bundle/Application/EF2027CE-CEE4-4DB3-AC86-7AA3796FE67C/Udinn.app/Udinn Reason: no suitable image found. Did find: /private/var/mobile/Containers/Bundle/Application/EF2027CE-CEE4-4DB3-AC86-7AA3796FE67C/Udinn.app/Frameworks/RestKit.framework/RestKit: mremap_encrypted() => -1, errno=12 for /private/var/mobile/Containers/Bundle/Application/EF2027CE-CEE4-4DB3-AC86-7AA3796FE67C/Udinn.app/Frameworks/RestKit.framework/RestKit Dyld Version: 370.1 这是dynamic链接错误,似乎加载RestKit.framework时失败(其他日志是关于其他框架,如SwiftAddressbook,TransitionKit,但都有相同的原因),我看到很多人有一个类似的错误与“mmap错误1 “,但是没有任何人遇到与我一样的”mremap_encrypted“错误。 问题是我不能重现它,所以我不知道是否上传一个新的二进制文件可以工作。 任何机构都有一个想法这是什么意思,如何解决它? 谢谢。

将框架转换为库

我想在iOS应用程序中使用下面链接中find的框架。 我已经在模拟器中工作,但经过一些挖掘,看起来你无法在设备上使用框架,特别是通过App Store分发时。 如果我错了,请纠正我。 https://github.com/mirek/YAML.framework/ 我将如何去把这个框架转换成一个图书馆? 我已经看了简单的拖动文件从框架到应用程序不起作用。 提前致谢。

Swift,iOS 8+框架

我想创build一个共享的Swift库(也就是Cocoa Touch Framework)来在我的两个iOS应用程序之间共享。 我不是一个全职的iOS开发人员,所以我在XCode等知识上有很多空白。 我发现这篇文章创build你的第一个iOS框架,并认为我是免费的家庭:-)。 可悲的是,我不能工作,主要是因为我不知道我在做什么。 我只是想在我的两个应用程序之间创build一个共享Swift代码的(私有)框架(库)。 我想在框架中使用CocoaPods来引入其他框架,如Alamofire。 我不打算公开这个框架。 我几乎不明白为什么用Carthage(vs. CocoaPods)作为pipe理框架并将其导入消费应用程序的机制。 但是,这个例子混合了Carthage和CocoaPods,并build立了一个我认为不需要的Podspec,并让我困惑。 在文章中,总的来说,子项目的概念,拖动迦太基下载的框架进入框架,并在消费应用程序“import”共享框架本身都混淆了我。 我想知道我为什么这样做,以及它的后果是什么。 那么,我是否以这种错误的方式去做? 有没有人有一个脑死亡简单的秘诀在两个相关的应用程序之间私下共享Swift代码和其他工件? 有谁能解释这个理论吗? 当我考虑重复代码时,我得到的时间很less,我的应用程序和我的肉体爬行,所以我浪费了无数小时试图find那个简单的指南和更多的时间试图跟随我发现的 – 所有的令人失望的结局。 非常感激任何的帮助。 谢谢彼得

如何从联系人框架ios9导入联系人

如何使用Contact Framework iOS 9添加多个电话号码 CNMutableContact *contact = [test mutableCopy]; CNLabeledValue *homePhone_1 = [CNLabeledValue labeledValueWithLabel:CNLabelHome value:[CNPhoneNumber phoneNumberWithStringValue:@"019312-555-1212"]]; CNLabeledValue * homePhone_2 = [CNLabeledValue labeledValueWithLabel:CNLabelHome value:[CNPhoneNumber phoneNumberWithStringValue:@"312-555-1219"]]; [contact.phoneNumbers addObjectsFromArray:@[homePhone_1]]; [contact.phoneNumbers addObjectsFromArray:@[homePhone_2]]; CNSaveRequest *request = [[CNSaveRequest alloc] init]; [request updateContact:contact]; 请帮助家伙。 这不起作用。

未定义的符号体系结构..在dynamic框架中

我正在研究一个iOS框架,该框架包含多个第三方框架,并使用UnitySendMessage C方法与Unity进行通信。 我想创build一个dynamic框架(支持iOS8 +),但我偶然发现了以下编译错误: Undefined symbols for architecture arm64: "_UnitySendMessage", referenced from: …. ld: symbol(s) not found for architecture arm64 这个方法在我的.m类中调用,并在我的.h文件中声明如下: void UnitySendMessage(const char* obj, const char* method, const char* msg); 当编译为一个静态库时,它编译和工作正常,但我得到其他embedded式第三方框架崩溃。 由于我无法控制这些框架,我更愿意创build一个dynamic框架。 我已经尝试了许多编译器设置基于我可以find的所有其他职位,但由于我需要支持多种体系结构的embedded式框架。 没有一个设置为我工作。 另外我试图创build另一个静态框架,并将其embedded到我的“父”dynamic框架。 我检查这与lipo和架构似乎被添加,但我仍然得到相同的未定义符号错误。 我已经为此工作了2天,所以我真的希望有人能指出我正确的方向 UPDATE 添加标志“-undefined dynamic_lookup”解决了编译问题。 但是,在Unity项目中添加dynamic框架时,触发“UnitySendMessage”方法时会崩溃。 dyld`dyld_fatal_error: *创build静态框架时,该方法不会崩溃并正常工作。 仍然不明白在这种情况下与dynamic框架有什么不同。 该方法在我的.h文件中声明如下: #ifdef __cplusplus extern "C" { void UnitySendMessage(const char* obj, […]