精华内容
下载资源
问答
  • iOS 14

    2020-11-30 12:42:54
    <p>Looks like iOS 14 introduced new design for Calendar <h3>Expected Behaviour <p>Looks like this component needs to be updated to handle these changes for iOS 14 <h3>Environment <ol><li><code>react-...
  • iOS14 隐私适配:【定位授权新增了精确和模糊定位 可根据不同的需求设置不同的定位精确度】向用户申请临时开启一次精确位置权限的方案(不同场景可定义不同purposeKey) II、KVC相关的适配 iOS14 适配:【KVC 不允许...

    前言

    I、隐私权限相关的适配

    iOS14相册权限适配 :Limited Photo Access模式、PHAccessLevel(请求查询limited权限在 accessLevel 为readAndWrite 生效)、图片选择器

    II、KVC相关的适配

    III、UIView相关的适配

    iOS14适配:【解决iOS14下pop多层控制器至首页时,tabbar不显示问题】方案1:重写pushViewController;方案2: hook hidesBottomBarWhenPush

    因此问题涉及的是添加子视图cell.addSubView方法,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews方法 都要注意谨慎使用和处理

    IV、第三方框架相关

    4.1 QMUIKit在iOS14 下首次唤起键盘卡住主线程]

    iOS14 下首次唤起键盘卡住主线程

    • Main Thread Checker: UI API called on a background thread: -[UIWindow windowScene]
    =================================================================
    Main Thread Checker: UI API called on a background thread: -[UIWindow windowScene]
    PID: 580, TID: 21138, Thread name: (none), Queue name: com.apple.root.user-initiated-qos, QoS: 25
    Backtrace:
    4   retail                              0x000000010576b628 __62+[UIWindow(QMUIUserInterfaceStyleWillChangeNotification) load]_block_invoke_3 + 296
    
    Main Thread Checker: UI API called on a background thread: -[UIWindow traitCollection]
    PID: 509, TID: 22376, Thread name: (none), Queue name: com.apple.root.user-initiated-qos, QoS: 25
    Backtrace:
    4   Housekeeper                         0x0000000100f3c000 __62+[UIWindow(QMUIUserInterfaceStyleWillChangeNotification) load]_block_invoke_3 + 92
    
    
    • 解决方案:如果你没使用QMUITheme,就直接注释掉代码即可。

    在这里插入图片描述

    @implementation UIWindow (QMUIUserInterfaceStyleWillChangeNotification)
    
    #ifdef IOS13_SDK_ALLOWED
    + (void)load {
        
        return ;
    }
    

    如果你使用QMUITheme,则及时你更新4.2.1版本也无法根本性解决

    这是因为系统自己在子线程访问了这些方法,只是 Main Thread Checker 对其做了兼容,发现 App 自己修改了这些方法的实现,才报错,没修改则不报错。
    检测方式可以打条件符号断点,然后把 QMUI 那段代码注释掉,运行起来后会发现依然能命中这个断点,说明系统自身确实是在子线程访问了(UIKit 这种行为特别多,不只是这里)。
    所以从原理上看,QMUI 命中这个主线程检测是不可避免的,目前只是做了一些优化,只有真正使用了 QMUITheme 组件时才会出现这个情况,没使用的时候就不会命中,以减少一部分的出错场景。这个优化将会跟随 4.2.1 版本发布。

    V、网络相关

    • iOS14 开启 encrypted DNS 提高安全性,防止DNS 劫持

    VI、Mac Catalyst 相关

    本来iOS不越狱的情况下是没权限看沙盒文件,这下到好了,macOS倒是打开了大门

    6.1 判断App是运行在Mac还是iPhone上

    • 使用iOS14 新增的API进行判断
    + (void)deviceisMac{
        
    
        BOOL isMac = false;
        
        
            
            
        if (@available(iOS 14.0, *)) {
    
            
            
            isMac = NSProcessInfo.processInfo.isiOSAppOnMac;
            
            
            
            
        }
        
        
        NSLog(@"App %s on Mac:",isMac ? "":"not");//
        
        
        
        
    }
    
    
    
    
    • 获取设备型号进行判断App是运行在Mac还是iPhone上
    /**
     #import <sys/utsname.h>
       获取设备型号
     应用场景:判断App是运行在Mac还是iPhone上
    
     "MacBookAir10,1": "MacBook Air (M1, 2020)",
     "MacBookPro17,1": "MacBook Pro (13-inch, M1, 2020)",
     "Macmini9,1": "Mac mini (M1, 2020)",
    
     */
    + (void)deviceModel {
        struct utsname systemInfo;
        uname(&systemInfo);
        NSString *deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
        NSLog(@"deviceModel:%@", deviceModel);//iPhone8,1
    }
    
    
    

    VII 真机调试

    iOS14真机调试app很卡的解决方案

    全选Scheme,在保留非Pod Project的Scheme
    在这里插入图片描述

    展开全文
  • 今天升级最新IDE Xcode,准备适配iOS14 API,结果发现app首页的cell中按钮也无法点击了。 I、问题分析 iOS14 UITableViewCell的子试图不能点击或者滑动等手势响应问题,发现有问题的cell基本都是直接 cell....

    前言

    今天升级最新IDE Xcode,准备适配iOS14 API,结果发现app首页的cell中按钮也无法点击了。

    I、问题分析

    iOS14 UITableViewCell的子试图不能点击或者滑动等手势响应问题,发现有问题的cell基本都是直接

    cell.addSubView(tempView1)
    
    

    这种方式添加的,通过Xcode自带的DebugViewHierarchy视图分析发现问题的原因是:被系统自带的UITableViewCellContentView遮挡在底部了

    在这里插入图片描述

    在这里插入图片描述

    所以需要改规范的做法

    cell.contentView.addSubView(tempView1)
    
    

    温馨提示:如果你用旧版的Xcode打包,而非使用Xcode12以上版本编译打包的话,是不会有问题。一旦你使用了Xcode12打包,就会出现此问题。(但是苹果迟早会限制高于Xcode12才可以上传appstore,所以一旦使用了不规范的代码,早晚都要面临这个问题

    1.0 其他分析视图层级的方法:私有API _printHierarchy 和recursiveDescription

    关于视图层级分析你也可以使用私有API _printHierarchyrecursiveDescription 在lldb 窗口进行分析:

    例如先打印VC层级(lldb) po [[[UIWindow keyWindow] rootViewController] _printHierarchy]

    再使用目标View的地址进行recursiveDescription打印子视图的层级。

    • po [0x10ff5e5e0 recursiveDescription]
    (lldb) po [0x10ff5e5e0 recursiveDescription]
    <UITableViewCell: 0x10ff5e5e0; frame = (0 767.5; 375 120); hidden = YES; autoresize = W; layer = <CAGradientLayer: 0x280b80860>>
       | <_UISystemBackgroundView: 0x10fe2d170; frame = (0 0; 375 120); layer = <CAGradientLayer: 0x280c58500>; configuration = <UIBackgroundConfiguration: 0x283aa54a0; Base Style = List Grouped Cell; backgroundColor = <UIDynamicSystemColor: 0x2818d3140; name = tableCellGroupedBackgroundColor>>>
       |    | <UIView: 0x10fe2d310; frame = (0 0; 375 120); clipsToBounds = YES; layer = <CAGradientLayer: 0x280c58640>>
       | <UIView: 0x10ff9a820; frame = (0 0; 375 120); layer = <CAGradientLayer: 0x280b9db60>>
       |    | <UIButton: 0x10ff9ab10; frame = (17 0; 170.5 60); opaque = NO; layer = <CAGradientLayer: 0x280b9dc40>>
       |    |    | <UIImageView: 0x10fe70710; frame = (0 16; 28 28); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280be9520>>
       |    |    | <UIButtonLabel: 0x10ff9af70; frame = (38 21.5; 86 17); text = '商户交易汇总'; opaque = NO; userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280b9dc80>>
       |    | <UIButton: 0x10ff9bd40; frame = (187.5 0; 170.5 60); opaque = NO; tag = 1; layer = <CAGradientLayer: 0x280b9e1c0>>
       |    |    | <UIImageView: 0x10ffacfd0; frame = (0 16; 28 28); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280b93220>>
       |    |    | <UIButtonLabel: 0x10ff9c1a0; frame = (38 21.5; 100 17); text = '代理商交易汇总'; opaque = NO; userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280b9e340>>
       |    | <UIButton: 0x10ff9cda0; frame = (17 60; 170.5 60); opaque = NO; tag = 2; layer = <CAGradientLayer: 0x280b9e540>>
       |    |    | <UIImageView: 0x10ffab1f0; frame = (0 16; 28 28); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280b92f40>>
       |    |    | <UIButtonLabel: 0x10ff9d200; frame = (38 21.5; 86 17); text = '终端激活汇总'; opaque = NO; userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280b9e680>>
       |    | <UIButton: 0x10ff9db20; frame = (187.5 60; 170.5 60); opaque = NO; tag = 3; layer = <CAGradientLayer: 0x280b9ea20>>
       |    |    | <UIImageView: 0x10ffa95d0; frame = (0 16; 28 28); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280b92ce0>>
       |    |    | <UIButtonLabel: 0x10ff9df80; frame = (38 21.5; 86 17); text = '商户终端汇总'; opaque = NO; userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280b9eb80>>
       |    | <UIView: 0x10ff9e8a0; frame = (15 60; 345 0.5); layer = <CAGradientLayer: 0x280b9ef00>>
       |    | <UIView: 0x10ff9ea10; frame = (15 120; 345 0.5); layer = <CAGradientLayer: 0x280b9f0c0>>
       | <UITableViewCellContentView: 0x10ffaafa0; frame = (0 0; 375 120); gestureRecognizers = <NSArray: 0x281fc73c0>; layer = <CAGradientLayer: 0x280b808e0>>
       |    | <UIImageView: 0x110f07d00; frame = (0 0; 0 0); userInteractionEnabled = NO; layer = <CAGradientLayer: 0x280b7e220>>
    
    
    
    

    1.1 注意事项

    因为此问题涉及的是添加子视图cell.addSubView,因此与之对应的方法(UITableViewCell *)[SubView superview]cell.subviews 都要注意谨慎使用和处理

    II、使用方法交换,全局修改

    如果错误代码比较多,可以采用hook,进行便捷的方法进行修改。

    例如125个文件的1452个地方使用错误的方法,这个如果不使用hook高质工作量有点大在这里插入图片描述
    所以通过Runtime hook cell的addSubView 方法强制修改为正确的添加cell 子视图的方式

    2.1 全局修改

    • 只允许添加 UITableViewCellContentView,其余都直接添加到self.contentView
    //
    //  UITableViewCell+CRMaddSubView.m
    //  Housekeeper
    //
    //  Created by mac on 2020/9/18.
    //  Copyright © 2020 QCT. All rights reserved.
    //
    
    #import "UITableViewCell+CRMaddSubView.h"
    
    @implementation UITableViewCell (CRMaddSubView)
    + (void)load {
        // Swizzle addSubView
        [UITableViewCell sensorsdata_swizzleMethod:@selector(addSubview:) withMethod:@selector(kunnan_addSubview:)];
        
    }
    
    - (void)kunnan_addSubview:(UIView *)view {
    
        
        
        if  ([view isKindOfClass:NSClassFromString(@"UITableViewCellContentView")]) {//允许 addSubView UITableViewCellContentView 
            
            [self kunnan_addSubview:view];//实现方法,因为已经进行了 swizzle,相当于调用原来的方法
            
    
            
        } else {
            
            [self.contentView addSubview:view];
            
        }
    
    
    
    }
    
    
    
    @end
    
    

    2.2 注意事项

    因为此问题涉及的是添加子视图cell.addSubView,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews 都要注意谨慎使用和处理

    具体例子如下2.2.1 和2.2.2

    2.2.1 cell.subviews

    因为这是针对全局的,所以测试的覆盖面也要广。 比如获取子视图采用cell.subviews 也要记得修改为 cell.contentView.subviews.

        UIButton * btn = cell.contentView.subviews[2-1];
    
    

    2.2.2 通过superview 获取cell的也需做相关修改

    • 经过全局hook之后,以下的代码就是错误的
      (UITableViewCell *)[textField superview]

    • 全局搜索进行修改
      在这里插入图片描述

            UITableViewCell * myCell = (UITableViewCell *)[textField superview].superview;
    
    

    所以使用class的时候,最好写得健壮性强点,进行类型判断,避免一旦类型错误,就会找不到对应的方法,发送闪退

        UIView * textFieldsuperview = [textField superview];
        UITableViewCell * myCell = nil;
        
        if([textFieldsuperview isKindOfClass:NSClassFromString(@"UITableViewCellContentView")]){
            
            
            
             myCell= (UITableViewCell *)[textFieldsuperview superview];
    
        }else{
            
            return;
            
            
        }
        
    
    

    能遇见这样的奇葩代码,只能说之前的同事很”牛逼啊。。。。“

    2.3 使用到的工具类

    • h
    //
    //  NSObject+CRMSwizzling.h
    //  Housekeeper
    //
    //  Created by mac on 2020/9/18.
    //  Copyright © 2020 QCT. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    NS_ASSUME_NONNULL_BEGIN
    typedef IMP *IMPPointer;
    /**
     让所有继承自NSObject的子类,都具有Method Swizzling的能力。
     */
    
    @interface NSObject (CRMSwizzling)
    
    
    /**
    交换方法名为 originalSEL 和方法名为 alternateSEL 两个方法的实现
    @param originalSEL 原始方法名
    @param alternateSEL 要交换的方法名称
    */
    + (BOOL)sensorsdata_swizzleMethod:(SEL)originalSEL withMethod:(SEL)alternateSEL;
    
    
    
    
    /**
     方式二
     */
    + (BOOL)swizzle:(SEL)original with:(IMP)replacement store:(out IMPPointer)store;
    
    
    
    @end
    
    NS_ASSUME_NONNULL_END
    
    
    • m
    //
    //  NSObject+CRMSwizzling.m
    //  Housekeeper
    //
    //  Created by mac on 2020/9/18.
    //  Copyright © 2020 QCT. All rights reserved.
    //
    
    #import <objc/runtime.h>
    #import <objc/message.h>
    
    
    #import "NSObject+CRMSwizzling.h"
    
    BOOL class_swizzleMethodAndStore(Class class, SEL original, IMP replacement, IMPPointer store);
    
    BOOL class_swizzleMethodAndStore(Class class, SEL original, IMP replacement, IMPPointer store) {
        
        IMP imp = NULL;
        Method method = class_getInstanceMethod(class, original);
        
        if (method) {
            
            const char *type = method_getTypeEncoding(method);
            imp = class_replaceMethod(class, original, replacement, type);
            
            
            if (!imp) {
                
                imp = method_getImplementation(method);
                
            }
        }
        if (imp && store) {
            *store = imp;
        }
        return (imp != NULL);
    }
    
    
    
        
    @implementation NSObject (CRMSwizzling)
    
    + (BOOL)sensorsdata_swizzleMethod:(SEL)originalSEL withMethod:(SEL)alternateSEL {
        // 获取原始方法
        Method originalMethod = class_getInstanceMethod(self, originalSEL);
        // 当原始方法不存在时,返回 NO,表示 Swizzling 失败
        if (!originalMethod) {
            return NO;
        }
    
        // 获取要交换的方法
        Method alternateMethod = class_getInstanceMethod(self, alternateSEL);
        // 当要交换的方法不存在时,返回 NO,表示 Swizzling 失败
        if (!alternateMethod) {
            return NO;
        }
    
        // 获取 originalSEL 方法的实现
        IMP originalIMP = method_getImplementation(originalMethod);
        // 获取 originalSEL 方法的类型
        const char * originalMethodType = method_getTypeEncoding(originalMethod);
        // 往类中添加 originalSEL 方法,如果已经存在会添加失败,并返回 NO
        if (class_addMethod(self, originalSEL, originalIMP, originalMethodType)) {
            // 如果添加成功了,重新获取 originalSEL 实例方法
            originalMethod = class_getInstanceMethod(self, originalSEL);
        }
    
        // 获取 alternateIMP 方法的实现
        IMP alternateIMP = method_getImplementation(alternateMethod);
        // 获取 alternateIMP 方法的类型
        const char * alternateMethodType = method_getTypeEncoding(alternateMethod);
        // 往类中添加 alternateIMP 方法,如果已经存在会添加失败,并返回 NO
        if (class_addMethod(self, alternateSEL, alternateIMP, alternateMethodType)) {
            // 如果添加成功了,重新获取 alternateIMP 实例方法
            alternateMethod = class_getInstanceMethod(self, alternateSEL);
        }
    
        // 交换两个方法的实现
        method_exchangeImplementations(originalMethod, alternateMethod);
    
        // 返回 YES,表示 Swizzling 成功
        return YES;
    }
    
    
    
    + (BOOL)swizzle:(SEL)original with:(IMP)replacement store:(out IMPPointer)store {
        return class_swizzleMethodAndStore(self, original, replacement, store);
    }
    
    
    
    @end
    
    

    III、逆向相关

    3.1 iOS 恢复调用栈(适配iOS14)

    原理:objective-c 函数信息除了保存在符号表中,还保存在其他段中

    https://github.com/zhangkn/restore-symbol4iOS14
    __TEXT.__objc_methname - Method names for locally implemented methods
    __TEXT.__objc_classname - Names for locally implemented classes
    __TEXT.__objc_methtype - Types for locally implemented method types
    __DATA.__objc_classlist - An array of pointers to ObjC classes
    __DATA.__objc_nlclslist - An array of pointers to classes who implement +load
    __DATA.__objc_catlist - List of ObjC categories
    __DATA.__objc_protolist - List of ObjC protocols
    __DATA.__objc_imageinfo - Version info, not really useful
    __DATA.__objc_const - Constant data, i.e. class_ro_t data
    __DATA.__objc_selrefs - External references to selectors
    __DATA.__objc_protorefs - External references to protocols
    __DATA.__objc_classrefs - External references to other classes
    __DATA.__objc_superrefs - External references to super classes
    __DATA.__objc_ivar - Offsets to ObjC properties
    __DATA.__objc_data - Misc ObjC storage, notably ObjC classes

    see also

    extension UITableViewCell {
        
        class func ios14Bug() {
            
            let sel1 = #selector(UITableViewCell.runtime_addSubview(_:))
            let sel2 = #selector(UITableViewCell.addSubview(_:))
            
            let method1 = class_getInstanceMethod(UITableViewCell.self, sel1)!
            let method2 = class_getInstanceMethod(UITableViewCell.self, sel2)!
            
            let isDid: Bool = class_addMethod(self, sel2, method_getImplementation(method1), method_getTypeEncoding(method1))
            if isDid {
                class_replaceMethod(self, sel1, method_getImplementation(method2), method_getTypeEncoding(method2))
            } else {
                method_exchangeImplementations(method2, method1)
            }
        }
        
        @objc func runtime_addSubview(_ view: UIView) {
            // 判断不让 UITableViewCellContentView addSubView自己
            if view.isKind(of: NSClassFromString("UITableViewCellContentView")!) {
                runtime_addSubview(view)
            } else {
                self.contentView.addSubview(view)
            }
        }
    }
    
    
    
    

    还发现他的另一个不规范使用cell API导致的问题,具体请看这里

    展开全文
  • iOS14操作系统,放入Xcode即可调试,路径/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • ios14 6月22号凌晨ios14测试版推出后,上午立马给我的小7装上尝尝鲜。 ios14主要的不同点是: App资源库,可以智能分类 小组件,主屏幕和负一屏 画中画,这个实测仅限apple TV可以使用 接下来的一段时间让我深刻...

    7月4号更新


    关于ios14降级后点击图片和网页分享页面出现空白的情况

    需要还原系统设置,这样子会重置当前的所有设置(不会清除数据)。

    通用—还原—还原所有设置(会重启)
    在这里插入图片描述

    下面是修复问题后的样子
    在这里插入图片描述


    升级ios14测试版

    6月22号凌晨ios14测试版推出后,上午立马给我的小7装上尝尝鲜。

    想要尝试的请下载描述文件,iphone和ipad通用。

    https://www.firedev.xyz/14/iOS_iPadOS_14_AppleSeed_Profile.mobileconfig

    注意:使用Safari浏览器(iphone自带的)

    ios14主要的不同点是:
    • App资源库,可以智能分类
    • 小组件,主屏幕和负一屏
    • 画中画,这个实测仅限apple TV可以使用
    接下来的一段时间让我深刻体会到了什么是测试版,噩梦开始了
    • 手机发热(堪比某米)
    • 掉电巨快
    • 有时莫名的卡顿
    • 系统占用内存的变大
    最让我受不了的还是前面两点

    ios14降回ios13.5.1

    昨天晚上实在是受不了,决定倒退系统

    准备工作

    • itunes(用来备份手机和还原)
    • ios13.5.1固件包

    1、备份

    建议啊,icloud基本备份一下!!!!!!
    微信和QQ的聊天记录备份,可以先备份到电脑上,双重保险。

    由于 iOS 系统限制,跨版本降级会导致设备数据丢失,理论上从 iOS 14 备份的数据也无法恢复至 iOS 13 系统,你现在用爱思助手或者 iTunes 备份的数据,降回 iOS 13 是无法恢复的。

    1.1、首先,在 iOS 14 系统下通过 iTunes 完整备份你的 iPhone 资料。

    在这里插入图片描述
    如果找不到这个页面,请点击这个手机小图标
    在这里插入图片描述

    1.2、备份完成后,打开刚刚备份的文件

    windows:C:Users/用户名/AppData/Roaming/Apple Computer/MobileSync/Backup

    打开最新的备份文件夹,用记事本/文本编辑工具打开info.plist
    (文件被删除了,就不上图了)

    Ctrl+F 查找Product Version

    在这个字段的下一行就是关于IOS备份的版本号了,因为是在ios14下备份的嘛,这个就是14了

    <kev>Product Version</kev>
    <string>14.0</string>
    <key>Serial Number</key>
    

    把中间的14.0修改为13.5.1,也就是要降级的系统版本。注意啊,这个版本号千万不要写错!!!!!

    2、固件包

    2.1、在爱思助手官网上下载相应的固件包

    链接地址
    在这里插入图片描述

    3、使用itunes进行降级

    打开 iTunes,按住 shift(windows)键,点恢复 iPhone,在弹出窗口中选择下载好的 iOS 13.5.1 系统固件等待刷机完成即可
    在这里插入图片描述

    实测

    除了邮件账户需要重新添加,别的数据都在。(也可能是icloud有基本备份)

    成功了的小伙伴帮我点一下赞噢

    展开全文
  • Support iOS14

    2020-12-01 21:18:42
    <div><p>Seems like with iOS14 coming out that the library is doing checks specifically for iOS13 versions. Is there planned updates to allow for ios 14?</p><p>该提问来源于开源项目:gajus/scream...
  • 通过swift开发iOS14/iPad14应用
  • location ios14驱动

    2020-06-24 10:33:56
    location ios14驱动,里面包含了inject.dmg和inject.dmg.signature文件
  • Flutter项目在 iOS14 启动崩溃

    万次阅读 热门讨论 2020-09-21 11:42:22
    Flutter项目在 iOS14 启动崩溃崩溃现象崩溃分析解决方法 崩溃现象 在ios14发布之后,运行APP就出现闪退,和机型没关,只要是IOS 14就必闪退 崩溃分析 1、启动就闪退,多起几次可能有一次没有问题。 2、启动后到某个...

    Flutter项目在 iOS14 启动崩溃

    崩溃现象

    在iOS14发布之后,运行APP就出现闪退,和机型没关,只要是iOS 14就必闪退

    崩溃分析

    1、启动就闪退,多起几次可能有一次没有问题。
    2、启动后到某个页面卡死(必卡跳不过)
    根本原因尚不明确,个人分析Product Name会影响Header Folder Path,可能是代码加载路径中出现中文会出问题。

    解决方法

    Xcode里,选择当前项目的TARGETS->BuildSetting -> Packaging -> Product Name,将中文的命名改成英文,flutter项目建议直接改成Runner。在这里插入图片描述

    希望以上方案能帮到大家~~~

    展开全文
  • iOS 14 Compatibility

    2021-01-03 05:56:00
    <div><p><strong>Current version of the package is compatible with iOS 14 beta, build 18A5301v.</strong></p> <p>For any bugs you encounter comment out in this issue and I will make fix them. Note that ...
  • iOS开发 ios14系统广告标识idfa获取适配, AppTrackingTransparency.framework
  • iPhone 6S 以上的设备都支持iOS 14。目前iOS 14正式版还没推送,只能通过系统描述文件安装iOS 14 Developer Beta版本。这是给开发者提前适配App的Beta版本,要不要升级,由您决定,本文不对您做的决定负责。1. 复制...
  • iOS14 broken

    2020-12-08 23:06:12
    it works well with iOS13.but when I try to work with iOS14, the device even does not send any PING packet,do you have any idea about this?</p><p>该提问来源于开源项目:danielpaulus/quicktime_...
  • 该资源包括:iOS13.6、 13.7、 iOS14、真机包 前往文件夹改地址 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 解压后拖入该文件夹
  • iOS 14 Widget

    2020-11-27 12:58:16
    <div><p>Any chance someone is working on a new iOS 14 home screen widget for the app? Would love to be able to have my local numbers easily visible.</p><p>该提问来源于开源项目:mhdhejazi/...
  • ios14的蓝牙弹窗_iOS 14 适配插件推荐

    千次阅读 2020-12-22 23:00:57
    越狱方式:Checkra1n (目前iOS14上唯一的越狱方式了,支持A7-A11越狱,教程在下面,后面有放相关越狱资源)支持的版本A5-A11的所有设备,也就是iPhone 4S-iPhone X中的所有设备以及所有iOS版本,理论上之后的所有iOS...
  • SwiftUI上的iOS 14入门
  • ios 14 crash

    2020-12-08 21:27:10
    <p>We have been facing crashes on iOS 14 Beta 1. I don't have any steps to reproduce since this occurs randomly. Will update If I find a pattern </p><p>该提问来源于开源项目:highcharts/...
  • Support iOS 14

    2021-01-06 07:12:34
    t support iOS 14. I did a couple of check and could not find the source of his issue, if someone can point me to the right class I can fix it and make a PR</p><p>该提问来源于开源项目:kaishin/...
  • iOS 14新特性与适配要点,swift中iOS的适配要点,以及ios14的一些新特性,iOS 14新特性与适配要点,swift中iOS的适配要点,以及ios14的一些新特性
  • iOS 14兼容包.zip

    2020-06-24 09:08:27
    iOS 14beta版本
  • iOS14真机调试包

    2020-07-21 17:18:43
    iOS14真机调试包, 取自xcode12beta版
  • IOS14更新完了之后我们公司app 出现了无法安装的问题, 同一个plist文件,13能,安装,14就提示无法安装,明天就开始推ios14了,所以就显得很急,下面记录下我们的解决方案: 我们没有是用apple store方式下载,我们用的...
  • 收集整理一波iOS捷径库(使用方法见文末,支持iOS14),包括了大家最想要的抖音去水印捷径和快手去水印捷径。大家使用过程中如果发现有啥问题或者想实现什么快捷指令,关注微信公众号“云峰小罗”,发送“捷径”找我...
  • iOS 14beta disk image

    2020-09-18 11:07:55
    iOS 14 beta版 diskimage,iOS开发可用 存放目录 cd /Applications/Xcode11.3.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • [PConline 技巧]iOS14要如何升级?苹果发布了最新的iOS14,不过目前iOS14仍处于beta阶段,需要用描述文件才可以升级。那么iOS14的描述文件要怎么下载?要怎么用描述文件升级到iOS14?这就来为大家介绍一下吧。确定...
  • IOS14怎么降级回IOS13

    2020-12-02 16:55:33
    IOS14怎么降级回IOS13?虽然新系统的各种新功能让人眼前一亮,但由于是beta 版本,难免存在某些影响体验的 BUG,例如占用过多存储容量、设备发烫、微信小程序闪退等。那么IOS14怎么降级回IOS13?下面就让小编给大家...
  • iOS14适配

    2020-12-02 16:09:00
    iOS14适配 1、iPhone尺寸。 2、关于IDFA获取权限。 3、UITableViewCell 兼容问题。 4、UIPageControl的兼容问题。 5、相机和麦克风、黏贴板、定位、Local Network、Wifi-Address… 一、iPhone尺寸 二、...
  • update for iOS 14

    2021-01-06 07:33:29
    <div><p><strong>iOS 14 UITableViewCell 的 subviews 有了较大变化</strong></p> <ul><li>iOS 13 中 TableViewCell 的 subviews</li></ul> [UITableViewContentView, 自己添加的其他控件] <ul><li>iOS 14 中 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,976
精华内容 5,590
关键字:

ios14