Add @DoNotStrip to exported methods in NativeModule specs
Summary: NativeModule methods are meant to be called from JavaScript. As such, they may not necessarily have call-sites in Java. This means that they're succeptible to being stripped by proguard. This diff annotates all exported NativeModule methods with DoNotStrip, so that proguard doesn't strip them. We already do this in the legacy codegen. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D25723801 fbshipit-source-id: a7c8701e0a5d03a970f5f19cc6ae6b320a2e99a1
This commit is contained in:
Родитель
c776f09e5f
Коммит
6740b22ab0
|
@ -103,6 +103,8 @@ public final class FunctionResolvedType extends ResolvedType<FunctionType> {
|
|||
// React methods need special `@ReactMethod` annotation for now.
|
||||
methodBuilder.addAnnotation(annotationBuilder.build());
|
||||
|
||||
// TODO(T82242829) Add @DoNotStrip annotation
|
||||
|
||||
return methodBuilder.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -395,6 +395,7 @@ module.exports = {
|
|||
'com.facebook.react.bridge.ReactMethod',
|
||||
'com.facebook.react.bridge.ReactModuleWithSpec',
|
||||
'com.facebook.react.turbomodule.core.interfaces.TurboModule',
|
||||
'com.facebook.proguard.annotations.DoNotStrip',
|
||||
]);
|
||||
|
||||
const methods = properties.map(method => {
|
||||
|
@ -443,7 +444,7 @@ module.exports = {
|
|||
|
||||
const methodJavaAnnotation = `@ReactMethod${
|
||||
isSyncMethod ? '(isBlockingSynchronousMethod = true)' : ''
|
||||
}`;
|
||||
}\n @DoNotStrip`;
|
||||
const methodBody = method.optional
|
||||
? getFalsyReturnStatementFromReturnType(
|
||||
methodTypeAnnotation.returnTypeAnnotation,
|
||||
|
|
|
@ -16,6 +16,7 @@ Map {
|
|||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.Callback;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
|
@ -32,15 +33,19 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo
|
|||
}
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract WritableMap difficult(ReadableMap A);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void optionals(ReadableMap A);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public void optionalMethod(ReadableMap options, Callback callback, ReadableArray extras) {}
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void getArrays(ReadableMap options);
|
||||
}
|
||||
",
|
||||
|
@ -63,6 +68,7 @@ Map {
|
|||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
|
@ -96,6 +102,7 @@ Map {
|
|||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
|
@ -109,6 +116,7 @@ public abstract class AliasTurboModuleSpec extends ReactContextBaseJavaModule im
|
|||
}
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void cropImage(ReadableMap cropData);
|
||||
}
|
||||
",
|
||||
|
@ -131,6 +139,7 @@ Map {
|
|||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.Promise;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
|
@ -146,12 +155,15 @@ public abstract class NativeCameraRollManagerSpec extends ReactContextBaseJavaMo
|
|||
}
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void getPhotos(ReadableMap params, Promise promise);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void saveToCameraRoll(String uri, String type, Promise promise);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void deletePhotos(ReadableArray assets, Promise promise);
|
||||
}
|
||||
",
|
||||
|
@ -169,6 +181,7 @@ public abstract class NativeCameraRollManagerSpec extends ReactContextBaseJavaMo
|
|||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
|
@ -183,18 +196,23 @@ public abstract class NativeExceptionsManagerSpec extends ReactContextBaseJavaMo
|
|||
}
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void reportFatalException(String message, ReadableArray stack, double exceptionId);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void reportSoftException(String message, ReadableArray stack, double exceptionId);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public void reportException(ReadableMap data) {}
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void updateExceptionMessage(String message, ReadableArray stack, double exceptionId);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public void dismissRedbox() {}
|
||||
}
|
||||
",
|
||||
|
@ -217,6 +235,7 @@ Map {
|
|||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.Callback;
|
||||
import com.facebook.react.bridge.Promise;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
|
@ -268,33 +287,43 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo
|
|||
}
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void voidFunc();
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract boolean getBool(boolean arg);
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract double getNumber(double arg);
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract String getString(String arg);
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract WritableArray getArray(ReadableArray arg);
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract WritableMap getObject(ReadableMap arg);
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract double getRootTag(double arg);
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract WritableMap getValue(double x, String y, ReadableMap z);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void getValueWithCallback(Callback callback);
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void getValueWithPromise(boolean error, Promise promise);
|
||||
}
|
||||
",
|
||||
|
@ -317,6 +346,7 @@ Map {
|
|||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
|
@ -329,6 +359,7 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo
|
|||
}
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void voidFunc();
|
||||
}
|
||||
",
|
||||
|
@ -346,6 +377,7 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo
|
|||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
|
@ -358,6 +390,7 @@ public abstract class NativeSampleTurboModule2Spec extends ReactContextBaseJavaM
|
|||
}
|
||||
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void voidFunc();
|
||||
}
|
||||
",
|
||||
|
|
Загрузка…
Ссылка в новой задаче