record de problèmes de développement ios en 2022

1.ld : avertissement : Impossible de trouver ou d'utiliser le framework auto-lié 'xxxFramework' Symboles non définis【别人】

Raison : Le framework SDK utilisé fait référence à un autre framework A. Bien qu'il s'agisse de deux bibliothèques statiques, lorsque le SDK est introduit, le framework A doit également être introduit. Sinon, cet avertissement apparaîtra et le symbole signalé n'existe pas.

2.C++ + #include<memory> invite de pointeur intelligent....usr/include/c++/v1/__threading_support:457:11 : erreur de génération : utilisation de l'identifiant non déclaré 'nanosleep'. 【les autres gens】

Raison : les chemins de recherche d'en-tête introduisent le fichier d'en-tête FFmpeg, dont l'un est nommé time.h, et nanosleep provient du fichier d'en-tête /usr/include/time.h, provoquant un conflit, provoquant un crash du système lors de la compilation et de la recherche de le fichier d'en-tête. Le fichier d'en-tête est écrasé.

3. Problème d'imbrication de bibliothèque dynamique et statique : https://www.jianshu.com/p/b03d617917d6 [Autres]

 4.xcode14 Connexion de l'appareil iOS 15.7 xcode affiche "Échec de la préparation de l'appareil pour le développement". Raison : bien que xcode 14 inclut la prise en charge des appareils pour iOS16, il n'inclut pas la prise en charge des appareils pour 15.7. 【Propre】

5.LEEAlert ne peut pas apparaître s'il n'est pas écrit dans une chaîne. 【Propre】

写了一个类方法,方法里的代码如下。

// 这里获取了一下config的对象
LEEBaseConfigModel *config = [LEEAlert alert].config;
    config.LeeAddTitle(^(UILabel * _Nonnull label) {
        label.text = @"123123";
        label.textColor = UIColor.titleDarkColor;
        label.font = [UIFont systemFontOfSize:15];
    }).LeeAddContent(^(UILabel * _Nonnull label) {
        label.text = @"123123";
        label.font = [UIFont systemFontOfSize:15];
        label.textColor = UIColor.titleColor;
    }).LeeAddAction(^(LEEAction * _Nonnull action) {
        action.title = @"123123";
    }).LeeAddAction(^(LEEAction * _Nonnull action) {
        action.title = @"123123";
    }).LeeShow();

La raison en est que lorsque le produit est compilé, les variables locales contiennent les propriétés de l'objet temporaire, qui seront libérées car l'objet temporaire est immédiatement libéré, ce qui rend la fenêtre contextuelle invalide. Ce qui est étrange, c'est que lorsque le développement est compilé, la publication ne se produit pas immédiatement, ce qui entraîne une fenêtre contextuelle réussie. La solution est de conserver [alerte LEEAlert] dans une variable locale.

6. L'épinglage SSL doit obtenir la période de validité du certificat cer, donc OpenSSL est utilisé pour analyser le certificat. Il s'est avéré qu'il y avait une bibliothèque statique d'OpenSSL dans le projet, mais je ne connaissais pas le numéro de version, j'ai donc téléchargé le fichier d'en-tête 1.1.1. On constate que le numéro de série peut être obtenu, mais le numéro de version est -1 et l'heure renvoyée par X509_get_notAfter est nulle. Téléchargez une bibliothèque compilée et un fichier d'en-tête, créez un projet de démonstration et constatez que l'heure peut être obtenue, il est donc déterminé que le problème est dû à des versions de fichiers d'en-tête incohérentes. Utilisez IDA pour obtenir le numéro de version de la bibliothèque statique 1.0.2h et introduisez le fichier d'en-tête de cette version dans le projet. Comme la version est plus ancienne, cela indique que certaines fonctions n'existent pas. Après remplacement, l'heure effective est obtenue avec succès. 【Propre】

7.NSDictionary ne peut pas lire le fichier plist correspondant à NSUserDefaults et le résultat est vide. Raison : NSUserDefaults est stocké sous forme bplist, pas sous forme XML. Des fichiers plus petits peuvent être obtenus, mais l'API NSDictionary ne peut pas les lire. 【Propre】

8. La lecture de texte d'AVSpeechSynthesizer invite La requête pour com.apple.MobileAsset.VoiceServices.VoiceResources a échoué : 2. Raison : Le système est mis en sourdine. Solution : activez la session audio et définissez la catégorie sur AVAudioSessionCategoryPlayback.

Je suppose que tu aimes

Origine blog.csdn.net/Mamong/article/details/127043205
conseillé
Classement