iOS学习

  • Objective-C 相关

Objective-C 简介
Objective-C 入门教程(看完"属性"了)
Objective-C Wiki
iOS Category 详解
Objective-C Category

  • API用法
    给Canvas着色:
    CGContextSetFillColorWithColor(context, [[UIColor whiteColor] colorWithAlphaComponent:0.3].CGColor);
    CGContextFillRect(context, CGRectMake(0, 0, width, height));
    CGContextDrawImage(context, CGRectMake(0, 0, width, height), cgImageRef);

  • Xcode更新运行iOS项目(如AE项目)的一般步骤:

  • 如果增加了新的SubModule,需要执行SubModule更新命令:
    git pull --recurse-submodules origin release_xxx.
    然后在Fork等Git版本控制软件里,点击进入SubModule界面, 以初始化此SubModule)

  • 如果提示"RuntimeError - [Xcodeproj] Unknown object version": 解决报错“RuntimeError - [Xcodeproj] Unknown object version.”

  • 如果subModule提示“Couldn't load project”: 尝试直接双击此project的xx.xcworkspace文件,看看是不是提示Xcode版本过低

  • 如果include的文件,在电脑内也找不到,也就是代码没有拉下来,就也要看看subModule的仓库有没有开权限

  1. 打开命令行界面,进入项目根目录 cd /Users/xx/DemoiOS
  2. 执行 pod install
  3. 如果提示错误,按提示执行命令: pod install --repo-update
  4. 上一步更新完毕后,
  5. 用Xcode打开根目录的此文件: /Users/xx/DemoiOS/DemoiOS.xcworkspace
  6. 在preference里的locations选项里,前两个选项都选Default,Advanced里选择Shared Folder Build
  7. 如果Build报错:"Build input files cannot be found: ",则点击左上角的文件夹icon, 然后在左下角的搜索框内搜索对应的类,并删除对应的类
  8. 在左上角选好要运行的设备, 如果选择模拟器会导致报错
  9. 在preference里的locations选项里,前两个选项都选Default
  10. 如果弹出sign密码框,填入手机的解锁密码,并点击始终允许,不然会一直弹框
  11. 注意在run按钮的左侧,选择所要跑的项目,如Demo或者SDK
  12. 在新手机上跑项目时要设置信任选项: 位置是设置->通用->描述文件与设备管理->开发者APP,也确认iOS手机上至少已经显示电池充电的动画表示设备连接成功
  13. 由于AE项目有自己的Build路径,所以打开AE项目时,可以去File-> Project Settings -> Advanced -> Custom 选择Absolute类型,然后选择/Applications/Adobe After Effects 2021/Plug-ins
  14. Xcode项目点击Run后,要自动启动某应用,比如AE, 则需做如下配置:点击Run按钮左边的项目名 -> 选择EditScheme -> 选中Run下面的子按钮Run, 在右侧的Info菜单栏的Executable一栏下选择所要启动的应用,如Adobe After Effects 2021

Xcode工程添加文件:
xcode的项目里新文件是需要手动添加,需要先把对应的新文件剪切到桌面,然后拖到Xcode项目工程文件树里对应的位置并如截图所示勾选选项:


截屏2022-02-24 下午5.30.05.png

bug解决:

  • 项目里引用了动态库,报错“dyld: Library not loaded: xxx.dylib”
  1. 项目设置里,Framworks and Libraries一栏,增加动态库,并且设置为Embed Without Signing(或者方案二Do Not Embed,此时第四步里设置为required);
  2. Build Phases 的 Embed Libraries里,设置Destination 为 Frameworks;
  3. 在Build Settings -> Linking -> Runpath Search Paths里,增加新目录: @executable_path/../Frameworks
  4. 由于不是系统库,所以在Build Phase -> Link Binary With Libraries 里设置此库的status为Optional
    如果选方案1,最后打包的文件里,会包含"根目录/Frameworks/xxx.dylib”这个文件,
    而Unix可执行文件(即@executable_path)在启动的时候会从相对路径../Frameworks去找这个xxx.dylib。
    确认最后打包的文件里的路径结构
    的确如此,就可确认dylib的路径设置正确了

实际按方案二配置,并且还需要配置“带动态库的AE插件安装方法”:

  • 带动态库的AE插件安装方法:

如果是Winows电脑

将xx.dll
拷贝到 "C:\WINdows\system32\xx.dll"

如果是Mac电脑

a. 将 "xx.dylib"
拷贝到 "/usr/local/lib/xx.dylib"
b. 选中此文件:/usr/local/lib/xx.dylib,
然后右键-> 打开方式-> 终端 如果有提示框选择同意 执行成功
c. 选中此文件-> 显示简介 -> 打开方式 -> 选择终端

Xcode升级后快捷键不能使用的解决方法: Xcode一键添加快捷键(复制、删除、插入行)

Xcode工程更换证书的步骤:

  1. 打开 /System/Applications/Utilities/Keychain\ Access.app 删除旧的证书
  2. 关闭Xcode
  3. 非M1直接安装 M1需要打开钥匙串找到登录把证书拖进去 输入证书密码
  4. 打开Xcode, 安装证书后首次运行会出现输入密码的弹窗 这个时候输入开机密码(特殊情况输入“登录”钥匙串密码)点始终允许
  5. 点击根项目的图标,在Signing&Caoabilities一栏,如果发现提示账号过期,就重新登录,登录密码为账号的密码
  6. 点击根项目的Show in Finder, 删除Pods和Podfile.lock, 然后在终端cd到项目根目录,执行pod install

你可能感兴趣的:(iOS学习)