Faits :
A.
Par jugement du 12 juillet 2017, le Tribunal de police de l'arrondissement de La Côte a libéré X._ du chef de prévention d'infraction à la LEtr et l'a condamné, pour recel, à une peine privative de liberté de 75 jours, sous déduction de 71 jours de détention anticipée. Il a par ailleurs renoncé à révoquer le sursis octroyé le 9 janvier 2017 par le Ministère public du canton de Genève et a alloué au prénommé une indemnité de 3'000 fr. à titre de l'art. 429 al. 1 let. a CPP.
B.
Par jugement du 27 novembre 2017, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a rejeté l'appel formé par X._ contre ce jugement et a intégralement confirmé celui-ci.
La cour cantonale a retenu les faits suivants.
B.a. X._ est né en 1983 en Mongolie. Il est arrivé en Suisse en 2011. Son casier judiciaire suisse fait état d'une condamnation, en 2012, pour séjour illégal, activité lucrative sans autorisation et entrée illégale, d'une condamnation, la même année, pour séjour illégal, activité lucrative sans autorisation et entrée illégale, d'une condamnation, en 2015, pour rixe, d'une condamnation, la même année, pour vol, séjour illégal et activité lucrative sans autorisation, d'une condamnation, en 2016, pour entrée illégale et d'une autre, la même année, pour séjour illégal.
B.b. A Lausanne ou à H._, le 19 décembre 2012, X._ et ses comparses, A._ et B._, ont acheté à un compatriote, pour une somme de 1'200 fr., de nombreux habits, notamment des vestes d'hiver pour hommes et femmes, qu'ils savaient volés. Ces habits ont été retrouvés dans le véhicule de B._.
C.
X._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 27 novembre 2017, en concluant, avec suite de frais, principalement à sa réforme en ce sens qu'il est acquitté et que l'Etat de Vaud doit lui payer une indemnité de 14'200 fr., avec intérêts, ainsi que des indemnités de 7'356 fr. 40 pour la procédure cantonale et de 8'550 fr. pour la procédure fédérale, à titre de dépens. Subsidiairement, il conclut à sa réforme en ce sens que la peine est complémentaire aux peines arrêtées par condamnations des 17 mai 2013, 29 mars 2015, 28 novembre 2015, 13 février 2016 et 1er juin 2016, la quotité en étant arrêtée à 0 jour, et que l'Etat de Vaud doit lui payer une indemnité de 14'200 fr., avec intérêts, ainsi que des indemnités de 7'356 fr. 40 pour la procédure cantonale et de 8'550 fr. pour la procédure fédérale, à titre de dépens. Plus subsidiairement, il conclut à son annulation et au renvoi de la cause à l'autorité cantonale pour nouvelle décision, l'Etat de Vaud étant par ailleurs condamné à lui payer une indemnité de 14'200 fr., avec intérêts, ainsi que des indemnités de 7'356 fr. 40 pour la procédure cantonale et de 8'550 fr. pour la procédure fédérale, à titre de dépens. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.
D.
Invités à se déterminer sur le recours, la cour cantonale et le ministère public ont renoncé à présenter des observations et se sont référés à la décision attaquée.

Considérant en droit :
1.
Le recourant reproche à la cour cantonale d'avoir établi les faits et apprécié les preuves de manière arbitraire concernant l'infraction de recel. Il se plaint en outre, à cet égard, d'une violation du principe "in dubio pro reo".
1.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, à savoir, pour l'essentiel, de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat (<ref-ruling> consid. 2.3.1 p. 244). En matière d'appréciation des preuves et d'établissement des faits, il n'y a arbitraire que lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des conclusions insoutenables (<ref-ruling> consid. 2.3 p. 266 et les références citées). Le Tribunal fédéral n'entre ainsi pas en matière sur les critiques de nature appellatoire (<ref-ruling> consid. 2.4 p. 368). La présomption d'innocence, garantie par les art. 10 CPP, 32 al. 1 Cst., 14 par. 2 Pacte ONU II et 6 par. 2 CEDH, ainsi que son corollaire, le principe "in dubio pro reo", concernent tant le fardeau de la preuve que l'appréciation des preuves (<ref-ruling> consid. 2a p. 40 s.). Lorsque, comme en l'espèce, l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe "in dubio pro reo", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 7 p. 82).
1.2. L'autorité précédente a exposé que, selon le rapport de police du 23 mars 2013, le recourant, A._ et B._ avaient été interpellés le 19 décembre 2012 vers 18 h 50 sur l'autoroute, à proximité de C._, par une patrouille de la brigade canine, alors qu'ils occupaient un véhicule immatriculé en France. Dans ce véhicule avaient notamment été découverts 20 pièces de vêtements, dont un pantalon de ski encore muni d'un antivol ainsi que d'autres effets pour le sport et le ski, une paire de baskets, diverses boissons et aliments, ainsi que plusieurs objets, soit 24 couteaux suisses, deux sets couteau, lime et lampe de poche, une pince à ongle, un porte-mine et un rasoir.
Selon la cour cantonale, le recourant avait alors fourni à la police des explications "extrêmement floues et invérifiables" concernant sa situation personnelle, en déclarant vivre clandestinement à D._ et travailler au noir, tout en refusant de désigner ses employeurs, ainsi qu'en indiquant vivre chez une amie mongole tout en refusant d'en donner l'identité et les coordonnées, précisant que sa propre identité était fausse et qu'il se nommait en réalité E._, sans pour autant présenter un quelconque document d'identité à l'appui de cette affirmation. S'agissant du trajet, le recourant avait soutenu que ses deux comparses étaient venus le chercher en voiture à F._ en fin d'après-midi, pour rentrer à D._, alors qu'il se trouvait chez un ami mongol nommé G._, au sujet duquel l'intéressé n'avait donné aucune indication, hormis que le prénommé aurait demandé l'asile. Pour l'autorité précédente, sur tous ces points, les déclarations du recourant ne contenaient aucun détail et étaient dictées par la préoccupation de rendre impossible toute prompte vérification. Il fallait en déduire que celles-ci n'étaient pas crédibles et que le recourant était animé par une volonté de dissimulation.
Le recourant avait implicitement admis avoir réalisé la présence, dans la voiture, des vêtements de sport découverts, puisqu'il avait prétendu que les deux autres occupants du véhicule lui avaient expliqué avoir acheté ces effets à H._, tout en lui demandant de mentir en disant qu'il les avait accompagnés lors de cet achat, sans pouvoir s'expliquer le motif de cette requête. Le recourant avait par ailleurs admis avoir vu les autres objets et denrées alimentaires transportés dans la voiture, dont il disait ignorer la provenance. Il avait en outre reconnu que ses deux comparses avaient montré ces marchandises à son ami de F._, en précisant qu'elles étaient à vendre.
B._ avait pour sa part déclaré que, le jour en question, tous les trois s'étaient rendus de D._ à H._, où ils avaient acheté des vêtements à moitié prix, soit pour une somme de 1'200 fr., à un compatriote mongol, en se doutant qu'il s'agissait de vêtements volés, tandis que les autres objets avaient été dérobés dans des stations d'autoroute. Quant à A._, il avait déclaré que le véhicule, acheté en France, appartenait au trio, son contenu ayant été acheté pour 1'200 fr., le jour des faits, à un inconnu au bord de l'autoroute.
Selon l'autorité précédente, la version des faits présentée par le recourant, concernant les vêtements et les autres objets découverts dans le véhicule, n'était pas crédible. On ne discernait pas les motifs qu'auraient eus les autres protagonistes pour l'inciter à mentir quant à sa présence lors de leur achat. Les circonstances, soit la présence des trois intéressés dans la voiture contenant les vêtements volés et les objets dérobés sous la forme de butin de vol à l'étalage, l'invraisemblance des explications invérifiables concernant son alibi de F._, l'absence de toute raison à la prétendue incitation à mentir sur sa présence à H._ lors de l'achat des vêtements volés, le fait que sa confrontation à ces objets volés et compromettants n'aurait suscité aucune remarque ni interrogation de sa part alors qu'il ne pouvait ignorer leur caractère suspect, le manque de moyens financiers de ses compatriotes en situation précaire à D._ tout comme lui, ainsi que la disparité des trois versions, formait un faisceau d'indices pointant l'implication du recourant dans le recel, les trois concernés "sachant et se doutant qu'ils étaient entrés en possession de marchandises volées pour les vendre à leur profit".
1.3. Le recourant soutient qu'il était arbitraire de retenir que les habits découverts dans le véhicule, le 19 décembre 2012, avaient été volés.
Il ressort du rapport d'investigation du 22 mars 2013 que la police n'a pu déterminer où ni quand les effets concernés auraient pu être volés, en dépit des recherches effectuées "auprès des différents magasins identifiés grâce aux étiquettes de vente". L'un des vêtements était par ailleurs muni d'un antivol (pièce 5 du dossier cantonal, p. 4-5). Compte tenu de ces seuls éléments, il était insoutenable, pour la cour cantonale, de retenir que les vêtements découverts avaient été volés, dès lors que l'on ne voit pas - hormis s'agissant du pantalon de ski muni d'un antivol - quels éléments permettraient de retenir qu'une telle infraction eût été commise s'agissant de ces effets de provenances diverses.
C'est également de manière insoutenable que l'autorité précédente a retenu une "implication" du recourant dans le recel. En effet, la cour cantonale a, dans son appréciation des preuves, évoqué divers éléments qui l'amenaient à considérer que les déclarations du recourant n'étaient pas crédibles. On comprend ensuite de sa motivation qu'elle a écarté les explications du recourant au profit des récits, par ailleurs divergents, de B._ et de A._.
Entendu le 20 décembre 2012, B._ a livré le récit suivant à la police (PV d'audition 1, p. 3) :
"Nous sommes partis les trois de D._, vers 1100 et nous nous sommes rendus à H._. Là-bas, nous avons fait les achats que vous avez retrouvés dans notre véhicule, soit des vestes, des pantalons, des couteaux suisses, des chemises, etc. Vous me dites qu'il y a pour au moins CHF 3'000.- d'équipement. Je vous réponds que nous n'avons pas acheté cela en magasin, mais auprès d'un autre mongol, qui habite à H._. Il nous a vendu tout cela à moitié prix, soit pour CHF 1'200.-. Je n'ai pas de quittance pour ces achats. L'argent provient de mon travail au noir. Je pensais envoyer ces vêtements en Mongolie, car il y fait très froid. Vous me demandez des précisions sur ce compatriote, je ne peux pas vous en donner. Je ne le connais pas. Vous me dites qu'un anti-vol est encore fixé sur un des pantalons de ski, je vous réponds que je n'en sais rien. J'imagine bien que ces affaires ont dû être volées, mais je n'ai pas les moyens d'en acheter au prix fort, en magasin. Nous sommes repartis de H._ vers 1500, nous n'y avons rien fait d'autre que ces achats et boire un café."
A._ a, quant à lui, fait les déclarations suivantes à propos des effets trouvés dans le véhicule (PV d'audition 5, p. 3) :
"Nous avons acheté cela hier, vers 1800, à I._, à côté de l'autoroute, auprès d'un inconnu typé européen. Nous avons payé CHF 1'200.-."
Au vu de ces déclarations, on ignore absolument quel rôle a pu jouer le recourant dans l'acquisition des vêtements, de même que si et dans quelle mesure il aurait pu contribuer à cet achat pour le montant de 1'200 fr. retenu, aspects sur lesquels la cour cantonale reste muette. On ne voit pas davantage quels éléments auraient permis à l'autorité précédente de retenir que le recourant savait ou devait présumer que la marchandise aurait été volée, seul B._ ayant indiqué avoir nourri des soupçons à cet égard. Enfin, on ignore quels moyens de preuves fondent la constatation de la cour cantonale selon laquelle le recourant serait entré "en possession de marchandises volées pour les vendre à [son] profit".
En définitive, il était arbitraire de retenir que le recourant avait acheté les habits concernés, tout en sachant que ceux-ci auraient été volés, afin de les revendre. L'établissement des faits et l'appréciation des preuves à laquelle s'est livrée la cour cantonale sont insoutenables à cet égard. Le recours doit être admis, le jugement attaqué annulé et la cause renvoyée à l'autorité cantonale afin que celle-ci acquitte le recourant.
2.
Compte tenu de ce qui précède, les autres griefs du recourant deviennent sans objet.
Il appartiendra à la cour cantonale de se prononcer sur les prétentions émises par le recourant sur la base de l'art. 429 CPP.
3.
Le recours doit être admis. Le recourant, qui obtient gain de cause, peut prétendre à des dépens pour la procédure devant le Tribunal fédéral, à la charge du canton de Vaud (art. 68 al. 1 LTF). Sa demande d'assistance judiciaire est dès lors sans objet. Il est statué sans frais (art. 66 al. 1 et 4 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis. Le jugement attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais judiciaires.
3.
Le canton de Vaud versera au recourant une indemnité de 3'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 11 juin 2018
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa