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 正常運作。