标签: ios-frameworks

构建一个Swread框架,引用Objective-C代码

我正在开发一个用Swift编写的iOS项目,我想从常规的"app"项目中取出一些类,然后将它捆绑到一个可重用的Swift框架中(也许可以在Github和Cocoapods上公开发布) ).

我遇到了问题,因为框架看起来似乎不能有Objective-C桥接头,但为了编译我的框架代码,我需要引用几个Objective-C类(在这种情况下:Google Maps iOS SDK).

我还在我的框架项目中添加了GoogleMaps.framework作为链接库,但是,如何从Swift代码"导入"它?

使用当前工具和Swift版本甚至可以实现这一点,我该如何处理?

谢谢.

xcode objective-c ios ios-frameworks swift

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

iOS8动态框架 - > CodeSign错误:SDK'iOS 8.3'中的产品类型'Framework'需要代码签名

我正在使用iOS8动态框架,我自己构建并在我的iOS应用程序中链接.它在模拟器和设备上工作正常,但在尝试为其存档Release版本时,我不断收到此错误:

代码签名错误:找不到匹配的配置文件:没有任何有效的配置文件允许指定的权利:com.apple.developer.ubiquity-kvstore-identifier,keychain-access-groups,com.apple.developer.icloud-container-identifiers ,com.apple.developer.icloud-services,com.apple.security.application-groups,com.apple.developer.ubiquity-container-identifiers.CodeSign错误:SDK'iOS 8.3'中的产品类型'Framework'需要代码签名

在应用程序目标 - >构建阶段 - >嵌入框架 - >框架链接在那里,并选中"复制代码签名"复选框.

在框架目标 - >构建设置 - >我已将Provisioning Profile设置为"Automatic",对于Code Sign Identity,在Release下,我正在使用"iOS Distribution"

我有3个不同的应用程序目标,需要构建此框架.

我糊涂了:

  • 框架是否需要在开发人员中心注册自己的AppID?

  • 框架是否需要它自己的配置文件?

  • 框架可以使用iOS应用目标中的相同Entitlements文件吗?

谢谢.

xcode codesign ios provisioning-profile ios-frameworks

18
推荐指数
2
解决办法
2万
查看次数

将quartzcore添加到Xcode 4 for iOS

我在Xcode 4上安装关于iOS应用程序的quartzcore很麻烦.我只是找不到答案:怎么办?因为当我尝试将Quartzcore添加到项目的目标时,似乎我只能添加一个Mac OS X框架.关于iOS框架所能做的就是创建一个.

xcode frameworks ios quartz-core ios-frameworks

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

IBDesignable来自外部框架?

我想创建一些使用@IBDesignable@IBInspectable标签的自定义视图.我已将这些添加到我的框架中,然后将我的框架链接到我的测试应用程序.但是Designables从未出现在StoryBoard中.

如何使用@IBDesignable@IBInspectable从外部框架创建自定义视图?

您可以使用@IBDesignable,并@IBInspectable在从非嵌入式框架的应用程序?

谢谢.

storyboard ios ios-frameworks swift ibdesignable

15
推荐指数
4
解决办法
4885
查看次数

将react-native项目捆绑为iOS框架或(.aar)Android库

我正在探索使用react-native创建一个iOS框架(android库)的可能性,该框架可以分发,并且可以通过包含构建应用程序时与应用程序集成.

例如,维护单个代码库为ios创建一个".framework",或者为android(基本上编译代码而不是反应组件代码)创建.jar作为开发人员社区的分发.

android ios android-library ios-frameworks react-native

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

警告ITMS-90080:"可执行文件'Payload/myapp.app/Frameworks/some-framework.framework'不是位置独立可执行文件

我以前能够毫无问题地提交我的申请.我工作流程中唯一改变的部分是使用Sourcetree.在将更新提取到以下框架后,我在提交到iOS App Store时收到此警告.我还收到一封电子邮件,其中包含:

非PIE二进制 - 可执行文件'Payload/myapp.app/Frameworks/Alamofire.framework'不是位置独立可执行文件.请确保您的构建设置已配置为创建PIE可执行文件.有关更多信息,请参阅技术问答QA1788 - 构建独立位置的可执行文件

非PIE二进制 - 可执行文件'Alamofire.framework'不是位置独立可执行文件.请确保您的构建设置已配置为创建PIE可执行文件.有关更多信息,请参阅技术问答QA1788 - 构建独立位置的可执行文件

等等...

有问题的框架是:

  • SwiftyJSON
  • 图表
  • Alamofire

我已经阅读了Apple Technical QA文章,手动设置这些框架的所有部署目标和我自己的项目无济于事.有没有人见过这个问题,能够解决它?

更新:

我可以确认这些警告不会影响提交审批流程.我提交了我的应用程序以供公开发布,尽管有警告,它仍然获得批准.现在我只是对Apple的结局以及对框架开发人员意味着什么感到好奇.

app-store ios ios-frameworks

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

XCode6:接收错误"在框架模块中包含非模块化头"

我有一个iOS应用程序,包括一个应用程序,一堆我的自定义框架,以及一堆第三方framweorks:

App
    MyFramework1
    MyFramework2
        AFNetworking.framework
        Mantle.framework
        ..
Run Code Online (Sandbox Code Playgroud)

我得到错误"在框架模块中包含非模块化头",具有以下结构:

App/AppDelegate.m
#import <MyFramework2/MyFramework2.h>

MyFramework2/MyFramework2.h
#import "MyClass.h"

MyClass.h
#import <Mantle/Mantle.h>        <-- Error happens here
Run Code Online (Sandbox Code Playgroud)

MyFramework2建立本身.

尝试构建应用程序失败,并在导入Mantle.h的行中出现 " 框架模块中包含非模块化头文件" 错误.

如果我在.m文件中导入Mantle.h,这个问题就消失了,但我不能这样做,因为我的类继承自MTLModelMantle中定义的.

此问题已在此处解决,但它不是特定于Swift的.

建议有(1)确保所有自定义框架标题都是公共的.他们是.(2)转到"目标"下的"构建设置",并设置"允许框架模块中的非模块化包含" YES.

有谁知道为什么会这样,以及如何解决它?将"允许非模块化包含在框架模块中"设置为"YES"是否为良好做法?为什么这是一个错误?

谢谢.

xcode clang ios-frameworks xcode6

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

前缀静态库iOS

我正在构建一个iOS静态库(根据https://github.com/jverkoey/iOS-Framework).我依靠SBJson和AFNetworking.我想包括这些库,以避免版本问题和安装简单; 为此,我需要为这些库添加前缀以避免命名冲突.

如何以简单的方式为其他静态库添加前缀?

理想情况下,它将成为我构建过程的一部分.不太理想,但可接受的是关于如何以理智的方式重构和重命名的提示.

ios ios-frameworks

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

链接具有相同产品名称的双(iphoneos和watchos)框架

我最近不得不复制我自己的框架,以便能够从本地watchOS 2扩展链接它们,因为平台是不同的.因此,对于每个框架,XI都有一个X-watchos对应物.在模拟器中以及直接构建到我的设备时,一切正常,直到我尝试归档,我才得到这个链接错误:

链接错误

我运行lipo -i了构建的watchOS框架,果然,它的拱门是arm7arm64不是armv7k.

当我进一步查看构建的目录时,我注意到了这一点:

派生数据结构

两个版本都是同一文件的符号链接,并且因为它们具有相同的产品名称,所以它们被覆盖.我可以让他们有不同的名字,但这会让import他们真的很麻烦.

请注意,这不是第三方框架的问题,因为Carthage它已经在不同的目录中构建它们.

编辑08/22/2015:我已经提交了一个示例项目的雷达:http://www.openradar.me/22392501

编辑08/24/2015:这已在Xcode 7 Beta 6发行说明中作为已知问题得到承认:

已知问题

编辑09/9/2015:Xcode 7.1 Beta发行说明提示这是固定的,但我还没有确认.

xcode ios-frameworks watchos xcode7 watchos-2

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

将Swift pod导入Objective-C项目时未找到模块错误

我有一个用Objective-C编写的现有项目.我想在该项目中使用位于Swift 的Daniel GindiiOS Charts库.我怎样才能做到这一点?

将swift框架导入到objective-c项目中是相关的,但在我的情况下,我通过Cocoapods 按照此处的说明安装它.

在那个问题中,他至少能够导入标题,但在我的情况下,我无法.

第1步:创建Objective-C单视图项目.

第2步:创建Podfile并添加以下行 -

use_frameworks!
pod 'Charts'
Run Code Online (Sandbox Code Playgroud)

第3步:安装pod

步骤4:尝试在ViewController.h中导入图表,@import Charts但此时会出错.错误是 - Module Charts not found

objective-c ios-frameworks swift ios-library ios-charts

11
推荐指数
2
解决办法
1万
查看次数