-
Notifications
You must be signed in to change notification settings - Fork 331
Segment: Bootstrapping Integrations
This wiki is for Segmented hosted iOS integrations. If you are a partner, please refer to https://github.com/segmentio/analytics-ios/wiki/Bootstrapping-Integrations instead.
Run pod lib create Segment-{Service}
Replace {Service}
with your own service name, e.g. Mixpanel.
- Select
ObjC
for language. - Select
Yes
for demo app. - Select
Specta
for the testing framework. - Skip view based testing.
- Select
SEG
for the class prefix.
The pop lib create
command will create a directory Segment-{Service}
. Rename it to match our convention mv Segment-{Service} analytics-ios-integration-{service}
The generated template will contain a file named Segment-{Service}.podspec
. Replace it's contents with this file. https://raw.githubusercontent.com/segment-integrations/analytics-ios-integration-mixpanel/master/Segment-Mixpanel.podspec.
Replace any references to Mixpanel
with the partner's name. Also take note of the following steps.
- Downgrade s.version to
0.1.0
- The Analytics library dependency:
s.dependency 'Analytics', '~> 3.0.7'
. Always specify the latest version of the iOS library released. - Replace the mixpanel dependency with the partner library dependency, e.g:
s.dependency 'Mixpanel', '~> 2.9.0'
. Always use the latest version at the time of the release.
Copy the template below into Makefile
at the root of your integration directory. Remember to replace {Service}
with the integration name.
XCPRETTY := xcpretty -c && exit ${PIPESTATUS[0]}
SDK ?= "iphonesimulator"
DESTINATION ?= "platform=iOS Simulator,name=iPhone 5"
PROJECT := Segment-{Service}
XC_ARGS := -scheme $(PROJECT)-Example -workspace Example/$(PROJECT).xcworkspace -sdk $(SDK) -destination $(DESTINATION) ONLY_ACTIVE_ARCH=NO
install: Example/Podfile Segment-{Service}
pod install --project-directory=Example
clean:
xcodebuild $(XC_ARGS) clean | $(XCPRETTY)
build:
xcodebuild $(XC_ARGS) | $(XCPRETTY)
test:
xcodebuild test $(XC_ARGS) | $(XCPRETTY)
xcbuild:
xctool $(XC_ARGS)
xctest:
xctool test $(XC_ARGS)
.PHONY: test build xctest xcbuild clean
.SILENT:
Run open Example/Segment-{Service}.xcworkspace
Update your deployment targets for the integration to 8.0 in Xcode. Clear your framework search paths.
Run make build xcbuild test xctest
to verify everything is working.
Now that you have your template setup, you can implement your own custom integration logic.