iOS Today Extension 遇到的坑
2017-03-01 本文已影响400人
chouson_chan
开发中,有时候也会遇到某些需求,例如应用扩展,有哪些可以对应用进行扩展的呢!
extension.png由图片可以看出来,有着非常多东东可以扩展,多得有点不要不要的。看了一下大家应该了解部分
Extension
应用在哪方面。而这次主要讲述Today Extension
。这是官方对Today Extension的描述
当然啦!我并不是对
Today Extension
的详解,网上有很多教程,我就不详述了😁这是我的工程 target.png
这里我是想共享
ShareDelegate
这个文件在不同的target
里面,意思就是TodayViewController
这个target
都可以共用这个文件。那怎么共享呢?没错就是图中那个Tablekit.h
工程文件。file -> target就可以找到了
framework.png
新建好这个
Tablekit.h
framework后,添加关联
membership.png
按照图片操作
ShareDelegate.h
ShareDelegate.m
两个文件都需要勾选Target Membership
的 Tablekit
,只☑️Tablekit
就可以了,似乎这样子就万事大吉了?NO!you wrong!
init.png
我们引入头文件,并进行初始化
initialized
的时候,幸福来敲门了,不,是bug来敲门😏
wrong.png
编译错误了,大概意思就是你没有引入相关文件,找不到,(⊙o⊙)?懵逼了,如果你出现上述的错误的话,那么只需要到
Build Phases
的 Compile Sources
添加你需要的.m
文件就可以了。
add.png
哪个
target
出现这个问题,就在相应的target
添加.m
文件就可以,此时错误解决了。在模拟器运行的时候,你可以在通知中心可见
Hello World
notification.png
此时并没有问题。最大的问题就是真机调试的时候,却没有内容
content
IMG_0568.PNG
这是我心爱的iphone 5s (iOS 9.2)所显示的内容,大家可以看见
DateExtension
的content
不见了,最起码的Hello World
都不给我😒,但是却可以在我同事的iphone 6s (iOS 10.2)显示
Architecture.png
刚开始我以为设置了
Build Settings
的 Architecture
的相关配置就可以了,可惜然并卵😞。问题并没有解决。而这些arm64 、 arm7 ...
又是什么鬼呢?
- armv7|armv7s|arm64都是ARM处理器的指令集
arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
i386是针对intel通用微处理器32位处理器
x86_64是针对x86架构的64位处理器
模拟器32位处理器测试需要i386架构,
模拟器64位处理器测试需要x86_64架构,
真机32位处理器需要armv7,或者armv7s架构,
真机64位处理器需要arm64架构。
大家可以通过这两篇文章了解一下
iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么
iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
此时我自己都崩溃了,难道我的是假的iphone 5s Σ( ° △ °|||)︴
而此时我觉得是
Base SDK
的问题,可能是系统编译的时候默认最高的SDK,但我又无法改变,我也不想升级我心爱的iphone 5s,难道要打包上线才能解决吗?so,这个坑我没有跳过去😂,此时你会不会觉得文字标题用错了,我觉得没有,因为确实遇到了这些坑,只是我没有跳过去,不要打我😂😂😂😂。