标签: ios-frameworks

体系结构i386的未定义符号:"_SCNetworkReachabilitySetCallback"

我在openglES项目中使用xcode4,我已经从教程中添加了应用内购买代码:http://www.raywenderlich.com/2797/introduction-to-in-app-purchases

我添加了SystemConfiguration.framework但发生以下错误:

Ld /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest normal i386
    cd /Users/Eros/Desktop/blatestDB
    setenv MACOSX_DEPLOYMENT_TARGET 10.6
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Desktop/blatestDB -filelist /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Intermediates/blatest.build/Debug-iphonesimulator/SLQTSOR.build/Objects-normal/i386/blatest.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreGraphics -framework OpenAL -lz -framework MediaPlayer -framework AVFoundation -framework GameKit -framework StoreKit -o /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest

Undefined symbols for architecture i386:
  "_SCNetworkReachabilitySetCallback", referenced from:
      -[Reachability startNotifier] in Reachability.o
  "_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
      -[Reachability startNotifier] in Reachability.o
  "_SCNetworkReachabilityUnscheduleFromRunLoop", …
Run Code Online (Sandbox Code Playgroud)

frameworks objective-c ios-frameworks

34
推荐指数
6
解决办法
4万
查看次数

如何在Xcode 4上弱化链接框架?

我需要弱化一些框架与我的目标.
但我找不到怎么做......

如果我尝试在3.2模拟器上运行我的项目,我会收到以下错误:

dyld: Library not loaded: /System/Library/Frameworks/iAd.framework/iAd
Reason : Image not found
Run Code Online (Sandbox Code Playgroud)

谢谢 !

xcode frameworks objective-c weak-linking ios-frameworks

32
推荐指数
2
解决办法
1万
查看次数

如何检查Xcode7是否支持BITCODE框架

从Xcode 7开始,它成为第三方框架应该支持Bitcode的常见问题之一.我们还可以通过在Build设置中将ENABLE_BITCODE设置为NO来禁用BITCODE.但我不想把它关闭,而是我想将我的所有框架转换为兼容BITCODE.

那么除了在Xcode中编译框架之外,如何检查框架是否与BITCODE兼容.有时Xcode会为一个框架提供BITCODE兼容性错误,即使它们没有BITCODE支持,也会留下其他框架.

有没有工具/命令行检查?

ios ios-frameworks xcode7 bitcode

26
推荐指数
3
解决办法
1万
查看次数

iOS 8是否支持动态链接?

直到iOS7,由于安全问题,Apple不支持动态链接.开发人员之间的代码重用通常依赖于静态库,静态库是作为应用程序可执行文件的一部分构建的.

在iOS8中引入扩展似乎改变了一点,因为扩展是单独的可执行文件.在扩展及其包含应用程序之间共享代码是通过框架完成的.Apple在他们的发行说明中这样说:

适用于iOS的框架.iOS开发人员现在可以创建动态框架.框架是一组代码和资源,用于封装在多个项目中有价值的功能.框架与扩展完美配合,共享主应用程序和捆绑扩展可以使用的逻辑.

重点是我的.

资料来源:https://developer.apple.com/library/content/documentation/Xcode/Conceptual/WhatsNewXcode-Archive/Articles/xcode_6_0.html#//apple_ref/doc/uid/TP40014509-SW14

此外,在扩展开发指南中,他们解释了您可以通过"嵌入式框架"在扩展和包含应用之间共享代码.

资料来源:https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1

我的问题是 - 什么是嵌入式框架,它与动态框架有什么不同,我们真的会在iOS8中看到正确的动态链接吗?我读过的所有文档似乎都含糊不清.

ios ios-frameworks ios8 ios-app-extension

24
推荐指数
1
解决办法
1万
查看次数

iOS:澄清不同的搜索路径

XCode构建设置中有三种不同的搜索路径:

  • 框架搜索路径
  • 标题搜索路径
  • 图书馆搜索路径

任何人都可以澄清这些路径做什么以及它们用于什么?

xcode build-settings ios ios-frameworks

21
推荐指数
1
解决办法
9171
查看次数

实现PushKit并测试开发行为

我想在我的应用程序(Voip应用程序)中实现PushKit服务,但我有以下疑问:我看到我只能生成生产voip证书,如果我尝试在开发设备上测试voip推送通知服务,它是否有效?

这是我的实施测试:

使用这3行代码,我可以在didUpdatePushCredentials回调中获取push令牌,用于保存到我的服务器中.

PKPushRegistry *pushRegistry = [[PKPushRegistry alloc] initWithQueue:dispatch_get_main_queue()];
pushRegistry.delegate = self;
pushRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP];
Run Code Online (Sandbox Code Playgroud)

服务器端我生成一个只有警报文本的"正常"有效负载推送通知,然后我发送到存储在我服务器中的voip令牌.

我使用带有调试日志的回调,但它们永远不会被调用!

- (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(NSString *)type {

          NSLog(@"didInvalidatePushTokenForType");

}

-(void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type {

          NSLog(@"didReceiveIncomingPushWithPayload: %@", payload.description);

}

-(void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type {
     if([credentials.token length] == 0) {
           NSLog(@"voip token NULL");

          return;
     }

      NSLog(@"didUpdatePushCredentials: %@ - Type: %@", credentials.token, type);

}
Run Code Online (Sandbox Code Playgroud)

如果我尝试从我的服务器生成推送通知消息,以便先前上传的voip设备令牌,我从未通知didReceiveIncomingPushWithPayload回调,但是从服务器我得到200 ok消息(消息已成功发送)

apple-push-notifications ios ios-frameworks ios8

21
推荐指数
2
解决办法
3万
查看次数

CocoaPods/Podspec和*.framework

CocoaPods问题:

我已经创建了一个与内部静态库捆绑在一起的框架,具体取决于AFNetworking和资源包(基于这两个教程来创建FWKs http://www.blackjaguarstudios.com/blog/programming/2012/11/22/xcode- 45-creating-ios-framework-and-hold-my-hand-im-3-years-oldhttps://github.com/bclubb/iOS-Framework)

我想创建一个podspec,以便人们只需在他们的Podfile中添加一行,如果需要,可以在pod安装时添加我的框架和AFNetworking.

这可能吗?

objective-c ios ios-frameworks cocoapods

20
推荐指数
1
解决办法
9518
查看次数

CocoaPods文件引用是多个组的成员

我有一个分享扩展的应用程序.我的应用程序取决于CocoaLumberjack/Default,我的共享扩展依赖于CocoaLumberjack/Core.当我构建时use_frameworks!,我收到以下错误:

$ rm -rf Pods Podfile.lock; pod install
Updating local specs repositories
Analyzing dependencies
Downloading dependencies
Installing CocoaLumberjack (2.0.3)
Generating Pods project
Run Code Online (Sandbox Code Playgroud)

2015-10-28 10:46:04.015 ruby​​ [53095:3440989]警告:"CocoaLumberjack.framework"的文件引用是多个组的成员("Products"和"Products"); 这表明项目格式错误.只保留其中一个组的成员资格(但目标成员资格不受影响).如果要在多个组中引用同一文件,请在同一路径中添加另一个引用.

Integrating client project
Sending stats
Sending stats
Pod installation complete! There are 2 dependencies from the Podfile and 1 total
pod installed.

[!] [Xcodeproj] Generated duplicate UUIDs:
Run Code Online (Sandbox Code Playgroud)

PBXFileReference - /mainGroup/children/children:displayName:CocoaLumberjack.framework,explicitFileType:wrapper.framework,includeInIndex:0,isa:PBXFileReference,name:CocoaLumberjack.framework,path:CocoaLumberjack.framework,sourceTree:BUILT_PRODUCTS_DIR,,displayName:CocoaLumberjack .framework,explicitFileType:wrapper.framework,includeInIndex:0,赛:PBXFileReference,名称:CocoaLumberjack.framework,道:CocoaLumberjack.framework,sourceTree:BUILT_PRODUCTS_DIR ,,显示名:Pods_MyProject.framework,explicitFileType:wrapper.framework,includeInIndex:0,赛:PBXFileReference,名称:Pods_MyProject.framework,道:Pods_MyProject.framework,sourceTree:BUILT_PRODUCTS_DIR ,,显示名:Pods_MyShare.framework,explicitFileType:wrapper.framework,includeInIndex:0,赛:PBXFileReference,名称:Pods_MyShare.framework,道:Pods_MyShare .framework,sourceTree:BUILT_PRODUCTS_DIR ,,显示名:产品,赛:PBXGroup,名称:产品,sourceTree:,/产品/儿童/显示名:CocoaLumberjack.framework,explicitFileType:wrapper.frame 工作,includeInIndex:0,赛:PBXFileReference,名称:CocoaLumberjack.framework,道:CocoaLumberjack.framework,sourceTree:BUILT_PRODUCTS_DIR,/产品/ CocoaLumberjack.framework

这是我的Podfile:

workspace 'MyWorkspace'
xcodeproj 'MyProject/MyProject.xcodeproj'

use_frameworks!

source 'https://github.com/CocoaPods/Specs.git' …
Run Code Online (Sandbox Code Playgroud)

ios-frameworks cocoapods

20
推荐指数
3
解决办法
5530
查看次数

将swift框架导入Objective-c项目

我将swift框架导入Objective-c项目,如下所示:

@import MyFramework;
Run Code Online (Sandbox Code Playgroud)

问题是只有一些类被我导入框架的类识别.

被认可的班级:

public class RecognizedClass:UIViewController, WKNavigationDelegate, WKScriptMessageHandle 
 { ... } 
Run Code Online (Sandbox Code Playgroud)

这个课不是:

public class VeediUtils
{ ... } 
Run Code Online (Sandbox Code Playgroud)

它们都是公共的,为什么第一个在工作区被识别而另一个没有?

另外我在头文件MyFramework-Swift.h中看到一个类

@interface RecognizedClass : UIViewController <WKNavigationDelegate, WKScriptMessageHandler>
Run Code Online (Sandbox Code Playgroud)

出现而另一个不

这是为什么?

还指出,当我将swift框架导入swift项目时,同样的过程也能正常工作

objective-c ios ios-frameworks swift

19
推荐指数
2
解决办法
3万
查看次数

构建一个Swread框架,引用Objective-C代码

我正在开发一个用Swift编写的iOS项目,我想从常规的"app"项目中取出一些类,然后将它捆绑到一个可重用的Swift框架中(也许可以在Github和Cocoapods上公开发布) ).

我遇到了问题,因为框架看起来似乎不能有Objective-C桥接头,但为了编译我的框架代码,我需要引用几个Objective-C类(在这种情况下:Google Maps iOS SDK).

我还在我的框架项目中添加了GoogleMaps.framework作为链接库,但是,如何从Swift代码"导入"它?

使用当前工具和Swift版本甚至可以实现这一点,我该如何处理?

谢谢.

xcode objective-c ios ios-frameworks swift

18
推荐指数
1
解决办法
6659
查看次数