栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

如何使用MacOs/IOS的私用不公开框架(PrivateFrameworks)

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用MacOs/IOS的私用不公开框架(PrivateFrameworks)

我需要写个程序调用一下[PLSandboxHelper processCanReadSandboxForPath], 它是一个由AssetsLibraryServices.framework(/System/Library/PrivateFrameworks/AssetsLibraryServices.framework)提供的。有两个问题要解决:

1. 没有这个的头文件, 不解决,编译就会不过

2.Frameworks那里在 Link Binary With Library里没有列出PrivateFrameworks的,不解决链接会失败.

 

 

对于1. 我们可以到https://github.com/nst/RuntimeBrowser/ 下载这个RuntimeBrowser, 打开这个/System/Library/PrivateFrameworks/AssetsLibraryServices.framework, 如图,我们可以拿到这个类的定义。

我们把这个定义copy出来,问题解决 

对于2. 

我们使用Add Other把/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/Versions/A/AssetsLibraryServices加进来就好了, 记得不是add AssetsLibraryServices.framework, 而是 AssetsLibraryServices这个二进制文件. 

 

代码如下:

 

#import 
@interface PLSandboxHelper : NSObject

+ (BOOL)processCanReadSandboxForPath:(id)arg1;
+ (BOOL)processCanWriteSandboxForPath:(id)arg1;
+ (BOOL)processWithID:(int)arg1 canReadSandboxForPath:(id)arg2;
+ (BOOL)processWithID:(int)arg1 canWriteSandboxForPath:(id)arg2;

@end



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    
    bool sbCanRead =  [PLSandboxHelper processCanReadSandboxForPath:@"/Path/to/your/file"];
    
    if(sbCanRead)
    {
        NSLog(@"Can read");
    }
    else
    {
         NSLog(@"Can not  read");
    }
    return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号