标签: ios-frameworks

Xcode 4:框架本地化不起作用

我正在使用Xcode 4开发自己的框架,我在两个示例应用程序(一个控制台和Mac OS X Cocoa应用程序)中使用它.

我正在尝试向框架添加本地化,​​所以我创建了两个版本的Localizable.strings文件(en和fr版本),但每次我尝试从示例应用程序打印本地化字符串时,我只会获得其技术名称.例如,在框架代码中包含以下行:

NSLog(NSLocalizedString(@"LOC_TEST", nil));
Run Code Online (Sandbox Code Playgroud)

我只"LOC_TEST"在输出中显示...

然而,本地化与Cocoa应用程序本身一起工作正常(意味着Cocoa应用程序的本地化字符串被正确显示).

本文之后,我尝试在框架的plist文件中添加本地化:

<key>CFBundleLocalizations</key>
<array>
    <string>en</string>
    <string>fr</string>
</array>
Run Code Online (Sandbox Code Playgroud)

但它没有改变任何东西......

我错过了什么?

xcode frameworks localization xcode4 ios-frameworks

7
推荐指数
2
解决办法
3306
查看次数

如何为支持iOS 7+的swift项目创建框架?

我需要为我们计划在组织中的多个iOS项目中使用的共享公共实用程序集创建一个框架.实用程序类是用swift编写的,框架需要支持iOS 7及更高版本的项目.我正在使用Xcode 6.1.1.

我尝试创建一个'Cocoa Touch Framework'和'Cocoa Touch Static Library',似乎无法让它适用于iOS 7版本.

使用'Cocoa Touch Framework',我收到一条警告,'嵌入式dylibs /框架仅在iOS 8或更高版本上运行',虽然我可以让它运行,但在iTunesconnect步骤中它失败了,错误是项目的部署目标不能小于8.0(我的是7.0).

我尝试使用'Cocoa Touch Static Library'并使用http://www.raywenderlich.com/65964/create-a-framework-for-ios中给出的步骤,但它只是不使用swift文件构建.当我删除所有swift文件并添加Obj-C文件时,它可以正常工作.

任何帮助是极大的赞赏.如何为支持iOS 7+的swift项目创建框架?

谢谢

ios-frameworks swift

7
推荐指数
2
解决办法
2315
查看次数

来自外部框架的自定义视图在Interface Builder中不起作用

我在这个网站上寻找一些解决方案,我发现这个答案并没有解决我的问题.

如何在Interface Builder中使用来自外部框架(扩展名为.framework的文件)的自定义UIView,而不使用CocoaPods,也不将此项目添加为项目的目标.

假设我有一个单独的项目:Cocoa Touch Framework项目模板,我想在我的其他项目中使用它.我将它添加到嵌入式二进制文件链接框架和库中,我可以在Objective-C中使用它:

@import MyFramework;
Run Code Online (Sandbox Code Playgroud)

在斯威夫特:

import MyFramework
Run Code Online (Sandbox Code Playgroud)

但是从未知的原因,Interface Builder没有看到使用@IBDesignable的自定义视图有趣的想法是当我的项目运行时,外部框架的自定义视图正在显示.唯一的问题是在Interface Builder的设计过程中不显示任何内容.

我没有使用CocoaPods,我不想将我的框架项目作为Target嵌入,因为这是许多项目的通用框架.如何将此外部项目/框架附加到我的项目中,以便Interface Builder可以正常工作.当我使用Cocoa Touch Framework项目模板创建目标,以便此框架在我的项目"内部"时,Interface Builder在设计时和运行时期间按预期工作.

有什么方法可以将我的外部项目作为目标附加到其他项目?

xcode interface-builder ios-frameworks ibdesignable xcode7

7
推荐指数
0
解决办法
598
查看次数

如何开发包含图像资源的iOS框架?

我正在开发一个包含图像资源的iOS框架,我在框架中调用下面的方法,

crossImage = [UIImage imageNamed:@"cross"];
arrowImage = [UIImage imageNamed:@"arrow"];
Run Code Online (Sandbox Code Playgroud)

然后我构建了一个演示来测试我的框架,但是发现crossImage和arrowImage都是零; 之后,我发现imageNamed:方法将搜索应用程序目录中不在框架中的图像,因此我可以通过将两个图像添加到演示项目来修复它.然而,它几乎没有优雅.那么在我的框架中定位图像的任何其他解决方案?

frameworks objective-c nsbundle ios ios-frameworks

6
推荐指数
2
解决办法
6256
查看次数

不能在Xcode 7 UI测试目标中包含Objective-C .framework吗?

我试图依靠OHHTTPStubs作为一个框架,来自Xcode 7中的Swift UI测试目标.

我构建了.framework(通过Carthage,但我不确定它是否相关?)并将其拖入UI测试目标的Build Phases选项卡下的"带库的链接二进制文件"部分.

但是当我尝试@import OHHTTPStubs在我的.swift测试用例中时,Xcode告诉我No such module 'OHHTTPStubs'.

这应该很简单,我错过了什么?这是Github上的项目.

ios ios-frameworks carthage xcode7 xcode-ui-testing

6
推荐指数
0
解决办法
955
查看次数

带有iphoneos和iphonesimulator架构的iOS通用框架

xcodebuild可以建立与SDK中设定了一个项目,无论是iphoneosiphonesimulator,但不能同时,所以为了生成包含框架armv7 arm64i386 x86_64体系,我必须跑xcodebuild两次,然后用lipo所有的架构合并为1个通用二进制.我看到这样做的商业框架,但它导致了一个不正确的info.plist文件,因为它有一个字段,CFBundleSupportedPlatforms并且所有符号都指向它只包含1个值,例如CFBundleSupportedPlatforms = ( "iPhoneSimulator" ).

似乎lipo不应该以这种方式使用,因为它没有得到官方的支持xcodebuld.是否有更好的方法来构建包含所有体系结构的框架?

xcode xcodebuild ios ios-frameworks lipo

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

Xcode引用框架而不是链接二进制文件库

在开发可可触摸框架时,我如何通过引用它来使用第三方框架中的代码,然后将其包含在"带库的链接二进制"选项中?

我不想链接到二进制文件,以防止托管项目和框架(将使用框架的项目)之间的符号冲突

另外我需要框架代码来使用托管项目引用第三方框架,怎么做呢?

或者我应该采取不同的方法,例如静态框架(我不熟悉两者的微小差异)

cocoa-touch ios ios-frameworks swift

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

在iOS共享扩展中使用React Native

跳过这个facebook/react-native#1626 GitHub问题,我有一个关于在iOS共享扩展中设置React Native视图的问题

我发布了一个示例GitHub repo来演示这个问题,总结如下.

到目前为止,概念验证设置非常简单,但我觉得我缺少一些非常简单的东西.

在我react-native init搭建的Xcode项目我创建了一个新的共享扩展的目标,并在其连接相应的阵营原生静态库(libReact.a,libRCTWebSocket.a,等).这使我们的项目编译成一个非常简单的ShareViewController,这是一个简单的'ol' UIViewController.

从另一个应用程序激活我的共享扩展后,我ShareViewController被初始化但立即崩溃并显示以下日志消息:

2015-11-29 12:44:34.721 [warn][tid:com.facebook.React.JavaScript][RCTContextExecutor.m:129] 'undefined is not an object (evaluating \'RCTWebSocketModule.connect\')'
2015-11-29 12:44:34.726 ShareExtension[66473:2179009] -[RCTBatchedBridge redBox]: unrecognized selector sent to instance 0x7fb59d8ab200
2015-11-29 12:53:47.160 [warn][tid:com.facebook.React.JavaScript][RCTContextExecutor.m:129] 'Requiring module "InitializeJavaScriptAppEngine" which threw an exception'
2015-11-29 12:53:47.160 ShareExtension[66473:2179009] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RCTBatchedBridge redBox]: unrecognized selector sent to instance …
Run Code Online (Sandbox Code Playgroud)

ios javascriptcore ios-frameworks react-native share-extension

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

如何在iOS中构建包含cocoapods依赖的框架?

我正在为第三方应用程序创建一个框架.我在我的静态库项目中使用Google VR SDK for iOS(这是一个CocoaPods依赖项)来构建.静态库编译很好,但是我在构建框架聚合时遇到了这个错误.

错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool:找不到以下文件:-lPods-MyLibrary错误:/Applications/Xcode.app/Contents/Developer/Toolchains /XcodeDefault.xctoolchain/usr/bin/libtool:file:-lPods-MyLibrary不是目标文件(库中不允许)

任何人都可以指导如何解决以下错误?

ios ios-frameworks cocoapods

6
推荐指数
0
解决办法
325
查看次数

适用于iOS的Kotlin Multiplatform库,带有bitcode

我们使用Kotlin在Android和iOS之间共享库.

我们设置了一切,但在iOS上我需要启用Bitcode.经过研究,我找到了解决方案:

kotlin {
targets {
    fromPreset(presets.jvm, 'jvm') {
        mavenPublication {
            artifactId = 'my-lib-name'
        }
    }
    // Switch here to presets.iosArm64 to build library for iPhone device || iosX64 for emulator
    fromPreset(presets.iosArm64, 'iOS') {
        compilations.main.outputKinds('FRAMEWORK')
        compilations.main.extraOpts '-Xembed-bitcode' // for release binaries
        compilations.main.extraOpts '-Xembed-bitcode-marker'//  for debug binaries
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但问题是现在,我有,如果是,我如何在发布和调试二进制文件和特定标志之间分开?我可以简单地添加两个标志没有任何缺点吗?

也许有人可以启发我谢谢

ios ios-frameworks kotlin bitcode kotlin-multiplatform

6
推荐指数
2
解决办法
362
查看次数