问题
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 itDevelopment Build
. - Created a new Scheme called
Development
(duplicated theDebug
scheme) and in the Info tab (Run
section) chose theDevelopment 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.
回答1:
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
回答2:
Solution:
Create the same custom build configuration in JazzHands
Root cause:
- Compilation error
No such module
is thrown because it can't locate theJazzHands
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 frameworkJazzHands
binary - However
Debug
folder would contain the frameworkJazzHands
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
来源:https://stackoverflow.com/questions/33520503/ios-custom-configuration-no-such-module