CFRunLoopRef 源码
https://opensource.apple.com/tarballs/CF/MachOView 源码
https://github.com/gdbinit/MachOView-
使用 clang 将
OC
转化成C++
代码xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc OC源文件 -o 输出的CPP文件
xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m -o main.cpp
如果需要链接其他框架,使用
-framework
参数。比如-framework UIKit
-
在使用clang转换OC为C++代码时,可能会遇到以下问题
cannot create __weak reference in file using manual reference
解决方案:支持ARC、指定运行时系统版本,如:
xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc -fobjc-arc -fobjc-runtime=ios-8.0.0 main.m
-
Shell 脚本执行
- 先赋予脚本文件执行权限,再直接运行
chmod 755 ./run-sonar.sh
./run-sonar.sh
- 通过 Bash 调用脚本文件
bash ./run-sonar.sh
- 先赋予脚本文件执行权限,再直接运行
-
Fix warning
-
The iOS Simulator deployment target is set to 5.0, but the range of supported deployment target versions for this platform is 8.0 to 12.3. (in target 'xxx')
Fixed:在Podfile
最下方添加如下代码,再执行pod update/install
:
-
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 9.0
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
end
版本号与你的 platform :ios, '9.0' 一致
-
Oh My Zsh
-
升级:
omz update
upgrade_oh_my_zsh -
卸载:
uninstall_oh_my_zsh
-
ATS 问题
iOS 9 默认非HTTPS
网络静止访问,需要在info.plist
文件添加NSAllowsArbitraryLoads
字段并设置成YES
。但是iOS 10
从2017年1月1日
起 Apple 不允许通过这个方法跳过ATS
,必须强制使用HTTPS
,若不这样做,上传App Store
可能被拒。但是还可以通过设置
NSExceptionDomains
字段来针对特定的域名开放HTTP
通过审核。Push 的 pem 文件生成
终端执行以下命令,生成ck.pem
文件
openssl pkcs12 -in ck.p12 -out ck.pem -nodes
测试 pem 证书文件是否有效
a. 测试开发证书
:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns_dev.pem
b. 测试生产证书
:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns_inhouse.pem
Fix
iOS 12.1
二级页面pop
的时候tabbar
跳动的 Bug
[[UITabBar appearance] setTranslucent:NO];
echo 'export PATH="/usr/local/opt/libxml2/bin:$PATH"' >> ~/.zshrc