ios 引用编译出现duplicate symbol错误的处理

1 头文件中定义了全局变量,因为多个文件引用了该头文件,导致重复定义。错误信息:

1
2
3
duplicate symbol _kMediaCmdParamVideFileName in:
/Users/lynn/Library/Developer/Xcode/DerivedData/xxx-dekysmkcblreiyesflewliynaudf/Build/Intermediates/xxx.build/Debug-iphoneos/xxx.build/Objects-normal/arm64/LeftViewController.o
/Users/lynn/Development/xxx/Framework/RvsViewerUI.framework/RvsViewerUI(UIImageView+YaMaXunCache.o)

问题原因:
在a.h中有如下定义

1
NSString *const kMediaCmdParamVideFileName   = @"AVSCIDNumber";

修改方案:

1
static NSString *const kMediaCmdParamVideFileName   = @"AVSCIDNumber";

2 workspace的多个工程之间,或者引用的framework都引用了同一个第三方库,导致类和方法多次实现。
解决方案:如果能拿到源码,只在主工程保留完整的源码,其他工程或者framework直接删掉.m、.swift文件,只留下头文件就可以了

ios app 发布时需要的图片资源

  1. APP应用中的 icon 图片:icon29@2x, icon29@3x, icon40@2x, icon40@3x, icon60@2x, icon60@3x

    1
    2
    iPhone 6s Plus, iPhone 6 Plus	120px by 120px	87px by 87px
    iPhone 6s, iPhone 6, iPhone SE 80px by 80px 58px by 58px
  2. itunesconnect上需要的icon图片:1024x1024
    itunesconnect上需要的屏幕截图:
    5.5 2208 x 1242 pixels for hi-res landscape
    4.7 1334 x 750 pixels for hi-res landscape
    4 1136 x 640 pixels for landscape (full screen) minimum
    3.5 960 x 640 pixels for hi-res landscape (full screen) maximum
    (要求都是 72 dpi, RGB, flattened, no transparency
    High-quality JPEG or PNG image file format)

参考:
https://developer.apple.com/ios/human-interface-guidelines/graphics/app-icon/#//apple_ref/doc/uid/TP40006556-CH27-SW1

uitextfield输入文字的时候忽隐忽现

故障现象:
往uitextfield输入文字的时候,输入一个字母,字串消失;再输入一个,字串出现;再输入,字串消失…

故障原因:
uitextfield继承了scrollview的属性

解决方案:
uitextfield所在的uiview加入语句:
self.automaticallyAdjustsScrollViewInsets = false

常用framework

AddressBook.framework
提供访问存储核心数据库中用户联系人信息的功能

AddressBookUI.framework
提供一个用户界面,用于显示存储在地址簿中的联系人信息

dyld: Library not loaded as image not found

APP运行时的错误日志:

1
2
3
dyld: Library not loaded: @rpath/softCamera.framework/softCamera
Referenced from: /var/containers/Bundle/Application/7AE9BCCF-E583-4015-85EC-A2D48F5182D1/ZTE.app/ZTE
Reason: image not found

解决方案:
把softcamera framework 添加到“general”-> “Embedded binaries”; 而不是”general”->”Linked framework and library”

,