Blink: Xcode 9 Build Fails: "No such module UICKeyChainStore"

Created on 8 Dec 2017  路  14Comments  路  Source: blinksh/blink

After following the instructions to clone the repo and all dependencies, opening the Xcode project in Xcode 9, and changing the bundle ID, team signing setup, and capabilities setup to use my paid developer account, I cannot build the project: it complains (in file UserDefaultsPasscodeRespository.swift that it cannot import UICKeyChainStore because there is no such module.

Certainly, the module is there - I can see it both in the Xcode project (under "Frameworks") and the filesystem. I've tried a few things to fix it (changing framework search paths, etc.), but nothing has helped. Assistance (or a fix to the Xcode project file) would be appreciated...

support

Most helpful comment

Looks like that solved it ! Thanks !

All 14 comments

I think the app is iOS only, and somehow the scheme supports building for Mac.
You have to set the scheme to a iOS target.

Did that help @dmzimmerman? I will try to remove the Xcode scheme for Mac too.

I thought I had set it for an iOS target; I'll try it again and see.

I'm also experiencing this problem with XCode 9.2

I did notice that the UICKeyChainStore.xcodeproj was initially set to a macOS deployment target. I fixed this so that it has an ios deployment target but I'm still getting the same error...

I think this has something to do with the framework search order. Ended up fixing it by adding:

$(PROJECT_DIR)/Frameworks/UICKeyChainStore/Lib/build/Debug

to the top of the Framework Search Paths for the Blink project. Not sure if this is the right fix or not, but there were a bunch of other UICKeyChainStore directories listed in the actually compilation command - just none with the actual framework...

I think we can close this.
Recursive clone and ./get_frameworks.sh should work now.

Using Xcode 10.1, I have the exact same issue. Can we open this again @yury ?

I deleted the repository and followed the build instruction again just to make sure I have everything vanilla.

image

I had it before and fixed it somehow but I don't remember how, probably by fixing some framework search path.

According to default build settings, the UICKeyChainStore framework is built in ~/Library/Developer/Xcode/DerivedData/Blink-aanyagaovcogddaohvraxcyfceba/Build/Products

Hi @ybizeul,

Here is my steps:

  1. git clone --recursive [email protected]:blinksh/blink.git blink-build-test
  2. cd blink-build-test
  3. ./get_frameworks.sh
  4. open Blink.xcodeproj
  5. In General project settings change bundle ID and team.
    screen shot 2019-01-02 at 3 11 48 pm
  6. In Capabilities project settings remove Carlos identifier from iCloud and check yours.
    screen shot 2019-01-02 at 3 13 55 pm

Yes, these are the steps I followed, well documented under https://github.com/blinksh/blink/blob/raw/BUILD.md but that's the error I get.

Anything @yury ?

Not yet. At first I was thinkging you where cloning without --recursive and I tried that, but get different error.

Yes I did the recursive, and UICKeyChainStore target builds fine, but it seems Blink target doesn't find its way to the build

Hi @ybizeul

While I was fixing build I got error as yours.

Problems is that you have Mac as build device by default.

screen shot 2019-01-17 at 3 34 26 pm

But you should switch to either you device or 'Generic iOS device'

screen shot 2019-01-17 at 3 35 53 pm

Looks like that solved it ! Thanks !

Was this page helpful?
0 / 5 - 0 ratings

Related issues

basepi picture basepi  路  5Comments

jasondinh picture jasondinh  路  3Comments

webdog picture webdog  路  4Comments

nriley picture nriley  路  3Comments

jwr picture jwr  路  3Comments