既然公众知道App Store提交的内容正在使用私有API进行测试,我需要问一个问题......私有API究竟是什么,以便我可以避免使用它们?
我还没有找到使用iPhone库中私有API所需步骤的完整列表.
特别是,我想知道如何获取头文件,如果它们甚至是必需的,如何让它编译(当我只是添加头,它抱怨函数没有定义),以及什么资源可以用于了解私有API(例如来自其他用户的体验,例如http://iphonedevwiki.net/,其中有一些).
我在其他地方读过,人们建议使用class-dump来获取标题.有没有替代方法?我注意到有一些 iPhone私有SDK的存储库,你会推荐哪些最新的资源?
以前 关于私有API文档的大多数问题都与Erica Sadun的网站有关,该网站似乎没有文档(左边的所有链接都被删掉).
请保存关于不使用私有API的评论......我知道最大的风险:
我说的是合法用途,例如:
我不想将此应用程序提交给AppStore.我已经尝试了很多次,但遇到了很多问题:(
我使用class-dump来获取UIKit.framework的所有头文件.在由类转储生成的UIApplication.h中,我看到了我想要使用的方法---- launchApplicationWithIdentifier.
然后我把UIApplication.h放在我的项目中并导入它.编译,我得到了很多"重新定义枚举器...."错误,因为在我之前使用的UIKit.framework中,还有另一个UIApplication.h.但是这个文件没有startApplicationWithIdentifier方法.
如果我删除以前的UIKit.framework并导入class-dump生成的文件夹.然后它看起来像一个框架,但如果我展开它,它是空的.
然后我想让所有生成的头文件成为一个框架文件,取代之前的UIKit.framework.但我不知道怎么做.我们可以看到,在系统框架目录下,有一个与框架同名的文件,并有一个"执行的shell脚本"图标.我该怎么做这个文件?
我真的很困惑.有人可以帮个忙吗?谢谢.
我需要一个示例obj-c代码来扫描并连接到wifi.私有API没关系,我不会将应用程序发布到appStore.我发现cydia中的应用程序称为"WiFiFoFum",可以扫描和连接,遗憾的是我无法找到该应用程序的源代码.谁知道我在哪里可以找到该代码?谢谢
这个问题是对以下内容的扩展:
Link-1:从ios表面创建图像并保存它
Link-2:从iOS应用程序中截取屏幕截图 - 模拟显示记录器(在内部查询)
(参考链接-1)我有在后台工作时截取屏幕截图的代码.但如上所述,它需要2秒的睡眠才能不间断地工作,否则操作系统会暂停应用程序.我想出原因可能是我没有明确发布我创建的IOSurface.
原因 - 使用Victor Ronin给出的链接http://pastie.org/pastes/3734430,即使没有睡眠,捕获也能正常工作.在我每次写入图像后,我尝试使用CFRelease释放destSurf(我创建的目标表面),但这不起作用.
任何有关何时,如何以及是否发布创建的IOSurface的帮助都将非常有用.谢谢.
更新
所以,这就是确切发生的事情.(参考链接-1)
IOSurfaceRef destSurf = IOSurfaceCreate(dict);
IOSurfaceAcceleratorRef outAcc;
IOSurfaceAcceleratorCreate(NULL, 0, &outAcc);
CFDictionaryRef ed = (__bridge CFDictionaryRef)[NSDictionary dictionaryWithObjectsAndKeys: nil];
IOSurfaceAcceleratorTransferSurface(outAcc, screenSurface, destSurf, ed, NULL);
IOSurfaceUnlock(screenSurface, kIOSurfaceLockReadOnly, &aseed);
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, IOSurfaceGetBaseAddress(destSurf), (width*height*4), NULL);
CGImageRef cgImage=CGImageCreate(width, height, 8, 8*4, IOSurfaceGetBytesPerRow(destSurf), CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Little, provider, NULL, YES, kCGRenderingIntentDefault);
UIImage *image = [UIImage imageWithCGImage: cgImage];
CGImageRelease(cgImage);
UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
CFRelease(destSurf);
Run Code Online (Sandbox Code Playgroud)
即使在设置中打开时,我也希望iPhone在静音模式下不会振动.我想通过App以编程方式进行.这对我来说,所以我可以使用私有API.是否有api管理设置中的声音?你知道任何解决方案吗?
谢谢,
弗洛
我正在探索创建越狱调整.我想解锁手机屏幕.这是怎么做到的?可以使用哪些私有API在iOS 7上实现此目的?
我几个小时后在整个互联网上搜索,我找不到我正在寻找的信息.我想搞乱私人api,看看什么可能,等等,但我甚至无法编译.
所以我有几个非常基本的问题:
char *framework = "/System/Library/PrivateFrameworks/...";
dlopen(...);
Run Code Online (Sandbox Code Playgroud)
如果有任何机会,我想使用objc语法(如果可能)而不是使用C(如上所述).
最后,我读到了有关权利(在iOS 7中似乎是新的).我如何使用这些权利以及何时使用它们?
有人可以请输入几行作为例子吗?
这些天我正在开展一个项目,我们需要将非MFI蓝牙设备连接到iPhone,而且该设备不支持成为BLE外围设备客户端,因此我们必须在经典蓝牙上执行此操作.
我设法配对并使用演示项目BeeTeeBluetoothManager.framework的指南将设备连接到iPhone
但我不知道如何发送和recv数据,我在类转储标头中找不到API.
看来,问题就出在这三structs:BTAccessoryManagerImpl和BTSessionImpl和BTDeviceImpl,但我不能让他们的定义.
@class NSMutableDictionary;
struct BTSessionImpl { };
struct BTDeviceImpl { };
@interface BluetoothManager : NSObject {
struct BTAccessoryManagerImpl { } *_accessoryManager;
BOOL _audioConnected;
int _available;
NSMutableDictionary *_btAddrDict;
NSMutableDictionary *_btDeviceDict;
struct BTDiscoveryAgentImpl { } *_discoveryAgent;
struct BTLocalDeviceImpl { } *_localDevice;
struct BTPairingAgentImpl { } *_pairingAgent;
BOOL _scanningEnabled;
BOOL _scanningInProgress;
unsigned int _scanningServiceMask;
struct BTSessionImpl *_session; // struct BTSessionImpl { } *_session;
}
+ (int)lastInitError;
+ (id)sharedInstance;
- (struct BTAccessoryManagerImpl …Run Code Online (Sandbox Code Playgroud) 我正在尝试为端到端测试套件创建解决方案,以便在模拟器上设置用户权限(联系人,照片,通知等).这样做的原因是SpringBoard会显示权限警报,并且它们会干扰测试套件.
我已经尝试过使用XCUITest套件,但它对SpringBoard警报没有预期效果,并且一般不方便使用.
所以我的想法是修改系统文件,以便按需设置权限.我找到了TCC数据库,看起来非常简单.然后我注意到通知权限保存在不同的文件下/Library/BulletinBoard/SectionInfo.plist.此文件由BBServerSpringBoard进程中的对象缓存.我设法更改了此文件,如果SpringBoard终止,则接受对文件的更改.但我希望在测试应用程序的进程运行时期间发生此更改.
经过一番挖掘后,我注意到当设置应用程序(首选项)对通知设置进行更改时,它会使用XPC连接来通知它已进行了更改.
我试图在测试过程中完成同样的事情.我创建了一个BBSectionInfo包含通知所有设置的对象,并尝试使用a BBSettingsGateway在内部使用XPC连接通知BulletinBoard服务器.这不起作用,我不知道为什么不,因为我没有得到任何错误.
也许这是一个权利问题?令我恼火的是系统没有给出错误,没有任何反应.
在调试器中,带来XPC连接,我得到这个:
(lldb) po [inv.target valueForKey:@“connection”]
<NSXPCConnection: 0x60000011bcf0> connection to service named com.apple.bulletinboard.settingsconnection
Run Code Online (Sandbox Code Playgroud)
内部连接也没有透露任何问题:
(lldb) po [[inv.target valueForKey:@"connection"] valueForKey:@"xpcConnection"]
<OS_xpc_connection: connection[0x6000001a6200]: { refcnt = 2, xrefcnt = 1, name = com.apple.bulletinboard.settingsconnection, type = named, state = init-done, error = 0x0 mach = true, privileged = false, bssend = 0x6f07, recv = 0x6d0b, send = 0x7003, pid = 0, euid = 4294967295, egid = …Run Code Online (Sandbox Code Playgroud)