react-native-payments-addon-braintree
Version:
React Native Payments add-on for processing payments with Braintree.
57 lines (53 loc) • 3.34 kB
Markdown
Manual Integration Without CocoaPods
------------------------------------
Please follow these instructions to integrate Braintree iOS into your app without CocoaPods.
> Note: We assume that you are using Xcode 8+ and iOS 9.0+ as your Base SDK.
1. Add the Braintree iOS SDK code to your repository
- Use git: `git submodule add https://github.com/braintree/braintree_ios.git`
- Alternatively, you can [download the SDK as a ZIP file from GitHub](https://github.com/braintree/braintree_ios/archive/master.zip) and unzip it into your app's root directory in Finder
- Delete the following folders: `Braintree-Demo`, `Docs`, `IntegrationTests`, `Specs`, `Unit Tests`
2. Open up your app in Xcode
3. Create a new framework target called `Braintree` (please use this exact name)
- In Xcode, select `File` > `New` > `Target`
- Select `Framework & Library` > `Cocoa Touch Framework`
- Use the following options
- Product Name: `Braintree`
- Language: `Objective C`
- Embed in Application: `[your app target]`
- You will now see a new `Braintree` Target Dependency in your main app target (in the first section of `Build Phases`).
4. Add the Braintree code to project
- In Xcode, select `File` > `Add Files to [...]...`
- Navigate to `[Your app project root]/braintree-ios` and select the `Braintree` directory
- Under `Add to targets`, make sure your newly-created framework target `Braintree` is checked and that `[your app target]` is unchecked
- Optionally check `Copy items if needed`
- Click `Add`

5. Modify the `Braintree` target's build phases (`Project` > `Braintree` > `Build Phases`)
- In `Compile Sources`, delete all `.md` files (tip: filter by `.md`)
- In `Headers`
- Under `Public`, delete `Braintree.h`
- Select all files under `Project` and drag them to `Public`
- In `Link Binary With Libraries`
- Add the following system frameworks:
- `Contacts`
- `CoreLocation`
- `Foundation`
- `MessageUI`
- `PassKit`
- `SystemConfiguration`
- `UIKit`
- Update `Contacts` to be weak linked by changing its status to `Optional`.
- In `Copy Bundle Resources`, remove everything except the `.strings` files.
6. Modify `Braintree` build settings (`Project` > `Braintree` > `Build Settings`)
- Edit `Public Headers Folder Path` by appending `/Braintree` (e.g. `$(CONTENTS_FOLDER_PATH)/Headers/Braintree`)
- Edit `Other Linker Flags` by adding `-lc++ -ObjC`
7. Modify `[your app target]` build settings (`Project` > `[your app]` > `Build Settings`)
- Set `Always Search User Paths` to `Yes`
8. Modify `[your app target]` build phases (select the `[your app]` target, then `Build Phases`)
- In `Copy Bundle Resources`, add `Drop-In.strings`, `UI.strings` and `Three-D-Secure.strings` from the Braintree framework target (tip: filter by `.strings`)

9. Remove the `Braintree` scheme
- In Xcode, select `Product` > `Scheme` > `Manage Schemes...`
- Select the `Braintree` scheme and press the `-` button
10. Build and Run your app to test out the integration
11. [Integrate the SDK in your checkout form](https://developers.braintreepayments.com/ios/start/overview)