|
6 | 6 |
|
7 | 7 | The Salesforce Mobile SDK is a public, open-source SDK that enables developers to build mobile apps that integrate with the Salesforce platform. It is consumed by ISVs, SI partners, and internal Salesforce teams. |
8 | 8 |
|
| 9 | +**For user-facing overview and quick start**: See [readme.md](readme.md) |
| 10 | + |
9 | 11 | **Key constraint**: This is a **public SDK**. Every change is visible to external developers. Backward compatibility, deprecation cycles, and semver discipline are non-negotiable. |
10 | 12 |
|
11 | 13 | ## iOS Library Architecture |
@@ -49,6 +51,9 @@ MobileSync |
49 | 51 | - **Schemes**: Individual per library (`SalesforceSDKCore`, `SmartStore`, `MobileSync`, etc.) plus test schemes |
50 | 52 |
|
51 | 53 | ### iOS Build & Test Commands |
| 54 | + |
| 55 | +See [readme.md](readme.md) for basic setup. Commands below are for contributors running tests and analysis. |
| 56 | + |
52 | 57 | ```bash |
53 | 58 | # Initial setup (after clone) |
54 | 59 | ./install.sh |
@@ -143,7 +148,7 @@ xcodebuild test -workspace SalesforceMobileSDK.xcworkspace \ |
143 | 148 | 3. Follow BDD naming: `test_given[Precondition]_when[Action]_then[Expected]` |
144 | 149 | 4. Use existing test utilities and mocks already in the test targets. Don't create parallel mock infrastructure. |
145 | 150 | 5. Run the full test suite for the affected library after generation. Fix failures before committing. |
146 | | -6. If the code under test requires a Connected App or sandbox org, note this clearly in the test documentation. |
| 151 | +6. If the code under test requires an External Client App or sandbox org, note this clearly in the test documentation. |
147 | 152 | 7. If test generation reveals tightly coupled or untestable code, flag this in the PR description as a refactoring opportunity — do not restructure production code just to make tests pass. |
148 | 153 |
|
149 | 154 | --- |
@@ -204,12 +209,12 @@ These rules apply when Claude Code operates as an agent in these repos: |
204 | 209 |
|
205 | 210 | Understanding these concepts is essential for working in this codebase: |
206 | 211 |
|
207 | | -- **Connected App or External Client App**: A Salesforce configuration that defines OAuth2 client credentials (consumer key, callback URI, scopes). Every Mobile SDK app requires one. |
| 212 | +- **External Client App or Connected App (legacy)**: A Salesforce configuration that defines OAuth2 client credentials (consumer key, callback URI, scopes). Every Mobile SDK app requires one. External Client Apps are the preferred model. |
208 | 213 | - **Soup**: SmartStore's unit of storage — analogous to a database table. Has a name, index specs, and entries (JSON blobs). |
209 | 214 | - **Smart SQL**: SmartStore's SQL dialect for querying across soups. Uses `{soupName:fieldPath}` syntax. |
210 | 215 | - **Sync Target**: MobileSync's abstraction for defining what data to sync and how. Includes SOQL down targets, SOSL down targets, MRU targets, layout targets, metadata targets, and various up targets (standard, batch, advanced). |
211 | 216 | - **User Agent**: The SDK constructs a specific user agent string that identifies the SDK version, app type, and platform. Don't override this. |
212 | | -- **SalesforceSDKManager**: The singleton entry point for SDK configuration and lifecycle. Manages connected app settings, auth scopes, login behavior, and user account events. |
| 217 | +- **SalesforceSDKManager**: The singleton entry point for SDK configuration and lifecycle. Manages OAuth configuration settings, auth scopes, login behavior, and user account events. |
213 | 218 | - **Hybrid Authentication**: Uses session IDs from login/refresh endpoints (instead of frontdoor URLs) for loading app content in WebViews. |
214 | 219 | - **UI Bridge API**: Used to construct frontdoor URLs for opening Salesforce UIs in WebViews without re-authentication. |
215 | 220 | - **Advanced Authentication**: Native browser login, bypassing the standard WKWebView for orgs requiring it. |
|
0 commit comments