Faits :
A.
Le 7 février 2013, la société B._ SA a sollicité l'autorisation de construire quatre immeubles d'habitation comportant au total 52 logements et 120 places de parc sur la parcelle n° 1589 de la commune de Riddes, au lieu-dit "Les Sauges". D'une surface de 9848 m2, le terrain est classé en zone mixte artisanale. A._, propriétaire de la parcelle voisine n° 8734, a formé opposition.
Le 13 juin 2013, le Conseil communal de Riddes a refusé l'autorisation, considérant que le projet dénaturait l'aspect de la zone, essentiellement occupée par des villas individuelles. Cette décision a été confirmée le 19 novembre 2014 par le Conseil d'Etat du canton du Valais. Par arrêt du 24 juillet 2015, sur recours de la constructrice, la Cour de droit public du Tribunal cantonal du canton du Valais a annulé les décisions du 13 juin 2013 et du 19 novembre 2014 et renvoyé l'affaire à la Commune de Riddes pour nouvelle décision. L'annexe au règlement communal des constructions et des zones approuvé en 2012 par le Conseil d'Etat (RCCZ) prévoyait que la zone mixte des Sauges autorisait l'habitat collectif "sans restrictions". La hauteur autorisée des bâtiments était de 15 m et les motifs d'esthétique ne pouvaient faire échec aux possibilités réglementaires de construire. La commune de Riddes devrait encore se prononcer sur l'application de l'art. 75b Cst. Par arrêt du 17 septembre 2015 (1C_455/2015), le Tribunal fédéral a déclaré irrecevable le recours formé par A._ contre cet arrêt cantonal de renvoi, en application de l'art. 93 LTF.
B.
Par décision du 10 novembre 2015, le Conseil communal a délivré le permis de construire et rejeté les oppositions, notamment celle de A._. De nombreuses charges et conditions ont été posées, notamment l'affectation exclusive des logements à la résidence principale, avec mention correspondante au Registre foncier.
A._ a recouru en vain contre cette autorisation auprès du Conseil d'Etat, puis du Tribunal cantonal. Dans son arrêt, du 4 novembre 2016, ce dernier a retenu que la question de la conformité de la zone avait déjà été tranchée dans son premier arrêt. S'agissant de l'utilisation des 52 appartements en résidence principale, la population dans le village avait augmenté de 11% depuis 2013 et tous les logements récemment construits étaient occupés. L'octroi de permis de construire pour 57 autres logements dans la commune ne permettait pas de mettre en doute l'existence d'une demande suffisante. L'existence de chantiers arrêtés à Riddes et à Leytron n'était pas non plus pertinente. Il n'y avait dès lors pas d'indice d'abus de droit.
C.
Agissant par la voie du recours en matière de droit public, A._ demande au Tribunal fédéral d'annuler l'autorisation de construire.
Le Tribunal cantonal et le Conseil d'Etat ont renoncé à se déterminer. La commune de Riddes appuie le grief relatif à l'application du RCCZ; elle conteste en revanche celui qui concerne l'art. 75b Cst. et s'en remet à justice sur le fond. L'intimée B._ SA conclut au rejet du recours. L'Office fédéral du développement territorial a renoncé à se déterminer. Le recourant et l'intimée ont déposé à deux reprises des observations complémentaires, persistant dans leurs conclusions respectives.
Considérant en droit :
1.
Dirigé contre une décision prise en dernière instance cantonale rendue dans le domaine du droit public des constructions, le recours est recevable comme recours en matière de droit public conformément aux art. 82 ss LTF, aucune des exceptions prévues à l'art. 83 LTF n'étant réalisée. Le recourant a pris part à la procédure de recours devant l'autorité cantonale et est particulièrement touché par l'arrêt attaqué qui confirme l'autorisation de construire délivrée pour la réalisation d'un projet sur une parcelle voisine de la sienne. Il a donc qualité pour agir au sens de l'art. 89 al. 1 LTF. Les autres conditions de recevabilité du recours en matière de droit public étant remplies (y compris les conclusions du recours, bien que celles-ci ne soient pas expressément de nature réformatoire), il convient d'entrer en matière.
2.
Le recourant reprend son grief relatif à la conformité du projet à la zone mixte artisanale. Il invoque l'autonomie dont dispose la commune dans l'application de son propre règlement et la retenue dont devrait faire preuve l'instance cantonale lorsque la commune exerce sa liberté d'appréciation. Il estime aussi que l'interprétation faite par la cour cantonale serait arbitraire car la mention "habitat sans restriction" figurant à l'annexe au RCCZ ne reposerait pas sur le texte adopté par le législateur communal et résulterait d'une inadvertance reconnue par ses auteurs. Le recourant relève que la même annexe impose pour la même zone l'habitat dispersé, contrairement à ce que prévoit le projet. Ce dernier rendrait en définitive impossible une affectation mixte.
2.1. La question de la conformité du projet aux prescriptions communales sur la zone mixte a déjà été examinée dans le premier arrêt cantonal, auquel se réfère le second. Puisque cette question n'a pas pu être examinée par le Tribunal fédéral en raison du caractère incident du premier arrêt de renvoi, le recourant peut la soulever à nouveau dans son recours dirigé contre la décision finale (art. 93 al. 4 LTF).
2.2. La jurisprudence reconnaît que les particuliers peuvent invoquer l'autonomie communale (art. 50 Cst.), dans la mesure où cette garantie peut avoir un effet sur leur situation juridique ou de fait (ATF 141 I 36 consid. 1.2.4 p. 40 s.). Tel est manifestement le cas en l'occurrence, dans la mesure notamment où la commune a dans un premier temps refusé le permis de construire en se fondant sur l'interprétation de son propre règlement. La Municipalité appuie d'ailleurs le recourant sur ce point.
Selon l'art. 50 al. 1 Cst., l'autonomie communale est garantie dans les limites fixées par le droit cantonal. La constitution valaisanne rappelle cette autonomie à son art. 70. A teneur de l'art. 6 let. c de la loi cantonale du 5 février 2004 sur les communes (LCom; RS/VS 175.1), ces dernières ont notamment pour attribution l'aménagement local et la police des constructions (cf. également art. 49 al. 1 de la loi cantonale sur les constructions (LC; RS/VS 705.1).
Lorsqu'elle est reconnue autonome dans un domaine spécifique, une commune peut dénoncer tant les excès de compétence d'une autorité cantonale de recours que la violation par celle-ci des règles du droit fédéral, cantonal ou communal qui régissent la matière. Lorsqu'une autorité communale apprécie les circonstances locales ou applique sa propre réglementation dans le cadre de l'octroi d'une autorisation de construire ou de l'adoption d'un plan de quartier, elle bénéficie ainsi d'une liberté d'appréciation particulière, que l'autorité de recours contrôle avec retenue (cf. art. 3 al. 2 LAT). Dans la mesure où la décision communale repose sur une appréciation soutenable des circonstances pertinentes, la juridiction de recours doit la respecter. En dépit de son pouvoir d'examen complet (en l'occurrence étendu à l'opportunité en vertu de l'art. 47 al. 1 de la loi valaisanne sur la juridiction et la procédure administratives), elle ne peut intervenir et, cas échéant, substituer sa propre appréciation à celle des autorités communales que si celle-ci n'est objectivement pas soutenable ou contrevient au droit supérieur (arrêts 1C_92/2015 du 18 novembre 2015 consid. 3.1.3; 1C_150/2014 du 6 janvier 2015 consid. 2.2; 1C_629/2013 du 5 mai 2014 consid. 7.1).
Le Tribunal fédéral contrôle ainsi librement si l'autorité judiciaire cantonale a respecté la latitude de jugement découlant de l'autonomie communale; contrairement à ce que soutient l'intimée, il ne restreint pas son pouvoir d'examen à l'arbitraire (cf. ATF 136 I 395 consid. 2 p. 397; arrêts 1C_849/2013 du 24 février 2015 consid. 3.1.2).
2.3. L'art. 68 RCCZ définit la zone mixte artisanale ZA de la manière suivante:
a) Destination:
- Cette zone est destinée aux constructions à caractère artisanal, aux commerces, ainsi qu'au dépôt de matériel et matériaux d'entreprise.
- L'habitat est autorisé aux Sauges. Dans les autres zones mixtes artisanales de plaine, il n'est autorisé que s'il est lié à l'activité artisanale développée. Il est interdit à la Tzoumaz.
- Le dépôt de matériaux est interdit dans la zone mixte artisanale des Sauges et des Morands. Il est autorisé sur le site Au Deuray, selon prescriptions de l'art. 86 RCC.
b) Affectations admises:
- Les dépôts, les ruraux, les petites industries, les ateliers, les habitations y sont admises.
c) Prescriptions diverses:
c) Prescriptions diverses:
... Le RCCZ comporte une annexe 2 intitulée "tableau des zones". S'agissant de la ZA mixte, il indique comme destination le travail, les ruraux (à condition que cela ne provoque pas de gêne pour le voisinage) et l'habitation. Il précise (remarque 8) qu'aux Sauges, l'habitat est permis sans restriction alors que dans les autres ZA, l'habitat doit être lié à l'exploitation.
2.4. Dans sa décision de refus du 13 juin 2013, l'autorité communale s'est fondée sur la clause d'esthétique et d'intégration de l'art. 48 RCCZ, considérant que la zone était essentiellement occupée par des maisons familiales individuelles pour lesquelles la hauteur maximale était de 9 m, et que le projet était de nature à compromettre le caractère du secteur. Dans ses déterminations, la commune explique que la zone située tout à l'ouest de son territoire est réservée aux commerces et est notamment occupée par un grand centre commercial (Hornbach). La zone mixte est située entre ce périmètre et la zone de villas plus à l'ouest et devrait assurer le lien entre les deux zones en étant consacrée soit à des villas, soit à des activités artisanales. L'habitat collectif n'aurait pas de raison d'être à cet endroit et serait en rupture avec le bâti existant. Confirmant la décision de refus, le Conseil d'Etat a lui aussi retenu que le projet n'était pas conforme à la ZA dès lors que cette zone ne permettait pas l'habitat collectif mais seulement l'intégration des quelques villas existantes. Dans son premier arrêt, admettant le recours de la constructrice, la cour cantonale a relevé que l'art. 68 RCCZ, consacré à la ZA, n'exigeait pas un lien fonctionnel des habitations avec l'activité artisanale, le tableau des zones précisant expressément que l'habitat était autorisé sans restriction dans le secteur des Sauges. Le même tableau précisait les hauteurs et longueurs maximales des bâtiments et les distances minimales, la forme des toitures et l'indice de densité. A la différence de l'ancien RCCZ qui mentionnait les habitations individuelles, la nouvelle réglementation prévoyait plus généralement de l'habitat, la limitation des constructions à trois logements ayant elle aussi été abandonnée. Rien ne permettait en définitive d'empêcher les bâtiments d'habitat collectif. Les objections liées à l'intégration des bâtiments ont également été écartées, dès lors que la hauteur des constructions (15 m) était expressément définie dans le RCCZ. Le secteur ne présentait pas de valeur esthétique particulière, une imposante surface commerciale se trouvant à proximité.
2.5. Contrairement à ce que soutient le recourant, la décision communale initiale ne relève pas de l'opportunité, mais du respect du règlement communal définissant l'affectation admissible dans une zone déterminée. Il s'agit d'une question juridique pour laquelle la cour cantonale n'avait pas à observer une retenue particulière. Or il ressort du texte clair de l'art. 68 RCCZ que l'habitat est possible dans le secteur des Sauges et que, par opposition aux autres secteurs similaires (et indépendamment des raisons pour lesquelles la remarque correspondante figure dans l'annexe au règlement), il n'est pas nécessairement lié à l'activité artisanale. Par ailleurs, le tableau des zones prévoit clairement l'indice de densité (0,6), les limites de hauteur (15 m) ainsi que la forme des toitures et les distances aux limites, et rien ne permet d'affirmer que ces prescriptions ne vaudraient que pour les bâtiments artisanaux, à l'exception des maisons d'habitation pour lesquelles il n'y aurait alors aucune réglementation. Or, selon la jurisprudence constante, lorsqu'un plan de zones prévoit que des constructions d'un certain volume peuvent être édifiées dans tel secteur du territoire, une interdiction de construire fondée sur une clause d'esthétique, en raison du contraste formé par le volume du bâtiment projeté, ne peut se justifier que par un intérêt public prépondérant. Il faut que l'utilisation des possibilités de construire réglementaires apparaisse déraisonnable. Tel sera par exemple le cas s'il s'agit de protéger un site, un bâtiment ou un ensemble de bâtiments présentant des qualités esthétiques remarquables, qui font défaut à l'immeuble projeté ou que mettrait en péril sa construction (ATF 101 Ia 213 consid. 6c p. 222 s.; 115 Ia 114 consid. 3d p. 119; arrêt 1C_8/2017 du 12 juillet 2017 consid. 2.1.2; 1C_340/2015 du 16 mars 2016 consid. 6.1.1 et les arrêts cités).
En l'occurrence, nul ne prétend que la zone de villas située à proximité du projet présenterait un intérêt particulier qui justifierait de déroger aux dispositions sur la zone en question, la parcelle se situant d'ailleurs à quelque distance du quartier de villas. Le recourant ainsi que la commune semblent d'ailleurs admettre la présence de bâtiments commerciaux ou artisanaux d'une taille comparable au projet, alors que l'impact serait identique du point de vue de l'esthétique et de l'intégration. Dans ces conditions, le refus d'autoriser l'habitat collectif dans cette zone n'apparaît pas soutenable et c'est donc sans arbitraire, sans violation du droit fédéral et sans violer l'autonomie communale que la cour cantonale a validé le projet de ce point vue.
3.
Invoquant l'art. 75b Cst., le recourant relève que la commune de Riddes compte plus de 20% de résidences secondaires; 57 permis de construire auraient été délivrés pour des logements, de sorte qu'avec le projet litigieux, 109 appartements seraient offerts sur le marché alors que sur les quatre dernières années on compterait seulement 300 nouveaux arrivants. Il y aurait donc un risque que les logements soient en définitive vendus comme résidences secondaires, vu la proximité des stations de ski de La Tzoumaz (une liaison en téléphérique depuis la plaine serait prévue) et de Nendaz, ainsi que du centre thermal de Saillon. Le recourant mentionne divers projets de constructions abandonnés. Il estime enfin que les intentions du promoteur (locatif au lieu de PPE) se seraient adaptées suite à l'introduction de la loi sur les résidences secondaires.
3.1. L'art. 75b Cst. limite les résidences secondaires au maximum de 20 % du parc des logements et de la surface brute au sol habitable de chaque commune (ATF 142 II 201 consid. 2.1 p. 208 et les références citées). L'art. 7 al. 1 let. a LRS prévoit ainsi que dans les communes concernées, de nouveaux logements ne peuvent être autorisés qu'à la condition d'être utilisés comme résidence principale ou comme logement assimilé à une résidence principale au sens de l'art. 2, al. 3. L'art. 3 al. 1 ORSec précise que la servitude à mentionner au registre foncier en vertu de la LRS doit avoir la teneur suivante: "résidence principale ou logement assimilé à une résidence principale au sens de l'art. 7, al. 1, let. a, LRS".
On ne peut exclure que certains constructeurs soient tentés de contourner la réglementation applicable. Un abus de droit manifeste (art. 2 al. 2 CC) ne saurait toutefois être admis que s'il apparaît d'emblée que le projet ne pourra pas être utilisé comme annoncé, notamment en raison de l'insuffisance de la demande de résidences principales dans la commune en question pour le type d'objets concernés, et/ou en présence d'autres indices concrets (ATF 142 II 206 consid. 2.2 p. 209). Ces indices peuvent, selon les circonstances, concerner la situation de l'immeuble (zone de construction, accessibilité toute l'année, éloignement des lieux de travail), sa conception même (dans l'optique d'une occupation à l'année), éventuellement son prix, les circonstances tenant à la personne qui entend y habiter, lorsque celle-ci est connue (résidence actuelle, lieu de travail, déclarations d'intention de l'intéressé lui-même). Lorsque le ou les futurs occupants ne sont pas connus, le critère principal est celui de la demande de résidences principales dans le même secteur (ATF 142 II 206 consid. 2.4 p. 210; arrêt 1C_263/2016 du 21 février 2017 consid. 4.3).
3.2. Selon l'arrêt attaqué et les renseignements fournis par l'autorité communale, la population a connu une forte croissance ces dernières années à Riddes (295 habitants de plus, soit 11% entre janvier 2013 et novembre 2016) et rien ne permet d'affirmer que cette croissance soit passagère ou due uniquement, comme le prétend le recourant, à l'installation d'un grand centre commercial. Tous les logements construits en résidences principales sont en outre occupés. Malgré la proximité des stations de ski, le secteur de plaine n'est pas particulièrement dédié à l'activité touristique. La commune se trouve entre les villes de Martigny et de Sion, elle est desservie par l'autoroute (dont l'accès se trouve à proximité de la parcelle litigieuse) et par le train. Les logements projetés se prêtent ainsi manifestement à la résidence principale. L'existence de chantiers arrêtés ne suffit pas pour mettre en doute l'existence d'une demande suffisante, l'arrêt des travaux pouvant être expliqué, comme le relève la commune, par les problèmes financiers du promoteur. Il n'y a dès lors pas lieu de douter que les logements pourront être réellement utilisés en tant que résidences principales, la constructrice ayant indiqué qu'elle allait procéder à une réalisation par étapes afin d'optimiser l'occupation des logements. L'arrêt attaqué est dès lors conforme au droit fédéral sur ce point.
4.
Il résulte de ce qui précède que le recours doit être rejeté et l'arrêt cantonal confirmé. Le recourant, qui succombe, supportera les frais judiciaires (art. 66 al. 1 LTF) ainsi que l'indemnité de dépens allouée à l'intimée B._ SA, qui obtient gain de cause avec l'assistance d'un avocat (art. 68 al. 2 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Une indemnité de dépens de 3'000 fr., est allouée à l'intimée B._ SA, à la charge du recourant.
3.
Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux mandataires des parties, à la Commune de Riddes, au Conseil d'Etat du canton du Valais, au Tribunal cantonal du canton du Valais, Cour de droit public, et à l'Office fédéral du développement territorial.
Lausanne, le 16 novembre 2017
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Merkli
Le Greffier : Kurz