One month down in 2025: How are your resolutions coming along? Check out how to get back on track here.
Forum Discussion
Bob S.15
9 years agoCollaborator | Level 9
How to compile and run the DBRoulette example for iOS
I'm trying to get a better handle on how to use the objective-C Dropbox SDK. How do you compile and run the Example project DBRoulette? I've tried opening the DBRoulette xcode project, but it cannot find the header file for the framework: /
Users/bob/Desktop/iphone/dropbox-sdk-obj-c-master/Examples/DBRoulette/Subproject/DBRoulette/DBRoulette/AppDelegate.m:8:9: 'ObjectiveDropboxOfficial/ObjectiveDropboxOfficial.h' file not found
The "ObjectiveDropboxOfficial.xcodeproj" project appears in red as part of DBRoulette, so there must be some issue with it not finding it. I tried dragging it in myself and replacing the red version, then I compiled the framework target, but that resulted in me getting many more errors than just that first one.
Has anyone compiled and run this example? I'm sure it is simple but the way this Dropbox SDK is set up is pretty unfamiliar to me, it is unlike most Objective C projects I've ever seen. The documentation is not very Objective-C friendly IMO.
Thanks for any suggestions,
Bob
- Greg-DB
Dropbox Staff
There are three versions of the examples provided:
https://github.com/dropbox/dropbox-sdk-obj-c/tree/master/Examples/DBRoulette
There's one for each supported installation method, and they're pre-configured for their respective installation method, but they don't come with the SDK pre-installed. You'll need to follow the instructions for the respective installation method, just as you would with your own app:
https://github.com/dropbox/dropbox-sdk-obj-c#sdk-distribution
Based on the path, it looks like you're trying the "subproject" method example. Did you finish the instructions for that?
https://github.com/dropbox/dropbox-sdk-obj-c#manually-add-subproject- Bob S.15Collaborator | Level 9
Hey Greg,
I used the Carthage method for my own app. This installed the dropbox SDK within my app folder -- and it includes the Example project(s).
So are you saying that in order to run the Example project I have to run "carthage update --platform iOS" again within the Example project's Carthage folder? Which downloads *another* entire copy of the SDK including another Example project?
If I do that, then the DBRoulette project already has the framework added, and the run script. However, when I compile I get a lot of errors:
ARC Semantic Issue Group /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:52:15: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:53:65: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:55:22: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:56:53: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:58:22: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:59:45: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:61:22: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:62:55: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:64:22: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:65:52: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:67:22: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:68:55: Receiver type 'DBError' for instance message is a forward declaration /Users/bob/Desktop/iphone/Voxel/Carthage/Checkouts/dropbox-sdk-obj-c/Examples/DBRoulette/Carthage/DBRoulette/DBRoulette/PhotoViewController.m:144:15: Receiver type 'DBError' for instance message is a forward declaration
Can you tell what I am doing wrong?
Thanks
Bob
- Greg-DB
Dropbox Staff
Yes, that downloads the library and installs it into that project.
It looks like you're running in to an issue with the sample app not being up to date with the latest version of the library though. We're looking into it, but you can use 2.0.5 for now. That is, use a Cartfile like:
# ObjectiveDropboxOfficial github "https://github.com/dropbox/dropbox-sdk-obj-c" ~> 2.0.5
- Steve L.32Explorer | Level 4
I keep re-visiting this v1 -> v2 project. First there was no Objective-C path, and now there are 3 "methods". Why is it not possible to just provide a Framework as in v1? I have no idea what CocoaPods or Carthage is/are but it seems I must install at least Carthage on my Mac, which I have no desire to do, to do anything. True? Or am I just grumpy and missed somethoing obvious :) ?
- Greg-DB
Dropbox Staff
Steve L.32 Thanks for the feedback. In the past, we've received requests to instead supply the SDK via a package manager, such as CocoaPods or Carthage. They require some setup, but it makes it easier to install updates to the SDK aftewards. I'll send this along as a request to offer the SDK as a standalone framework.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.5,950 PostsLatest Activity: 17 hours ago
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!