關鍵詞: No bundle URL present ?宏 DEBUG ?RCT_DEV 無法調試 搖一搖
官方issue 如下, 英文好的可以直接去看討論
https://github.com/facebook/react-native/issues/2246#issuecomment-217187621
由于公司業(yè)務需要姥闭,最近需要配置多個環(huán)境蓉媳,方便快速出包麸拄,本來以為很簡單的齿兔,隨便刷刷刷 配置幾個configuration就歐了, 可是配置完之后爸业,才發(fā)現(xiàn)隱藏著無比巨大的坑
Release 環(huán)境下還好翅萤,沒什么問題恐疲, 但是在debug 模式下, 就開始報No bundle URL present. 的錯誤
跳轉進源碼 很快就能定位到問題所在
- (NSString*)packagerServerHost
{
? NSString*location = [self jsLocation];
? if(location !=nil) {
? ? returnlocation;
? }
#if RCT_DEV
? NSString *host = [self guessPackagerHost];
? if(host) {
? ? returnhost;
? }
#endif
? return nil;
}
在于guessPackagerHost 那個判斷沒執(zhí)行
再跳到RCTDefines 里面看定義
#ifndef RCT_DEV
#if DEBUG
#define RCT_DEV1
#else
#define RCT_DEV0
#endif
#endif
這就很詭異了套么, 明明已經(jīng)配置了DEBUG宏培己, 但是為啥這里的判斷出問題呢??
在翻閱了幾個小時的官方issue之后胚泌,終于找到問題了
原因是: RN 只認默認的Debug 配置是 debug模式省咨, 其他的環(huán)境配置一律默認是release 模式,這就導致了這個問題
解決辦法很簡單玷室, 只需要在cocoapod 的pod file 頂部插入以下代碼零蓉,指定環(huán)境變量對應的debug模式即可
xcodeproj '項目名', '對應的環(huán)境配置名' => :debug
這個問題簡直讓人吐血