Problem compiling with XCode7 and iOS9: White Screen of Death. Please help us

Hello ionicers,

I just updated my iphone to iOS9 and I also upgraded to XCode7.

After reading this post, I applied this patch https://gist.github.com/IgorMinar/863acd413e3925bf282c

I added the JS file to my lib folder and I added the following line in my index.html bellow the Ionic bundle line:

<script src="lib/angular-ios9-uiwebview.js"></script>

I also added it to my angular module in app.js:

angular.module('your_app_name', [
  'ionic',
  'ngCordova',
  'ngIOS9UIWebViewPatch'
])

Now the result:

When I run: ionic run ios -l --device
It compiles fine but gives me a big white page and no log, no error.

When I try with XCode the build Failed with the following error:
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Does anyone have the same issues?

Cheers,

Hervé

1 Like

You may need to run ionic platform rm ios && ionic platform add ios just to be sure

Yes I did remove and add the iOS platform.

Here is the full error:

Ld /Users/herve76/Library/Developer/Xcode/DerivedData/Tree_The_World-gsvtdwfxmitsjwdbwbgpwumefhzv/Build/Products/Debug-iphoneos/Tree\ The\ World.app/Tree\ The\ World normal arm64
    cd /Users/herve76/Desktop/TreeTheWorld/platforms/ios
    export IPHONEOS_DEPLOYMENT_TARGET=6.0
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/herve76/Library/Developer/Xcode/DerivedData/Tree_The_World-gsvtdwfxmitsjwdbwbgpwumefhzv/Build/Products/Debug-iphoneos -F/Users/herve76/Library/Developer/Xcode/DerivedData/Tree_The_World-gsvtdwfxmitsjwdbwbgpwumefhzv/Build/Products/Debug-iphoneos -FTree\ The\ World/Plugins/com.googlemaps.ios -filelist /Users/herve76/Library/Developer/Xcode/DerivedData/Tree_The_World-gsvtdwfxmitsjwdbwbgpwumefhzv/Build/Intermediates/Tree\ The\ World.build/Debug-iphoneos/Tree\ The\ World.build/Objects-normal/arm64/Tree\ The\ World.LinkFileList -miphoneos-version-min=6.0 -dead_strip -fembed-bitcode-marker -weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -ObjC -fobjc-arc -fobjc-link-runtime -framework AssetsLibrary /Users/herve76/Library/Developer/Xcode/DerivedData/Tree_The_World-gsvtdwfxmitsjwdbwbgpwumefhzv/Build/Products/Debug-iphoneos/libCordova.a -framework CoreGraphics -framework MobileCoreServices -framework GoogleMaps -framework Accelerate -framework AVFoundation -framework CoreBluetooth -framework CoreData -framework CoreLocation -framework CoreText -framework GLKit -framework ImageIO -lc++ -licucore -lz -framework OpenGLES -framework QuartzCore -framework SystemConfiguration -framework Security -Xlinker -dependency_info -Xlinker /Users/herve76/Library/Developer/Xcode/DerivedData/Tree_The_World-gsvtdwfxmitsjwdbwbgpwumefhzv/Build/Intermediates/Tree\ The\ World.build/Debug-iphoneos/Tree\ The\ World.build/Objects-normal/arm64/Tree\ The\ World_dependency_info.dat -o /Users/herve76/Library/Developer/Xcode/DerivedData/Tree_The_World-gsvtdwfxmitsjwdbwbgpwumefhzv/Build/Products/Debug-iphoneos/Tree\ The\ World.app/Tree\ The\ World

ld: 'Tree The World/Plugins/com.googlemaps.ios/GoogleMaps.framework/GoogleMaps(GMSBillingPointRecorder.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

UPDATE: I was able to fix my XCode errors and now it compiles fine but act like the ionic run ios command. And it gives me an error:

2015-09-17 12:04:01.963 Tree The World[395:70721] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
2015-09-17 12:04:01.983 Tree The World[395:70553] Failed to load webpage with error: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

Sounds like the google maps plugin is the cause of the problem?
Try removing the plugin and see if it builds

After removing the google map plugins, I am still getting the same error.

This is how I fixed those issues.
Find this file: platforms/ios/[your-app-name]/[your-app-name]-Info.plist

And add the following:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSAllowsArbitraryLoads</key>
      <true/>
    </dict>

But the app is still running kind of slow with the ionic run command and the Xcode is only giving me a blank page with no error. It does not look like ionic is really ready for today’s Apple updates.

H

1 Like

i also had the problem, added the patch to my project, it stay in the app splash.

Even after applying this quick patch, my apps is very slow and very buggy and it’s not because of my plugins. I removed all of them. Sometimes it hangs for no reason. No log, no error. The app never acted this way before the iOS9 update. The update obviously broke more than some $http redirects.

Does Ionic plan to answer all those issues concerning the update with iOS9?

What’s the plan of action?

H

The major issue on my side is the fact that the app is very very slow, randomly with no error. So it’s very hard to pinpoint the problem. For example, my app hangs for a few seconds before it even starts and some simple page like a login page will take forever to load, again for no reason.

Am I the only one to experience those issues?

I had a similar error (... does not contain bitcode.)

I found a solution here: libGoogleAnalyticsServices.a(TAGDataProvider.o)' does not contain bitcode · Issue #148 · danwilson/google-analytics-plugin · GitHub

I just found a workaround by setting Project > Build Settings > Build Options > Enable Bitcode = No, as mentioned by @aderowbotham in #136.

2 Likes

Thanks @colllin but does your app work like usual after fixing all the errors?

Yes, it eventually works the same.

I upgraded ionic lib and re-installed angular-resource, and various other upgrades since I haven’t touched this code in 6 months, but I didn’t need to change any of the app code.

i had already fixed the problem, pls check your path file in your ios platform, perhapse it is not existed but added it.

@beckson which path? Which file?

confirm the angular-ios9-uiwebview.patch.js existed in the www folder in your xcode project.

My problem is not the patch. I can confirm it’s well installed and it is fixing the angular problem. But still, my app is much more slower than before I updated to iOS9. For example, after the splash screen, the first page used to take one second to load, now it takes around 10 seconds to load. Am I the only one to experience this slow experience issue?

It runs well in my project after the fixed. You can try to remove the splash plugin, or set the delay time to the default 3000ms.

I am seeing the same general slowness in the app running on iOS 9.