Actually my original code works great with Xcode 5.0.2 and also great for sending to App Store which is:
objc_msgSend(self.target, self.successAction, category);
Finally, I can reproduce the crash right now. Simply edit Build Scheme and change "Run YOURAPPNAME.app" from Debug to Release.
And right after I can reproduce this bug, I know how to fix it. Since my selector function type is void(does not return anything), I should not just copy what the question does (using "id").
By changing:
id (*response)(id, SEL, id) = (id (*)(id, SEL, id)) objc_msgSend;
response(self.target, self.successAction, category);
To:
void (*response)(id, SEL, id) = (void (*)(id, SEL, id)) objc_msgSend;
response(self.target, self.successAction, category);
It fixes!! Or a one-line code thanks to this commit on github:
((void(*)(id, SEL, id))objc_msgSend)(self.target, self.successAction, category);