Skip to content
tstellanova-sfdc edited this page Feb 28, 2012 · 6 revisions

(Something) doesn't work.

Did you run the install.sh script mentioned in the readme? If not, try that first.

I'm using Xcode 3.2.6 and I'm unable to run install.sh

Currently SalesforceMobileSDK-iOS requires Xcode 4.0+. The most recent stable release is supported on Xcode 4.2.

install.sh fails with Xcode 4.3

We currently recommend Xcode 4.2. However, if you've already installed 4.3 there is a known issue with Xcode 4.3 that requires you to run the following command:

sudo xcode-select -switch /Applications/Xcode.app/

before running install.sh. Note that the xcode-select command can also be used to switch between 4.2 and 4.3 if you happen to have both installed in parallel.

I get all kinds of compile errors when I build an SDK project using Xcode 4.0+, such as"ARC forbids explicit message send of 'release' "

The issue here is that somehow ARC (Automatic Reference Counting) got turned on in the Xcode project. Currently we do not support ARC. Fortunately, it's easy to turn off ARC for a whole project:

Basically you click the project in the project navigator, select "Build Settings" in the middle pane tabs, search for "auto" in the searchbox, which should find "Objective-C Automatic Reference Counting". Toggle that value to "No".

Unfortunately the ARC checkbox in the New Project from Template dialog is not under our control as it comes from your personal Xcode settings (and if you've never run Xcode 4.0+ before, it's turned on by default).

I can't find the /native/dependencies folder mention in the readme.

This folder is generated by running the install.sh script mentioned in the readme.

SFOAuthCredentials initWithIdentifier:clientId: takes two parameters. What is the purpose of the "identifier" and "clientId" parameters?

The purpose of providing separate identifier and clientId parameters is that you can (potentially) allow the user to switch between user accounts on the same instance. Many applications will only allow one user login for the app: in this case you can simply provide a default value for identifier, eg: SFOAuthCredentials *credentials = [[[SFOAuthCredentials alloc] initWithIdentifier:@"MyIdentifier" clientId:remoteAccessConsumerKey] autorelease];