Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug(ios): sample keyboard apps do not build according to instructions #10844

Closed
1 of 8 tasks
sgschantz opened this issue Feb 26, 2024 · 4 comments · Fixed by #10940
Closed
1 of 8 tasks

bug(ios): sample keyboard apps do not build according to instructions #10844

sgschantz opened this issue Feb 26, 2024 · 4 comments · Fixed by #10940
Assignees
Milestone

Comments

@sgschantz
Copy link
Contributor

sgschantz commented Feb 26, 2024

Describe the bug

Following the sample keyboard app build instructions results in build errors: 'There is no XCFramework found'

Related issues

possibly related to #9674, though there are differences for Keyman 16 and 17

Keyman apps

  • Keyman for Android
  • Keyman for iPhone and iPad
  • Keyman for Linux
  • Keyman for macOS
  • Keyman for Windows
  • Keyman Developer
  • KeymanWeb
  • Other - give details at bottom of form

Keyman version

16

Operating system

ios

@sgschantz sgschantz added the bug label Feb 26, 2024
@sgschantz sgschantz added this to the B17S4 milestone Feb 26, 2024
@mcdurdin
Copy link
Member

mcdurdin commented Feb 27, 2024

Just noting that the sample app downloadable from https://downloads.keyman.com/ios/stable does not build on its own.

@mcdurdin
Copy link
Member

@sgschantz sgschantz changed the title docs(ios): update sample keyboard app build instructions bug(ios): sample keyboard app does not build according to instructions Mar 1, 2024
@keymanapp-test-bot keymanapp-test-bot bot added bug and removed docs labels Mar 1, 2024
@sgschantz sgschantz changed the title bug(ios): sample keyboard app does not build according to instructions bug(ios): sample keyboard apps do not build according to instructions Mar 1, 2024
@sgschantz
Copy link
Contributor Author

sgschantz commented Mar 1, 2024

The cause of the build errors is that the frameworks are in different locations when built as part of the ios project or built with the keyman-engine-ios zip file.

KeymanEngine.xcframework should be located in the same directory as the project file. For the sample zip, it is two directories above that.

All the other frameworks should be located in ../../Carthage/Build. For the sample zip, the other frameworks are not included at in the zip file at all.

It seems that the lowest impact way to fix this would be to change prepRelease.sh and make three changes:

  1. copy the KeymanEngine.xcframework into KMSample1
  2. copy the KeymanEngine.xcframework into KMSample2
  3. copy the /Carthage/Build directory containing all its frameworks into the top level directory of the zip archive

@mcdurdin Does this seem like a reasonable approach? I don't like duplicating keyman engine in the two sample projects, but I also don't want to move anything or change the relative paths in the main ios project.

@mcdurdin
Copy link
Member

mcdurdin commented Mar 1, 2024

Does this seem like a reasonable approach? I don't like duplicating keyman engine in the two sample projects, but I also don't want to move anything or change the relative paths in the main ios project.

Yes, this seems spot-on. The two copies of the framework is not quite ideal, but it's a pretty small cost and not a big deal in my view. Good stuff.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants