IPA Automatic Resign

一个自动重签ipa的需求。

1.https://github.com/maciekish/iReSign 一开始找到了这个自动重签开源工具。可以实现半自动的重签功能。但是并不能满足需求。继续吧

2.找啊找啊,找。。发现所有的工具的源码都是归到了这几步命令。

Step1 : 
unzip YourApp.ipa
Step2: 
rm -rf Payload/YourApp.app/_CodeSignature
Step3: 
cp InHouse.mobileprovision Payload/YourApp.app/embedded.mobileprovision
Step4: 
/usr/bin/codesign -f -s "iPhone Distribution: YourCompanyName" --resource-rules Payload/YourApp.app/ResourceRules.plist Payload/YourApp.app
Step 5: 
zip -r YourApp_inhouse.ipa Payload
* InHouse.mobileprovision 是你要用来签名的provision文件
* iPhone Distribution: YourCompanyName 是指该签名对应的证书的名字。这个可以在keychain中找到

但是会遇ResourceRules.plist找不到的问题,要设置

Click on your project > Targets > Select your target > Build Settings >
Code Signing Resource Rules Path
and add :
$(SDKROOT)/ResourceRules.plist

但是ipa中包含Framework and Plugins 也不能重签成功。

关于block

__weak __typeof(self)weakSelf = self;
self.backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^{
    __strong __typeof(weakSelf)strongSelf = weakSelf;
}];

一个问题

今天帮别人看了一个问题。

具体情况是:初始化两个数组添加了同一组数据(Model),然后数组A传
递到一个viewA里边,数组B传递到一个viewB里边。这时候ViewA中数组A
里边的model更新了值。发现ViewB中得数组B中得model也更新了。

指针问题。。
开始以为是数组指针问题,后来对数组处理也不行。才发现两个数组里边的
model 内存地址是一样的。。 
自己的问题,记一下。

Framework 开发的那些事

1.static A 嵌套了static B

1>.因为static B中使用了一些动态库(dylib) 但是staticA中无法添加dylib文件 
报错:
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: 
file: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/libz.tbd is not an object file (not allowed in a library)

报错信息

磕磕碰碰2.1

前提:正在做SDK(Framework)给客户集成
就在前几天领导说要开发一个新版本,要实现一个功能:“给集成Framework_a的ipa文件替换成Framework_b,不需要重新打包ipa文件”。

ios Framework 合并

1. 查看ios Framework 支持的Cpu 框架 xxx/.xxx.framework (xxx路径下)

     cd xxx/.xxx.framework

     lipo -info xxx

2. 合并framework a:xxx/abc.framwork b:sss/abc.framework

    lipo -create xxx/a.framwork/abc sss/abc.framework -output newabc 

    生成framework二进制文件在sss/abc.framework下