相关疑难解决方法(0)

为什么我们对 Xcode 中的静态库和框架有这种令人困惑的设置

我读过很多关于静态/动态库/框架的文章。所以我的理解是(如果不准确请告诉我):

Framework = Library + Bundle
Static = Linking at build time
Dynamic = Linking at run time
Run Code Online (Sandbox Code Playgroud)

在Xcode中,我们有“静态库”和“框架”。这提出了一些令人困惑的点:

  • 为什么没有“动态库”选项?
  • 既然我们已经可以静态链接框架,为什么我们还需要“静态库”?(StaticFramework不是=StaticLibrary+Bundle吗?)

xcode ios

5
推荐指数
1
解决办法
990
查看次数

在iOS中使用共享对象文件(.so文件)

我已经获得了一个共享对象文件(.so)及其中的函数,但我不知道如何使用它,或者改变它以便在iOS应用程序中使用.有人能指出我正确的方向吗?

我知道.so来自一个Android应用程序,但我被告知我可以让它在iOS应用程序中工作.

shared-objects ios

4
推荐指数
1
解决办法
3979
查看次数

iOS 6.1动态库构建和链接

我正在尝试为iOS创建一个动态库并在运行时加载它.在看了这个问题这个答案之后,我一直在使用iOSOpenDev并在我的iPhone上部署所有内容.dylib的xCode项目名为KDylibTwo,我修改的文件是:

KDylibTwo.h

#import <Foundation/Foundation.h>

@interface KDylibTwo : NSObject
-(void)run;
@end
Run Code Online (Sandbox Code Playgroud)

KDylibTwo.m

#import "KDylibTwo.h"

@implementation KDylibTwo

-(id)init
{
    if ((self = [super init]))
    {
    }

    return self;
}

-(void)run{
    NSLog(@"KDylibTwo loadded.");
}

@end
Run Code Online (Sandbox Code Playgroud)

为了测试我的库是否有效,在构建它以进行性能分析后(iOSOpenDev在iPhone上部署它的方式),我可以找到它存储在我的设备上/usr/lib/libKDylibTwo.dylib并构建一个调整(再次使用iOSOpenDev),按如下方式挂接SpringBoard:

#include <dlfcn.h>

%hook SBApplicationIcon

-(void)launch{
    NSLog(@"\n\n\n\n\n\n\nSBHook For libKDylibTwo.dylib");

    void* dylibLink = dlopen("/usr/lib/libKDylibTwo.dylib", RTLD_NOW);

    if(dylibLink == NULL) {
        NSLog(@"Loading failed.");
    } else {
        NSLog(@"Dylib loaded.");

        void (*function)(void);
        *(void **)(&function) = dlsym(dylibLink, "run");
        if (function) {
            NSLog(@"Function found.");
            (*function)();
        } else {
            NSLog(@"Function …
Run Code Online (Sandbox Code Playgroud)

dylib jailbreak iphone-privateapi ios

3
推荐指数
1
解决办法
1401
查看次数

iOS AppStore下的动态链接库

我想在我的iOs应用程序中使用动态链接库.我的问题是我读到我只能使用静态库.我在Apple官方网站上搜索过这个,但我找不到任何相关信息.有人能指出苹果官方信息的链接,说我在iOS项目中无法使用动态链接库吗?

app-store dynamic-library ios

1
推荐指数
1
解决办法
885
查看次数