diff --git a/.travis.yml b/.travis.yml
index b525482472f784d8dbca9d23fa661f99aa8e2970..87725251b9b51a5fa2d34ff138de8239c3292584 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -59,10 +59,6 @@ matrix:
       env:
         - azure-osx
         - mobile
-      cache:
-        directories:
-          - $HOME/.android.platforms
-          - $HOME/.cocoapods
       script:
         - go run build/ci.go install
         - go run build/ci.go archive -type tar -signer OSX_SIGNING_KEY -upload gethstore/builds
@@ -71,21 +67,24 @@ matrix:
         - brew update
         - brew install android-sdk maven gpg
         - alias gpg="gpg2"
-        - export ANDROID_HOME=/usr/local/opt/android-sdk
 
-        - mkdir -p $ANDROID_HOME/platforms
-        - mv -f $HOME/.android.platforms $ANDROID_HOME/platforms
+        - export ANDROID_HOME=/usr/local/opt/android-sdk
         - echo "y" | android update sdk --no-ui --filter `android list sdk | grep "SDK Platform Android" | grep -E 'API 15|API 19|API 24' | awk '{print $1}' | cut -d '-' -f 1 | tr '\n' ','`
 
         - go run build/ci.go aar -signer ANDROID_SIGNING_KEY -deploy https://oss.sonatype.org -upload gethstore/builds
-        - mv -f $ANDROID_HOME/platforms $HOME/.android.platforms
 
         # Build the iOS framework and upload it to CocoaPods and Azure
         - gem uninstall cocoapods -a
         - gem install cocoapods --pre
+
+        - mv ~/.cocoapods/repos/master ~/.cocoapods/repos/master.bak
+        - sed -i '.bak' 's/repo.join/!repo.join/g' $(dirname `gem which cocoapods`)/cocoapods/sources_manager.rb
+        - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git clone --depth=1 https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/master && pod setup --verbose; fi
+
         - xctool -version
         - xcrun simctl list
-        - travis_wait 30 go run build/ci.go xcode -signer IOS_SIGNING_KEY -deploy trunk -upload gethstore/builds
+
+        - go run build/ci.go xcode -signer IOS_SIGNING_KEY -deploy trunk -upload gethstore/builds
 
 install:
   - go get golang.org/x/tools/cmd/cover
diff --git a/build/ci.go b/build/ci.go
index 8ddc50a0ca8cbc66ec84f8a1ababee97d9c7bbaf..0e1ed37cab0f80d247aa006438e15413cf957551 100644
--- a/build/ci.go
+++ b/build/ci.go
@@ -777,7 +777,6 @@ func doXCodeFramework(cmdline []string) {
 
 	// Build the iOS XCode framework
 	build.MustRun(goTool("get", "golang.org/x/mobile/cmd/gomobile"))
-	build.MustRun(gomobileTool("init"))
 
 	archive := "geth-" + archiveBasename("ios", env)
 	if err := os.Mkdir(archive, os.ModePerm); err != nil {
@@ -799,7 +798,7 @@ func doXCodeFramework(cmdline []string) {
 	if *deploy != "" {
 		meta := newPodMetadata(env)
 		build.Render("build/pod.podspec", meta.Name+".podspec", 0755, meta)
-		build.MustRunCommand("pod", *deploy, "push", meta.Name+".podspec", "--allow-warnings")
+		build.MustRunCommand("pod", *deploy, "push", meta.Name+".podspec", "--allow-warnings", "--verbose")
 	}
 }