CoreBluetooth的iOS果酱

我写了一个Marmalade应用程序的扩展。 这个扩展使用CoreBluetooth。

当我尝试使用Marmalade系统部署工具构build应用程序时,出现以下错误:

WARNING: Undefined symbols for architecture armv7: WARNING: "_CBCentralManagerScanOptionAllowDuplicatesKey", referenced from: WARNING: -[RigCoreBluetoothInterface startDiscovery:timeout:allowDuplicates:] in libBluetooth.a(RigCoreBluetoothInterface.o) WARNING: "_CBAdvertisementDataLocalNameKey", referenced from: WARNING: -[RigLeBaseDevice setAdvertisementData:] in libBluetooth.a(RigLeBaseDevice.o) WARNING: -[RigLeDiscoveryManager findConnectedDevices:] in libBluetooth.a(RigLeDiscoveryManager.o) WARNING: "_OBJC_CLASS_$_CBUUID", referenced from: WARNING: objc-class-ref in libBluetooth.a(RigFirmwareUpdateManager.o) WARNING: objc-class-ref in libBluetooth.a(RigFirmwareUpdateService.o) WARNING: "_OBJC_CLASS_$_CBCentralManager", referenced from: WARNING: objc-class-ref in libBluetooth.a(RigCoreBluetoothInterface.o) WARNING: "_CBAdvertisementDataServiceUUIDsKey", referenced from: WARNING: -[RigAvailableDeviceData containsUuid:] in libBluetooth.a(RigAvailableDeviceData.o) WARNING: ld: symbol(s) not found for architecture armv7 ERROR: linking iOS executable failed 

正如你所看到的问题是目前我使用的CoreBluetooth项目在连接时没有定义。

我修改了marmalade扩展MKF文件,如下所示:

 #Autogenerated section for iphone platform support. Deleting these two comment #lines will cause the extension builder to re-output this section. if {{ not defined S3E_EXT_BLUETOOTH_DISABLE_ON_IPHONE and not defined S3E_EXT_BLUETOOTH_DISABLE}} deployments { iphone-link-opts="-framework CoreBluetooth" #Use this to bring in any additional link options needed iphone-link-lib="Bluetooth" iphone-link-libdir="lib/iphone" } 

请注意,我把CoreBluetooth框架放在link opts中,正如注释似乎表明的那样。 框架已经在那里了。

有没有人知道如何在构build和部署时制造橘子酱包括用于iOS的CoreBluetooth框架?