Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS - Custom Configuration - "No such module"

Tags:

xcode

ios

xcode6

In my ios app, I'm trying to distinguish environments, to make web api calls to the proper environment (Development, Staging and Production).

For that I have created a configuration.plist file with the different endpoints for each environment and:

  • Duplicated the Debug Configuration and called it Development Build.
  • Created a new Scheme called Development (duplicated the Debug scheme) and in the Info tab (Run section) chose the Development Build configuration.

When I run in Debug mode, everything runs normally.

I'm using cocoa pods.

If I select Development scheme, I get a No such module 'JazzHands'

If I edit the Development scheme to use the Debug build, it works fine.

So I must be missing some thing for this not to work.

like image 498
Nuno Gonçalves Avatar asked Nov 04 '15 11:11

Nuno Gonçalves


People also ask

Why does Xcode say “no such module?

If the configuration naming don't match exactly (case-sensitive), Xcode will abort the archive process and show the error "No such module ..." That is, if you have a "parent" project with a configuration named "AppStore" you must make sure that all subprojects also have this configuration name. See my attached screenshots.

Why am I getting 'no such module 'MyFramework'?

If you are not getting your framework from a trusted source you should inspect the framework and ensure that it contains a Modules folder with a module.modulemap file inside it. If module.modulemap is not present, you will get the "No such module 'MyFramework'" error.

How do I resolve incompatible settings with the iOS/iPadOS version?

When using Apple Configurator to create the configuration profile, be sure the settings you export are compatible with the iOS/iPadOS version on the devices. For information on resolving incompatible settings, search for Configuration Profile Reference and Mobile Device Management Protocol Reference on the Apple Developer website.

How do I get custom settings into Intune for iOS/iPadOS devices?

When using iOS/iPadOS devices, there are two ways to get custom settings into Intune: You can use these tools to export settings to a configuration profile. In Intune, you import this file, and then assign the profile to your iOS/iPadOS users and devices.


2 Answers

Solution:

Create the same custom build configuration in JazzHands

Root cause:

  • Compilation error No such module is thrown because it can't locate the JazzHands for your custom build configuration

Background:

  • Every time you compile a folder is created in DerivedData.
  • This folder corresponds to your device / simulator and your app.
  • Inside this folder there would be a Build folder which would contain a folder corresponding to each build configuration for your project.
  • In your case Development folder would not contain the framework JazzHands binary
  • However Debug folder would contain the framework JazzHands binary

Example:

Given below is an example:

~/Library/Developer/Xcode/DerivedData/SomeApp-skjahjkdhsakjhdaskjdhaskjlhs/Build/Development-iphonesimulator

  • SomeApp - Name of the app
  • Development - Custom Build configuration
like image 76
user1046037 Avatar answered Sep 28 '22 09:09

user1046037


For those running into this question, try pod install this will generate some .xcconfig files with your configuration name. Clean your build folder and build again.

This worked for me with Cocoapods 1.0

like image 27
D-Mx Avatar answered Sep 28 '22 09:09

D-Mx