How are you creating the SD file?
How are you uploading it to ArcGIS Online?
SD files have to be authored explicitly for the server they will run on. An SD file that can be published to ArcGIS Server is not the same as an SD File that can be published to ArcGIS Online.
Is there a specific reason you're creating an SD file first? You can publish directly to ArcGIS Online from ArcMap as follows:
Open your map.
From the File menu of ArcMap, sign in to ArcGIS Online.
From the File menu, choose Share as > Service.
Choose Publish a service
Choose a Connection, specify "My Hosted Services"
Step through the wizard to publish your service.
Alternatively, to create an SD file that can later be uploaded directly to My Content, you need to author the SD specifically for ArcGIS Online.
From the file menu, choose Share as> Service.
Choose Save a service definition file
Choose a connection: "My Hosted Services"
The file that gets created can now be uploaded to My Content in ArcGIS.com
Hope this helps,
Mike