Situation
透過 Terminal 執行 React Native IOS版本時出現死亡紅幕,
執行指令為
npx react-native run-ios --device "device phone name"
死亡紅幕內容如下
Unknown argument type '__attribute__' in method -[RCTUIManager setJSResponder:blockNativeResponder:]
or
Unknown argument type '__attribute__' in method -[RCTAppState getCurrentAppState:error:] ...
Action
遇到相同問題的人還不少,找到以下這篇(https://stackoverflow.com/questions/58051510/xcode-11-0-build-get-error-unknown-argument-type-attribute-in-method-r)
作法就是修改 /專案目錄/node_modules/react-native/React/Base/RCTModuleMethod.mm 的 RCTParseUnused 方法,改為以下內容
static BOOL RCTParseUnused(const char **input)
{
return RCTReadString(input, "__attribute__((unused))") ||
RCTReadString(input, "__attribute__((__unused__))") ||
RCTReadString(input, "__unused");
}
重點要記得最好把原本的 app 刪除,重新使用 terminal 執行
npx react-native run-ios –device “device phone name” 來安裝並執行,App才會顯示正常。
Result
該錯誤訊息和死亡紅幕不再出現,App 正常運作。