NordicSemiconductor / IOS-DFU-Library

OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs
http://www.nordicsemi.com
BSD 3-Clause "New" or "Revised" License
520 stars 214 forks source link

Carthage configuration fixed #524

Closed philips77 closed 9 months ago

philips77 commented 9 months ago

This PR fixes #518.

Basically, the only thing that had to be done was to set xcode scheme as shared. However, just sharing the existing scheme made the DFU framework named iOSDFULibrary. As in version 4.14 the name of the CocoaPods module for was renamed from iOSDFULibrary to NordicDFU, we decided to rename the scheme as well, so the generated Carthage framework is also called NordicDFU.

To make things even better, configuration of project files was based on one from ZipFoundation, where the root folder contains a standalone xcodeproj file with exported schemes and tests for the library. The Tests folder was moved from Test App to the root folder and added to that new project, where it can be tested on Mac.

Also, we made sure that the documentation generates correctly for all projects.

Emanuele9xx commented 3 months ago

I have the same issue (in both master and open_data branches), only zipfoundation was generated:

image
philips77 commented 3 months ago

The latest version of the library is 4.15.3 as of today, please use this one instead of 1.0.9b(19). All should work there.

Emanuele9xx commented 3 months ago

Hello, now I've another error (seems that a file is missing)

image
philips77 commented 3 months ago

Well.. this is because there isn't any folder named Example (moved here), the library was renamed to NordicDFULibrary. What is it that you're trying to do?

Emanuele9xx commented 3 months ago

Hello, finally cleaning and rebuilding all the project with the last version in the carthage conf I compiled both frameworks. I have to bind the DFU library in xamarin. Now it's ok, I can compile, and I find the functions I need but I have a problem when loading the fw file url, when I call the void DFUFirmware firmware = new DFUFirmware(firmwareUrl, DFUFirmwareType.Application); I get this error (could you please help me?):

Objective-C exception thrown.  Name: NSInvalidArgumentException Reason: -[NordicDFU.DFUFirmware initWithUrlToZipFile:]: unrecognized selector sent to instance 0x301f505f0
Native stack trace:
    0   CoreFoundation                      0x00000001a57c2b34 3A5F992A-D1CD-312E-BD2E-F7C66343A417 + 969524
    1   libobjc.A.dylib                     0x000000019d63ef78 objc_exception_throw + 60
    2   CoreFoundation                      0x00000001a5853eec 3A5F992A-D1CD-312E-BD2E-F7C66343A417 + 1564396
    3   CoreFoundation                      0x00000001a5708300 3A5F992A-D1CD-312E-BD2E-F7C66343A417 + 205568
    4   CoreFoundation                      0x00000001a5849760 _CF_forwarding_prep_0 + 96
    5   MX.iOS                              0x0000000113bcf150 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 249574368
    6   MX.iOS                              0x0000000113bbdaec _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 249503100
    7   MX.iOS                              0x00000001058001b8 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 10699848
    8   MX.iOS                              0x00000001057fffdc _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 10699372
    9   MX.iOS                              0x0000000106128480 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 20301584
    10  MX.iOS                              0x00000001140f9b00 mono_pmip + 28164
    11  MX.iOS                              0x00000001141b42cc mono_pmip + 792016
    12  MX.iOS                              0x00000001141b7b0c mono_pmip + 806416
    13  MX.iOS                              0x00000001056ec83c _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 9571020
    14  MX.iOS                              0x00000001056ef9a8 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 9583672
    15  CoreBluetooth                       0x00000001ca9ea524 1B7D30A2-ACC0-396D-92C4-12C5BDE64DE1 + 58660
    16  CoreBluetooth                       0x00000001ca9e9d78 1B7D30A2-ACC0-396D-92C4-12C5BDE64DE1 + 56696
    17  CoreBluetooth                       0x00000001ca9e9c5c 1B7D30A2-ACC0-396D-92C4-12C5BDE64DE1 + 56412
    18  CoreBluetooth                       0x00000001ca9e9b34 1B7D30A2-ACC0-396D-92C4-12C5BDE64DE1 + 56116
    19  libdispatch.dylib                   0x00000001ad5d113c B7D9D0A6-2414-37F2-9D03-1A25A474E2CF + 8508
    20  libdispatch.dylib                   0x00000001ad5d2dd4 B7D9D0A6-2414-37F2-9D03-1A25A474E2CF + 15828
    21  libdispatch.dylib                   0x00000001ad5da400 B7D9D0A6-2414-37F2-9D03-1A25A474E2CF + 46080
    22  libdispatch.dylib                   0x00000001ad5daf64 B7D9D0A6-2414-37F2-9D03-1A25A474E2CF + 48996
    23  libdispatch.dylib                   0x00000001ad5e14b4 B7D9D0A6-2414-37F2-9D03-1A25A474E2CF + 74932
    24  libdispatch.dylib                   0x00000001ad5e11b8 _dispatch_main_queue_callback_4CF + 44
    25  CoreFoundation                      0x00000001a570d51c 3A5F992A-D1CD-312E-BD2E-F7C66343A417 + 226588
    26  CoreFoundation                      0x00000001a570a218 3A5F992A-D1CD-312E-BD2E-F7C66343A417 + 213528
    27  CoreFoundation                      0x00000001a5709968 CFRunLoopRunSpecific + 608
    28  GraphicsServices                    0x00000001e99ff4e0 GSEventRunModal + 164
    29  UIKitCore                           0x00000001a7b7cedc 7BF01CFC-23F1-326A-AFD8-AD967FFECE28 + 2272988
    30  UIKitCore                           0x00000001a7b7c518 UIApplicationMain + 340
    31  MX.iOS                              0x0000000114281708 xamarin_UIApplicationMain + 60
    32  MX.iOS                              0x0000000108db1758 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 67000808
    33  MX.iOS                              0x00000001085c227c _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 58680588
    34  MX.iOS                              0x00000001085c24b0 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 58681152
    35  MX.iOS                              0x00000001057f2f10 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 10645920
    36  MX.iOS                              0x0000000106128480 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 20301584
    37  MX.iOS                              0x00000001140f9b00 mono_pmip + 28164
    38  MX.iOS                              0x00000001141b42cc mono_pmip + 792016
    39  MX.iOS                              0x00000001141ba5d4 mono_pmip + 817368
    40  MX.iOS                              0x00000001140d7e10 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 254853280
    41  MX.iOS                              0x00000001142c2388 xamarin_get_original_working_directory_path + 4496
    42  MX.iOS                              0x00000001057f16c8 _ZN11MLKITx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3_ + 10639704
    43  dyld                                0x00000001c8c2ad84 7BE2B757-3B3D-3E91-8CB7-74F3887660C7 + 23940

n.b. the zip is generated with NRF tool (vscode extension), I need to update a nRF52 via Ble

philips77 commented 3 months ago

What SDK is your fw based on? If based on nRF Connect SDK you should use nRF Connect Device Manager library/app instead. I'm not aware of any Xamarin binding for these libraries.

lele4warp commented 3 months ago

My dev is nRF52

philips77 commented 3 months ago

I'm asking about the SDK which you use for fw development. Is is based on Zephyr, or nRF5 SDK?

lele4warp commented 3 months ago

It's based on zephyr, we downloaded the sdk 2.6.0

philips77 commented 3 months ago

OK, so as I said

If based on nRF Connect SDK you should use nRF Connect Device Manager library/app instead. I'm not aware of any Xamarin binding for these libraries.

you should not use this library (IOS DFU Library), as it targets the previous nRF5 SDK only. File structure is different, GATT protocol is different, etc.

lele4warp commented 3 months ago

Thanks