2022年ios开发问题记录记录

1.ld: warning: Could not find or use auto-linked framework ‘xxxFramework‘ Undefined symbols【别人】

原因:使用的SDK framework引用了另一个A framework,虽然都是静态库,但是引入SDK的同时,也得引入A framework。否则会有这个警告,并且报符号不存在。

2.C++ + #include<memory> 智能指针提示.....usr/include/c++/v1/__threading_support:457:11: error build: Use of undeclared identifier 'nanosleep'。【别人】

原因:header search paths引入了FFmpeg的头文件,其中有一个头文件名叫time.h,而nanosleep来源于头文件/usr/include/time.h,造成了冲突,导致编译查找头文件时候,系统头文件被覆盖。

3.动静态库嵌套问题:https://www.jianshu.com/p/b03d617917d6 【别人】

 4.xcode14 ios 15.7设备连接xcode提示“Failed to prepare device for development”。原因:xcode 14虽然包括iOS16的device support,但是不包括15.7的device support。【自己】

5.LEEAlert非链式写法无法弹出。【自己】

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

// 这里获取了一下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();

原因product编译时,本地变量持有临时对象的属性,会因为临时对象立即被释放而释放,导致弹窗无效。奇怪的是develop编译时,释放不会立即发生,导致能弹窗成功。解决办法,本地变量持有[LEEAlert alert]。

6.SSL pinning需要获取cer证书的有效期,因此使用OpenSSL解析证书。刚好项目里有OpenSSL的静态库,但是不知道版本号,于是下了个1.1.1的头文件。发现可以获取序列号,但是获取版本号为-1,X509_get_notAfter返回的时间为null。下载一个编译好的库和头文件,做成一个demo工程发现能获取到时间,于是判断是头文件版本不一致导致的问题。使用IDA获取静态库版本号为1.0.2h,将该版本的头文件引入工程,因为版本较老,提示一些函数不存在,进行更换后,成功获取有效时间。【自己】

7.NSDictionary无法读取NSUserDefaults对应的plist文件,结果为空。原因:NSUserDefaults是以bplist形式存储的,不是xml形式存储,可以获得更小的文件,但是NSDictionary的API无法读取。【自己】

8.文本朗读AVSpeechSynthesizer提示Query for com.apple.MobileAsset.VoiceServices.VoiceResources failed: 2,原因:系统静音。解决办法:激活音频会话并设置分类为AVAudioSessionCategoryPlayback。

9.在keychain中保存公钥和私钥,读取出来后发现公私钥变了,导致解密失败。代码使用了iOS RSA公钥加密、私钥解密_ios rsa私钥解密-CSDN博客的方案。使用nm和grep命令查找“addPrivateKey”方法,发现多处使用了该符号,其中有两处来自使用的音视频会议库,初步怀疑其使用了同名的key,导致偶发的keychain覆盖问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,目前还没有Visual Studio 2022 for Mac的官方发布版本,只有预览版。关于使用Visual Studio for Mac进行iOS开发的教程,我可以给你一些基本的指导。 首先,你需要确保你已经安装了Visual Studio 2022 for Mac预览版。然后,你需要了解和配置苹果开发者相关的证书、描述文件、真机测试和分发渠道等内容。这些都是iOS开发中必不可少的步骤。 在Visual Studio for Mac中,你可以使用Xamarin来开发iOS应用。Xamarin是一个跨平台的移动应用开发框架,可以使用C#语言进行开发。在Visual Studio for Mac中,你可以创建新的Xamarin.iOS项目,并通过连接苹果开发者账号来获取必要的证书和描述文件。 一旦配置完成,你就可以开始开发iOS应用了。你可以使用Visual Studio的强大功能来编写代码、设计界面、调试代码等。你可以使用iOS模拟器来测试你的应用,同时也可以连接真机进行真实设备测试。 在开发完成后,你可以选择不同的分发方式,如Ad Hoc(内部分发)或App Store(发布到App Store)。根据你的需求,选择适合你的分发方式。 总结来说,使用Visual Studio 2022 for Mac预览版进行iOS开发需要了解苹果开发者的相关配置和步骤,使用Xamarin进行开发,利用Visual Studio的功能进行代码编写和调试,并选择适合的分发方式。 希望这些基本的指导对你有帮助!如果你需要更详细的教程或有其他问题,请告诉我。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MacOs平台下 Vs2022 for Mac、Xamarin、IOS Android 双平台证书申请、开发环境配置、实机测试、内部分发B...](https://blog.csdn.net/icerose/article/details/122806175)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值