watchOS 2 and embedded frameworks

Written on 12th Sep, 2015

Developing apps for watchOS 2 is hit or miss – you can't guarantee that your app will run next time you update Xcode.

There is a major issue I faced after I updated Xcode 7 to GM build: watchOS 2 app won't launch in either Simulator or device, throwing error messages like (LaunchServicesError error 0.) and <…> UserInfo={Error=WatchKitAppHasFrameworks, ErrorDescription=WatchKit 2 app has frameworks; that's not allowed.}.

We all knew that WatchKit apps can't contain embedded frameworks, but have to use those in parent app's bundle. Xcode, however, suggests you to embed framework into your Watch app by default.

To fix this, make sure that you remove framework from all possible Link Binary With Libraries and Embed Frameworks from your Watch app and extension targets. You will then need to open project.pbxproj file with any text editor (my screenshot is from Coda), find build phases of your Watch app's target and remove two phases called Frameworks and Embed Frameworks.

I've spent several hours fighting this issue and hopefully this post would be useful. Ping me on zyafa if you need more help.

***

Welcome Coinverter – Currency Converter for iOS 7

Written on 5th Mar, 2014

I've almost forgot about my brand new app and its release due to Russian invasion. But anyway, it's on the App Store now. Go and grab your copy or ping me for a promo code.

Let me know what you think about it :)

***

How to Enable iOS in the Car in iOS Simulator

Written on 28th Jan, 2014

Recently, Steven Troughton-Smith has shared some info about getting iOS in the Car inside iOS Simulator. Steve, however, declined to share instructions on how to get this working (because it's quite hard to enable this mode on iOS 7.0.x builds).

So below is something I've come up with for iOS 7.1 beta. It's lot easier to get iOS in the Car enabled there.

Before you try to break something:

  • It's unofficial
  • It's quite unstable

Three steps to get iOS in the Car up and running:

  • Get Xcode 5.1 DP2 (it was tested with DP2, and doesn't seem to work correctly with other developer previews)
  • Clone https://github.com/zyafa/iOSCar
  • Build & Run cloned project and carefully follow instructions

Use Hardware > External Displays iOS Simulator menu to disable iOS in the Car.

UPDATE for other DPs

It seems that iOS in the Car is not working properly with other developer preview versions of Xcode 5.1. DP1 - no iOS in the Car at all, DP3 and DP4 - window is shown, but only sidebar is present on screen. Please try things with Xcode 5.1 DP2.

***