-
Notifications
You must be signed in to change notification settings - Fork 0
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 pod 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 $(PROJECT).podspec
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:
Update your deployment targets for the test app and the integration to 8.0 in Xcode.
Clear your framework search paths.
Also, don't forget to delete use_frameworks!
from the top of Example/Podfile
Run make install build xcbuild test xctest
to verify everything is working.
Run open Example/Segment-{Service}.xcworkspace
Now that you have your template setup, you can implement your own custom integration logic.
https://github.com/segmentio/analytics-ios/wiki/Writing-Integrations