Fragment Shader : v2f struct with multi color can't work on mobile

Hi,
I write a rim color shader and the v2f struct is below,I calculate rimColor in vertShader,and apply in fragmentShader:

         struct v2f
                {
                    fixed4 pos : SV_POSITION;
                    fixed2 uv :TEXCOORD0;
                    fixed3 color:COLOR;
                    fixed3 rimColor;
                };

The shader works on mac,but not work on android devices.When I remove the rimColor in v2f,it work.What is wrong.
Here is the full shader code:

Shader "LTH/VertexLit/Rim" {
        Properties {
            _MainTex ("Base (RGB)", 2D) = "white" {}

		_RimColor ("Rim Color (RGB)", Color) = (0.8,0.8,0.8,0.6)
		_RimPower ("Rim Power", Range(-2,10)) = 0.5
        }
        SubShader {
            Tags { "RenderType"="Opaque" }
            LOD 200

            Pass {
     
                Cull Back
                Lighting On
     
                CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
     
                #include "UnityCG.cginc"

                sampler2D _MainTex;
                fixed4 _MainTex_ST;
                fixed _RimPower;
	            fixed4 _RimColor;

                struct a2v
                {
                    fixed4 vertex : POSITION;
                    fixed3 normal : NORMAL;
                    fixed4 texcoord : TEXCOORD0;
     
                };
     
                struct v2f
                {
                    fixed4 pos : SV_POSITION;
                    fixed2 uv :TEXCOORD0;
                    fixed3 color:COLOR;
                    fixed3 rimColor;
                };
     
                v2f vert (a2v v)
                {
                    v2f o;
                    o.pos = mul( UNITY_MATRIX_MVP, v.vertex);
                    o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);  
                    o.color = ShadeVertexLights(v.vertex, v.normal)*2;

                    	fixed rim = 1.0f - saturate( dot(normalize(ObjSpaceViewDir(v.vertex)), v.normal) );
			o.rimColor = (_RimColor.rgb * pow(rim, _RimPower));
                    return o;
                }
     
                fixed4 frag(v2f i) : COLOR
                {
                    fixed4 c = tex2D (_MainTex, i.uv);
                    c.rgb = c.rgb  * i.color+i.rimColor;
                    return c;
     
                }
     
                ENDCG
            }	
}

	FallBack "Mobile/VertexLit"
}

I suspect you need to give ‘rimColor’ a semantic - TEXCOORD1 will probably work.