diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m index fabc1fe219..e351ef0c67 100644 --- a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m +++ b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m @@ -510,7 +510,10 @@ - (void)createInstance:(NSString *)instanceIdString if (!options) { newOptions = [NSMutableDictionary new]; } - [newOptions addEntriesFromDictionary:@{@"env":[WXUtility getEnvironment]}]; + NSDictionary* immutableEnvDict = [[WXUtility getEnvironment] copy]; + if (immutableEnvDict) { + [newOptions addEntriesFromDictionary:@{@"env":immutableEnvDict}]; + } newOptions[@"bundleType"] = bundleType; __block NSString *raxAPIScript = nil; __block NSString *raxAPIScriptPath = nil; @@ -536,7 +539,8 @@ - (void)createInstance:(NSString *)instanceIdString WX_MONITOR_INSTANCE_PERF_END(WXPTJSCreateInstance, [WXSDKManager instanceForID:instanceIdString]); [sdkInstance.apmInstance onStage:KEY_PAGE_STAGES_EXECUTE_BUNDLE_END]; } else { - sdkInstance.callCreateInstanceContext = [NSString stringWithFormat:@"instanceId:%@\noptions:%@\ndata:%@", instanceIdString, newOptions, data]; + NSDictionary* immutableOptions = [newOptions copy]; + sdkInstance.callCreateInstanceContext = [NSString stringWithFormat:@"instanceId:%@\noptions:%@\ndata:%@", instanceIdString, immutableOptions, data]; //add instanceId to weexContext ,if fucn createInstanceContext failure ,then we will know which instance has problem (exceptionhandler) self.jsBridge.javaScriptContext[@"wxExtFuncInfo"]= @{ @"func":@"createInstanceContext", @@ -544,7 +548,7 @@ - (void)createInstance:(NSString *)instanceIdString @"instanceId":sdkInstance.instanceId?:@"unknownId" }; __weak typeof(self) weakSelf = self; - [self callJSMethod:@"createInstanceContext" args:@[instanceIdString, newOptions, data?:@[]] onContext:nil completion:^(JSValue *instanceContextEnvironment) { + [self callJSMethod:@"createInstanceContext" args:@[instanceIdString, immutableOptions, data?:@[]] onContext:nil completion:^(JSValue *instanceContextEnvironment) { if (sdkInstance.pageName) { [sdkInstance.instanceJavaScriptContext.javaScriptContext setName:sdkInstance.pageName]; } @@ -929,10 +933,6 @@ - (void)callJSMethod:(NSString *)method args:(NSArray *)args onContext:(id